π§ Release Manager Agent Specification¶
π― Purpose¶
The Release Manager Agent is the strategic coordinator and gatekeeper of ConnectSoftβs release lifecycle. It is responsible for ensuring that software artifacts:
- Are approved for release based on business, technical, and compliance criteria
- Follow correct gating rules and change freeze policies
- Are aligned with the Studio timeline and trace visibility
- Are tagged with clear outcomes such as
Approved,Rejected,Delayed,Published
βIf the Deployment Orchestrator Agent delivers β the Release Manager Agent decides if and when delivery is allowed.β
π§ Role in the Platform¶
| Dimension | Description |
|---|---|
| Governance | It owns the approval lifecycle, defines readiness, and controls when deployment may begin. |
| Policy Execution | Applies organizational rules: staging β production promotion, test validation, scheduled cutoffs. |
| Human Collaboration | Coordinates with Studio users (DevOps leads, product owners) for manual sign-off or overrides. |
| Event Coordination | Emits ReleasePlanned, ReleaseApproved, ReleasePublished, and ReleaseFrozen lifecycle events. |
π§± Strategic Position in the Factory¶
sequenceDiagram
participant QACluster
participant ReleaseManager
participant StudioUser
participant DeploymentOrchestrator
participant ObservabilityAgent
QACluster->>ReleaseManager: Emit TestsPassed
ReleaseManager->>StudioUser: Request Approval
StudioUser-->>ReleaseManager: Approve or Delay
ReleaseManager->>DeploymentOrchestrator: Emit ReleaseApproved
DeploymentOrchestrator->>ObservabilityAgent: Emit DeploymentCompleted
π§ What It Guards¶
- Environments: Prevents production deploys without validation or approval
- Modules: Ensures only tested, reviewed modules are promoted
- Timing: Enforces freeze windows or blackouts (e.g., weekends, regulatory lockout periods)
- Traceability: Tags release outcomes in Studio with
traceId,releaseId,agentId,status - Human Escalation: Supports approval chains, delayed decisions, and trace-linked justifications
π Example Mission Statement¶
βGiven a validated module suite, test signal, and Studio-visible plan, the Release Manager Agent will confirm readiness gates, apply policy filters, optionally request human sign-off, and then emit
ReleaseApproved. If rejected or delayed, the agent provides structured feedback with reasons and history.β
π Outcomes the Agent Must Guarantee¶
| Outcome | Description |
|---|---|
| β No unapproved module reaches production | |
| β All release actions are traceable and tied to Studio sessions | |
| β All approvals are role-based and timestamped | |
| β Rejects or delays are logged and observable | |
| β Downstream agents are only triggered on success |
π― Alignment with Platform Principles¶
| Principle | Alignment |
|---|---|
| Event-Driven | Releases emit lifecycle events to trigger downstream flows |
| AI-First | Decision chains are structured, automatable, and prompt-aware |
| Modular | Works per module, per environment, per tenant/edition |
| Security-First | Applies freeze rules and RBAC approvals before handoff |
| Observability-Driven | Every outcome is logged, traceable, and visible in Studio timelines |
β Summary¶
The Release Manager Agent exists to ensure that ConnectSoft deployments only proceed when explicitly validated, approved, and policy-compliant. It translates QA, business, and governance signals into release control actions β forming the critical boundary between build success and production impact.
π Responsibilities¶
The Release Manager Agent is responsible for governing, validating, and authorizing the release lifecycle. Its responsibilities span across:
- Policy enforcement
- Human approval orchestration
- Timeline coordination
- Triggering downstream deployment
It serves as a decision-making agent that connects QA outputs, Studio trace plans, and production authorization gates.
β Key Responsibilities Breakdown¶
| Responsibility | Description |
|---|---|
| π§ Release Planning | Registers a new upcoming release in the timeline, linked to trace and module metadata. |
| π Gate Enforcement | Checks if QA status is green, blueprint modules are valid, observability readiness is confirmed. |
| π Change Freeze Awareness | Validates against current change control windows (e.g., weekends, holidays, critical incidents). |
| π₯ Approval Workflow Triggering | Emits human approval requests when required, escalates when overdue or rejected. |
| π Release Snapshot Generation | Compiles modules, versions, approvals, environment scope into a ReleaseSnapshot.json. |
| π‘ Event Emission | Emits ReleasePlanned, ReleaseApproved, ReleaseDelayed, ReleaseRejected, and ReleasePublished. |
| β Block Invalid Releases | Rejects promotion if readiness checks, security conditions, or approval steps are violated. |
| π Studio Timeline Sync | Writes status and decisions into the Studio UI for traceability and audit. |
| π§ Memory Recording | Stores all release attempts, reasons for rejection, human overrides, and success/failure decisions. |
| βοΈ Trigger Deployment Agent | On approval, emits ReleaseApproved β activates the DeploymentOrchestratorAgent. |
π Example: Responsibilities in Action¶
Scenario: Deploy to production¶
- QA Agent emits
TestsPassed - Release Manager:
- Confirms all modules validated
- Applies release gating policies
- Checks if
changeFreeze = false - If
requiresApproval = trueβ asks for Studio sign-off - On success β emits
ReleaseApproved - Deployment Orchestrator activates
π Responsibilities vs. Capabilities¶
| Category | Release Manager Agent |
|---|---|
| Thinks about readiness | β Yes |
| Executes rollout | β No (Deployment Orchestrator) |
| Triggers human input | β Yes |
| Enforces SLA checks | β No (Observability Agent) |
| Emits governance artifacts | β Yes |
| Controls Studio timeline | β Yes |
π§ Critical Flow Dependencies¶
- Must delay deployment if any readiness gates are invalid
- Must fail closed β i.e., assume βblockβ by default
- Must explain each decision with structured metadata
β Summary¶
The Release Manager Agent owns the release control plane. It ensures that only valid, authorized, and traceable module sets are promoted β enforcing gating, approval, and policy rules with precise coordination of agents, orchestrators, and Studio timelines.
π₯ Inputs¶
The Release Manager Agent consumes structured, traceable inputs from various upstream agents, orchestrators, Studio users, and memory. These inputs define:
- What is being proposed for release
- Who or what validated it
- What the target environment and tenant is
- Whether policies and freeze rules are satisfied
The agent uses these to make an informed, policy-compliant, trace-bound release decision.
ποΈ Core Input Types¶
| Input | Description |
|---|---|
| π¦ Module Manifest | List of modules, versions, and environments to be released. Often pulled from ReleasePlan.yaml. |
| π§ͺ QA Signals | Emitted by QA agents (e.g., TestsPassed, SmokeTestsPassed, CodeCoverageVerified) tied to traceId. |
| π‘οΈ Security and Policy States | Signals from SecurityPolicyEnforcerAgent or config overlays about release readiness or blockers. |
| π Calendar Rules | Change freeze data (e.g., from Studio, ChangeControl.json, or incident suppression periods). |
| π₯ Studio Approval Metadata | Approver identity, RBAC role, sign-off timestamp, and any delay or rejection rationale. |
| π§ Memory of Prior Attempts | From ReleaseHistory.json, including previous failures, escalations, or override records. |
| π Trace Context | Standardized trace metadata (e.g., traceId, projectId, tenantId, environment, releaseId). |
| π§Ύ Blueprint Metadata | Traceable blueprint and domain context definitions for the release scope (e.g., edition-specific deployments). |
π§ Example Input Payload¶
traceId: trace-2025-05-23-0842
releaseId: release-001291
projectId: pet-insurance
modules:
- policy-service: 2.3.1
- claims-api: 1.7.9
- notifications: 0.9.4
environment: production
tenantId: vetplan-premium
qaSignals:
- TestsPassed
- CoverageCheck > 85%
requiresApproval: true
changeFreeze: false
approvals:
- user: j.doe
role: ReleaseManager
approvedAt: 2025-05-23T09:32:00Z
π§ Memory-Based Input Retrievals¶
| Source | Purpose |
|---|---|
ReleaseHistory.json |
Was this version previously released or rejected? |
ReleaseSnapshot.yaml |
What was the planned state for this trace or sprint? |
QAResults.log |
Did tests or coverage fail? |
ApprovalRecords.yaml |
Who signed off and under what justification? |
π¦ Triggering Inputs¶
| Trigger Event | Initiator |
|---|---|
TestsPassed |
QA Agent |
ReleaseIntentDeclared |
Studio or Planner |
ReleaseScheduledWindowOpened |
Calendar/scheduler FSM |
StudioUserApprovalReceived |
CLI or GUI |
PolicyViolationDetected |
Security Agent |
β Summary¶
The Release Manager Agent uses inputs that define the intent, readiness, and compliance state of a potential release. It must combine these inputs with memory and calendar state to authorize or block the delivery of modules to runtime environments.
π€ Outputs¶
The Release Manager Agent emits structured, traceable outputs that reflect its decision on whether a release may proceed, including:
- Lifecycle event emissions
- Studio trace updates
- Memory artifacts for auditing and history
- Trigger signals for downstream agents (e.g., Deployment Orchestrator)
These outputs drive factory-wide release coordination and traceable runtime behavior.
π‘ Core Output Events¶
| Event | Description |
|---|---|
π’ ReleasePlanned |
Emitted when a new release candidate is registered and validated against scope and freeze constraints. |
β
ReleaseApproved |
Emitted once all readiness gates, approvals, and policies are satisfied. Triggers downstream deployment. |
β³ ReleaseDelayed |
Emitted when a change freeze, missing approval, or schedule block postpones the release. |
β ReleaseRejected |
Emitted if QA validation fails, policies are violated, or Studio user explicitly denies approval. |
π ReleasePublished |
Emitted after downstream agents confirm successful deployment. Signals final release state and completeness. |
π Structured Artifacts and Memory Entries¶
1. π ReleaseSummary.json¶
Captures the final state of a release decision.
{
"traceId": "trace-2025-05-23-0842",
"releaseId": "release-001291",
"status": "Approved",
"modules": {
"policy-service": "2.3.1",
"claims-api": "1.7.9"
},
"approvedBy": "j.doe",
"approvedAt": "2025-05-23T09:32:00Z",
"changeFreeze": false
}
2. π§ ReleaseHistory.json¶
Maintains a log of prior approvals, rejections, rationales, and timestamps per module and environment.
3. π ApprovalRecords.yaml¶
Stores a structured audit trail of who approved which module for which environment, and under what RBAC role.
π Studio Trace Integration¶
The following outputs also appear in the Studio UI:
- Timeline status updates (e.g., βπ’ Approved by Jane Doe @ 09:32β)
- Justifications for rejections or overrides
- Visual diff of approved vs. delayed modules
- Link to
ReleaseSnapshot.yamlfor trace reviewers
π Downstream Agent Triggers¶
| Event | Target Agent |
|---|---|
ReleaseApproved |
β
DeploymentOrchestratorAgent |
ReleaseRejected |
β οΈ Studio UI, TestCoordinatorAgent (to refocus testing) |
ReleaseDelayed |
β³ Notifies orchestrator FSM to pause at release state |
π Observability Signals Emitted¶
- OpenTelemetry spans with:
agentId = release-managerstatus = Approved | Rejected | DelayedreleaseId,traceId,approverId,durationMs
- Prometheus metrics:
release_approved_totalrelease_rejected_totalrelease_delay_secondsapproval_duration_seconds
β Summary¶
The Release Manager Agent outputs the decisions that define delivery. Through structured events, memory logs, Studio updates, and downstream triggers, it ensures that every release is intentional, observable, and authorized.
π Knowledge Base¶
The Release Manager Agent makes release decisions based on a rich, structured set of internal and external knowledge sources. These include:
- Historical decisions (approvals, rejections, exceptions)
- Module traces and validations
- Release plans and gate policies
- Human sign-offs and calendar windows
- Runtime memory across modules and tenants
This memory model enables the agent to reason over past behavior, align with ongoing trace timelines, and enforce structured release policy.
π§ Embedded Knowledge Modules¶
| Knowledge | Description |
|---|---|
| π― Gating Rules | Built-in understanding of required QA signals, policy checks, and approval flows for each environment (e.g., βprod requires approval + observability checkβ). |
| π Change Freeze Rules | Embedded logic for interpreting time-based deployment restrictions (from Studio calendars or configuration files). |
| π‘ Security Policy Templates | Pre-encoded release blockers (e.g., βNo releases allowed if image scan is failed,β βNo unsigned artifacts to prodβ). |
| π§Ύ Approval Chain Models | Standard roles and scopes for who can approve releases (e.g., DevOps β staging; Product Owner β production). |
πΎ Retrieved Memory Sources¶
| File | Contents |
|---|---|
ReleaseHistory.json |
All past approvals, delays, and rejections with trace links, user IDs, and reasons. |
QAResults.log |
Status of test signals, test coverage %, failed tests per module per environment. |
ApprovalRecords.yaml |
Manual sign-offs, CLI approvals, Studio signers, RBAC roles, timestamps. |
ReleaseSnapshot.yaml |
What modules, versions, and environments are part of the active trace's intended release. |
ChangeControl.json |
Current freeze windows, blackouts, or embargo periods by environment/region/tenant. |
π Example Memory Fragment¶
{
"releaseId": "release-01929",
"traceId": "trace-2025-05-18-7781",
"status": "Rejected",
"reasons": [
"QA validation missing for claims-api",
"changeFreeze = true",
"Release window blocked by security audit"
],
"lastReviewedAt": "2025-05-18T15:42:00Z",
"approvedBy": null
}
π§ Semantic Memory Capabilities¶
- Detect prior failed attempts for the same module in same environment
- Recall reason chains (e.g., repeated failures of the same team)
- Warn against high-risk releases (e.g., combining multiple unstable modules)
- Avoid release collisions in multi-tenant or multi-region contexts
π§ Example Rule Evaluation from Memory¶
βIf the last 2 production releases of
invoice-servicefailed within 24 hours, escalate approval request to VP-level approver.β
π Memory Security¶
| Constraint | Description |
|---|---|
| RBAC enforced | Only authorized roles can view or override past decisions |
| Tenant isolation | Each release memory scope is per tenant and per trace |
| Studio-signed approvals | All human approvals stored with verifiable signature |
β Summary¶
The Release Manager Agent operates with a governance-aware memory model that allows it to make policy-driven, context-rich, historically informed decisions. This ensures consistency, transparency, and traceability across all release flows.
π Process Flow (Macro)¶
The Release Manager Agent operates within a release governance FSM β moving a release candidate through a series of validation, approval, and publication checkpoints.
This macro-level flow outlines how the agent transitions between states and emits decisions, ultimately controlling whether a release enters deployment.
π§ High-Level Flow Diagram¶
flowchart TD
A[π₯ Release Intent Received] --> B[π Validate QA Signals + Module Trace]
B --> C{π¦ Change Freeze Active?}
C -- Yes --> D[β³ Emit ReleaseDelayed]
C -- No --> E{π Approval Required?}
E -- No --> F[β
Emit ReleaseApproved]
E -- Yes --> G[π© Request Human Approval]
G --> H{π₯ Approved by Studio User?}
H -- Yes --> F
H -- No --> I[β Emit ReleaseRejected]
F --> J[π§ Write ReleaseSummary.json]
I --> J
D --> J
π Phases Explained¶
| Phase | Description |
|---|---|
| A. Release Intent | Triggered by a ReleaseIntentDeclared event or trace milestone (via planner or Studio). |
| B. Validation | Confirms QA signals, version availability, required modules, and artifact integrity. |
| C. Change Freeze Check | Evaluates ChangeControl.json or active freeze signals from Studio or policy agents. |
| D. Delay Emission | Defers release until freeze window ends; triggers Studio UI alert. |
| E. Approval Chain Trigger | If environment requires approval, prompts user or workflow. |
| F. Release Approval | Emits ReleaseApproved event to trigger downstream agents. |
| G. Human Approval Flow | Connects with Studio, CLI, or chatbot approval workflows. |
| H. Rejection on Failure or Denial | Produces structured failure event and justifications. |
| J. Memory & Audit Update | Writes release summary, approval record, and decision trace. |
π Sample Event Sequence¶
- QA Agent emits
TestsPassed - Release Manager validates module trace
- Detects freeze window β emits
ReleaseDelayed - Waits for window to lift, re-evaluates
- Studio user approves release
- Emits
ReleaseApproved - Deployment Orchestrator activated
π FSM Summary Table¶
| State | Transition Trigger | Next |
|---|---|---|
release_proposed |
ReleaseIntentDeclared | validating_release |
validating_release |
QA Passed & no freeze | approval_pending or release_approved |
approval_pending |
StudioApprovalReceived | release_approved |
approval_pending |
ApprovalRejected | release_rejected |
release_approved |
Emits ReleaseApproved | downstream β deployment FSM |
release_delayed |
Freeze Lifted | restart β validating_release |
β Summary¶
This macro process flow captures the release lifecycle as a formal state machine, orchestrated by the Release Manager Agent. It ensures that:
- No release escapes governance
- Studio and human approvals are honored
- All decisions are event-driven and observable
The macro FSM model guarantees scalable, repeatable release control β aligned with ConnectSoftβs factory-grade automation vision.
π¬ Process Flow (Micro)¶
The micro flow describes the internal logic and decision-making process executed by the Release Manager Agent during a single release session. This includes:
- Prompt validation
- Policy checks
- Gate condition evaluation
- Approval routing
- Final decision and memory writes
It complements the macro FSM by showing exact internal operations per invocation.
βοΈ Micro Execution Flow¶
flowchart TD
A[π₯ Parse ReleaseIntent Payload] --> B[π§ͺ Validate QA Signals]
B --> C[π Load Module Trace + Snapshot]
C --> D[π‘ Check Security/Policy Violations]
D --> E[π
Check Change Freeze Window]
E --> F{Freeze Active?}
F -- Yes --> G[Emit ReleaseDelayed] --> Z[Write Delay Reason + Exit]
F -- No --> H{Approval Required?}
H -- No --> I[β
Emit ReleaseApproved]
H -- Yes --> J[π© Check Approval Record or Trigger Studio Prompt]
J --> K{Studio Approval Received?}
K -- Yes --> I
K -- No --> L[β Emit ReleaseRejected]
I --> M[π§ Write ReleaseSummary.json + Audit Trail]
L --> M
π§ Internal Step Breakdown¶
| Step | Action | Description |
|---|---|---|
| A | Parse Inputs | Ingests ReleaseIntent, traceId, module list, and current release context |
| B | QA Validation | Confirms that all modules passed required QA gates |
| C | Module Verification | Verifies trace and blueprint state: no missing modules, correct versions |
| D | Security Check | Consults security signals (e.g., image scan results, policy blockers) |
| E | Change Freeze Check | Uses ChangeControl.json or active Studio timeline restrictions |
| F | Delay Evaluation | Delays release if freeze is active (tag reason) |
| H | Approval Check | Determines if approval chain applies (e.g., for production) |
| J | Studio Approval Flow | Prompts Studio user or reads CLI override |
| K | Decision Point | Waits for approval; fails if denied or timed out |
| M | Memory Writing | Writes ReleaseSummary, ApprovalRecord, and Studio status update |
π Example Execution Input (Partial)¶
releaseId: release-2893
traceId: trace-2025-05-23-0991
modules:
- billing-service: 1.4.3
environment: staging
tenantId: petcare-labs
requiresApproval: false
changeFreeze: false
π§ Micro Decision Outcomes¶
| Condition | Action |
|---|---|
| Tests missing | Immediate reject with status QAValidationFailed |
| QA passed, no freeze, no approval needed | Approve immediately |
| Approval needed and granted | Approve and emit trigger |
| Approval needed and rejected | Emit ReleaseRejected, log approver |
| Freeze active | Emit ReleaseDelayed, store retry trigger |
β Summary¶
The micro flow defines how the Release Manager Agent processes a release decision in one execution window β using structured validation, Studio prompt integration, and policy checks.
This guarantees that every release decision is deterministic, secure, policy-compliant, and traceable β whether automated or human-reviewed.
βοΈ Skills and Kernel Functions¶
The Release Manager Agent is driven by modular Semantic Kernel (SK) skills, enabling it to:
- Evaluate QA, security, and policy inputs
- Enforce approvals and change gates
- Emit structured release events
- Write decision traces and audit records
- Collaborate with Studio and orchestrators
Each skill is composable, observable, and aligned with ConnectSoftβs event-driven agent execution model.
π§© Core Skill Categories¶
π 1. π§ͺ Validation Skills¶
| Skill | Purpose |
|---|---|
ValidateQASignals |
Ensures test coverage, pass/fail status, and BDD validations are present and successful. |
VerifyModuleBlueprintState |
Confirms all modules in the release are complete, versioned, and ready. |
CheckSecurityPolicies |
Blocks release if scan failures or critical CVEs are found. |
EvaluateChangeFreezeRules |
Parses ChangeControl.json or memory to detect active freeze periods. |
βοΈ 2. π‘ Policy Enforcement Skills¶
| Skill | Purpose |
|---|---|
EnforceApprovalGate |
Determines if approval is required based on env/tenant. |
RequestStudioApproval |
Triggers Studio prompt or CLI task to gather manual sign-off. |
EvaluateApprovalRecord |
Confirms approval identity, role, timestamp, and signature validity. |
π€ 3. π‘ Lifecycle Signal Skills¶
| Skill | Purpose |
|---|---|
EmitReleasePlanned |
Declares a new release window is opening. |
EmitReleaseApproved |
Signals deployment agents that release is allowed. |
EmitReleaseDelayed |
Broadcasts that release is postponed due to timing or policy. |
EmitReleaseRejected |
Stops release and logs rationale. |
EmitReleasePublished |
Finalizes the release in Studio once deployment is confirmed. |
π§ 4. π Memory & Trace Writing Skills¶
| Skill | Purpose |
|---|---|
WriteReleaseSummary |
Outputs ReleaseSummary.json with version, modules, approvals, and status. |
RecordApprovalDecision |
Stores decision metadata in ApprovalRecords.yaml (who, when, why). |
LogReleaseHistory |
Appends decision to ReleaseHistory.json with trace linkage. |
π§ 5. π§ Reasoning & Flow Management¶
| Skill | Purpose |
|---|---|
ResolveEnvironmentRuleset |
Loads config per environment (e.g., approval required for prod). |
BackoffAndReevaluateLater |
Used when freeze is active or approval is missing β delays and waits. |
EscalateToStudioTeam |
Sends Studio alert (via webhook or internal bus) if manual attention is needed. |
π§ Skill Execution Chain Example¶
Trigger: ReleaseIntentDeclared
β ValidateQASignals
β EvaluateChangeFreezeRules
β EnforceApprovalGate
β If approved: EmitReleaseApproved β WriteReleaseSummary
β Else: EmitReleaseRejected or EmitReleaseDelayed
π Observability per Skill¶
Each skill emits:
skillIdagentIdtraceIddurationMsoutcome(Success,Rejected,Delayed, etc.)- Optional:
reason,approverId,releaseId
β Summary¶
The Release Manager Agent executes a chain of reasoning, policy, and coordination skills, transforming release intent into traceable governance decisions. These skills ensure that releases are:
- Policy-compliant
- Human-reviewed where needed
- Audit-traceable
- Secure by design
- Observable at every step
βοΈ Cycle 9 β Technology Stack¶
The Release Manager Agent is built on top of ConnectSoftβs core agentic platform, leveraging:
- .NET for skill orchestration
- Semantic Kernel for modular task execution
- Azure-native infrastructure for deployment, secrets, and pipelines
- Observability, traceability, and memory-driven decisioning
- Deep integration with Studio UI, CI/CD pipelines, and orchestrators
π§± Stack Breakdown¶
| Layer | Technologies & Tools |
|---|---|
| Runtime | .NET 8, C#, Semantic Kernel |
| Agent Skills | Custom SK plugins (QA validator, approval gate enforcer, delay logic) |
| Execution Context | Azure Functions, Kubernetes, ConnectSoft Agent Orchestrators |
| Memory Layer | Azure Blob Storage, Cosmos DB, Vector DB (for semantic trace lookups) |
| Configuration | ReleasePlan.yaml, ApprovalRules.json, ChangeControl.json, ReleaseSnapshot.yaml |
| Secrets & Identity | Azure Key Vault, RBAC for Studio and CLI approvals |
| Traceability | OpenTelemetry, Serilog, Application Insights, traceId, releaseId, agentId |
| Event Bus | Azure Service Bus, MassTransit, In-memory event grid (dev mode) |
| CI/CD Integration | Azure DevOps YAML Pipelines, GitOps release markers, Studio CLI actions |
| Studio Interfaces | Frontend: Timeline controls, audit view, approval prompt overlay, release overview dashboard |
π Orchestration & Trigger Integration¶
| Tool | Purpose |
|---|---|
Planner Agent |
Declares release intent and populates trace metadata |
Trace Orchestrator FSM |
Activates Release Manager Agent when trace reaches release-ready state |
Studio UI |
Triggers manual sign-offs, approval requests, displays pending tasks |
Studio CLI |
Allows headless approval flows (--approve-release, --reject, --explain) |
π Observability Stack¶
| Component | Function |
|---|---|
OpenTelemetry |
Captures spans for each validation, decision, delay, and approval |
Prometheus Exporters |
Tracks release metrics like approval time, rejections, delays |
Grafana Dashboards |
Live release governance dashboards (total releases, blocked modules, etc.) |
Studio Trace View |
Displays ReleaseApproved, ReleaseRejected, ApprovedBy, timestamps |
π Security Context¶
| Enforcement | Tooling |
|---|---|
| Approval RBAC | Enforced via ApprovalRecords.yaml and Studio signer roles |
| Signature logging | Signed approval metadata stored in ReleaseSummary.json |
| Role-scoped CLI flags | --approve-release only allowed for ReleaseManager or Studio Admin |
π§ Tech Diagram (Layered)¶
graph TB
subgraph Agent Platform
NET8[.NET 8 Runtime]
SK[Semantic Kernel]
AzureFunc[Azure Functions]
end
subgraph Integration & Control
StudioUI[Studio Timeline + Approval UI]
DevOps[Azure DevOps Pipelines]
EventBus[Azure Service Bus]
FSM[Trace Orchestrator FSM]
end
subgraph Observability & Audit
OTEL[OpenTelemetry]
Prometheus
Grafana
AuditLog[ApprovalRecords.yaml + ReleaseHistory.json]
end
NET8 --> SK --> AzureFunc
AzureFunc --> EventBus
EventBus --> FSM --> StudioUI
AzureFunc --> OTEL
OTEL --> Prometheus --> Grafana
AzureFunc --> AuditLog
β Summary¶
The Release Manager Agent is powered by a robust, modular, cloud-native stack that enables:
- Policy-driven decisioning
- Event-based orchestration
- Secure approval chains
- Full observability and audit traceability
- Seamless integration with Studio and CI/CD automation
π System Prompt¶
The System Prompt defines the default operational contract and personality of the Release Manager Agent. It ensures that the agent:
- Understands its role in the ConnectSoft factory
- Acts within its scoped authority
- Applies structured reasoning, policy enforcement, and trace emission
- Operates as a secure and governance-aligned gatekeeper
βThe system prompt ensures the agent doesnβt just act β it acts within purpose, scope, and accountability.β
π System Prompt (v1)¶
You are the Release Manager Agent in the ConnectSoft AI Software Factory.
Your purpose is to govern, approve, delay, or reject software releases based on readiness, policy, calendar, and human approvals.
You do not deploy. You do not test.
You only decide whether a validated software release is allowed to proceed into a target environment.
You must:
- Validate that all QA and test results are complete and passed
- Verify all modules are ready for the specified environment and trace
- Enforce change freeze policies and blackout windows
- Determine if manual approval is required and prompt Studio if needed
- Log all decisions and events with traceable metadata (`traceId`, `releaseId`, `agentId`, `status`)
- Emit structured events: `ReleasePlanned`, `ReleaseApproved`, `ReleaseRejected`, `ReleaseDelayed`, `ReleasePublished`
- Store final release outcomes in `ReleaseSummary.json`, `ApprovalRecords.yaml`, and `ReleaseHistory.json`
You must block releases when:
- Tests are missing or failed
- A change freeze is active
- Required approvals are missing
- Security policies have been violated
You must explain your decision with a clear reason and traceable rationale.
Never skip approval gates.
Never bypass a freeze window.
Never emit `ReleaseApproved` unless all validations pass.
Your decisions power downstream deployment agents and Studio timeline state. Act with caution, compliance, and traceability.
π§ Why This Prompt Matters¶
It defines the hard boundaries:
- β Owns release decision logic
- β Does not perform deployment
- β Enforces policy, approval, calendar, QA
- β Emits only governance signals
- β Must always log and explain decisions
π Activation Context¶
- Used on cold agent start
- Re-injected on skill chain load
- Displayed in Studio agent profile pane (for explainability)
- Embedded into trace logs for compliance export
β Summary¶
This system prompt ensures the Release Manager Agent operates as a secure, policy-compliant, role-aware approval engine in the ConnectSoft Factory. It defines the mental model, constraints, and behavioral contract for autonomous, explainable release decisions.
π₯ Input Prompt Template¶
The Input Prompt Template defines how upstream orchestrators, Studio actions, or planner agents structure requests to the Release Manager Agent. It ensures the agent receives:
- Release metadata
- QA readiness signals
- Approver expectations
- Change freeze context
- Scoped environment/tenant/module payloads
All inputs are semantically meaningful and traceable via identifiers like traceId, releaseId, and moduleId.
π YAML-Based Structured Input Template¶
traceId: trace-2025-05-23-0012
releaseId: release-001731
projectId: vetplan
tenantId: vetclinic-001
environment: production
requiresApproval: true
changeFreeze: false
modules:
- name: invoice-service
version: 2.3.1
- name: claims-api
version: 1.7.9
qaSignals:
- TestsPassed
- CoverageVerified
- BDDValidated
securityStatus: Passed
approver:
required: true
role: ReleaseManager
user: null
status: pending
triggeredBy: ReleaseIntentDeclared
π§ Key Fields Breakdown¶
| Field | Description |
|---|---|
traceId, releaseId |
Core traceability identifiers for the release |
tenantId, projectId |
Scope the release to a specific product + tenant space |
modules |
What is being released, per module + version |
qaSignals |
QA validations required before the release can proceed |
requiresApproval |
Indicates if Studio sign-off is needed for this environment |
changeFreeze |
Whether a blackout or freeze window is active |
securityStatus |
Result from policy validation (e.g., CVE scan) |
approver |
Sign-off metadata, may be null until provided |
triggeredBy |
Source of invocation (Planner, Studio, CI/CD, etc.) |
π Variants for Different Release Modes¶
π Auto-Release to Dev¶
π Production with Manual Approval¶
environment: production
requiresApproval: true
changeFreeze: false
approver:
user: j.doe
status: approved
β³ Delayed Due to Freeze¶
π§ Semantic Kernel Binding¶
This template is parsed into skill input chains such as:
ValidateQASignals(traceId, modules)EnforceApprovalGate(environment, requiresApproval)CheckChangeFreeze(environment, timestamp)EmitReleaseApproved(releaseId, traceId, approverId)
β Summary¶
The Input Prompt Template enables upstream agents and orchestrators to reliably activate the Release Manager Agent with structured, scoped, and policy-aware instructions. It ensures that every release decision is based on valid, audit-ready inputs.
π€ Output Expectations¶
The Release Manager Agent produces a combination of:
- Event signals to orchestrators and downstream agents
- Memory artifacts for traceability and auditing
- Status updates for Studio timelines
- Approval records and governance summaries
These outputs form the release control layer for ConnectSoft β ensuring that every approved or rejected release is traceable, structured, and explainable.
π‘ Lifecycle Event Outputs¶
| Event | Description |
|---|---|
ReleasePlanned |
Emitted when a new release is registered, passing initial validation checks. |
ReleaseApproved |
Signals that the release is authorized and deployment agents may begin rollout. |
ReleaseRejected |
Blocked due to test failure, policy violation, or denied approval. |
ReleaseDelayed |
Gated due to freeze window, missing approver, or conditional policy pause. |
ReleasePublished |
Emitted post-deployment, confirming full lifecycle closure. |
Each event includes structured tags:
{
"event": "ReleaseApproved",
"traceId": "trace-2025-05-23-0012",
"releaseId": "release-001731",
"environment": "production",
"tenantId": "vetclinic-001",
"agentId": "release-manager",
"status": "approved",
"approvedBy": "j.doe",
"timestamp": "2025-05-23T11:42:19Z"
}
π Structured Artifacts¶
1. π ReleaseSummary.json¶
{
"releaseId": "release-001731",
"traceId": "trace-2025-05-23-0012",
"modules": {
"invoice-service": "2.3.1",
"claims-api": "1.7.9"
},
"status": "Approved",
"environment": "production",
"requiresApproval": true,
"approvedBy": "j.doe",
"approvedAt": "2025-05-23T11:42:19Z"
}
2. π ApprovalRecords.yaml¶
- releaseId: release-001731
approvedBy: j.doe
role: ReleaseManager
approvedAt: 2025-05-23T11:42:19Z
method: Studio UI
rationale: "QA passed and SLA checks verified"
3. π§ ReleaseHistory.json¶
Append-only ledger of all past decisions:
{
"releaseId": "release-001731",
"status": "Rejected",
"reason": "ChangeFreezeActive",
"evaluatedAt": "2025-05-22T21:00:00Z"
}
π§ Studio Integration Expectations¶
All outputs also reflect in:
- π Timeline state (color-coded phase: planned, approved, delayed, rejected)
- π Audit trail view (approver identity, decision timestamp, rationale)
- β³ Delay visualization (e.g., freeze window countdowns)
- π‘ Event Explorer (trace-linked event stream)
π Metrics Emitted¶
| Metric | Label Examples |
|---|---|
release_approved_total |
env="prod" tenant="vetclinic" |
release_rejected_total |
reason="qa_failed" |
approval_duration_seconds |
Time between ReleaseIntent and ReleaseApproved |
release_delayed_total |
Triggered by changeFreeze=true or missingApproval=true |
β Summary¶
The Release Manager Agentβs outputs form the control surface for software delivery governance. Every decision becomes:
- An event
- A memory artifact
- A timeline state
- An audit record
- A downstream trigger
This makes the ConnectSoft release system auditable by default, observable in real-time, and explainable across tenants and environments.
π Short-Term & Long-Term Memory¶
The Release Manager Agent relies on memory to:
- Track whatβs already been released, delayed, or rejected
- Reference past human approvals and rationales
- Compare new intents with previous release plans
- Maintain a permanent audit trail
- Retrieve freeze status and history of security/policy gate results
Memory enables the agent to reason with continuity and compliance, not just automation.
β‘ Short-Term Memory (Execution Context)¶
| Scope | Description |
|---|---|
traceContext |
Current traceId, releaseId, tenantId, and active module list |
evaluationResults |
In-memory results of gate checks (QA, freeze, security, etc.) |
approvalStatus |
Sign-off status during current run, including who approved and when |
executionTimer |
Measures elapsed time from intent receipt to decision |
incomingPrompt |
Parsed payload with candidate modules, QA state, and release plan reference |
These are ephemeral and serialized only on release decision completion (approved/delayed/rejected).
πΎ Long-Term Memory (Structured and Semantic)¶
π 1. ReleaseSummary.json¶
| Purpose | Stores the outcome and rationale of each release attempt |
| Scope | Per releaseId and traceId |
| Includes | Status, approver, modules, timestamps, environment, rationale |
π 2. ReleaseHistory.json¶
| Purpose | Append-only log of all release attempts, outcomes, and errors | | Scope | Per tenant + module + environment | | Allows | Chronological inspection of failures, retries, delays, overrides |
Example:
{
"releaseId": "release-2891",
"status": "Rejected",
"reason": "QA failed for claims-api",
"attemptedAt": "2025-05-23T10:42:11Z"
}
π 3. ApprovalRecords.yaml¶
| Purpose | Stores sign-off events with approver, role, timestamp, rationale | | Features | Signature validation, RBAC check, CLI vs. Studio flow tracking |
Example:
- releaseId: release-2891
approvedBy: product.owner
role: ProductOwner
method: CLI
approvedAt: 2025-05-23T09:48:00Z
comment: "Post-QA SLA validated manually"
π
4. ChangeControl.json¶
| Purpose | Defines global and tenant-level change freeze windows |
| Accessed By | EvaluateChangeFreezeRules skill |
| Format | Time-ranged blocks per environment or tenant, or calendar tags |
π§ Semantic Memory Use Cases¶
| Use Case | Action |
|---|---|
Last 3 prod releases of invoice-service failed |
Escalate to stricter approver |
| Release already rejected 2 times this sprint | Suggest alternate rollout strategy |
| Approval for staging was same as last release | Auto-fill Studio approver profile, propose automation |
π Access Control¶
| Constraint | Behavior |
|---|---|
| Memory writes are gated | Only after structured decision event (ReleaseApproved, etc.) |
| Read access is scoped | Agent can only view trace-scoped records and authorized tenant contexts |
| Studio users | Can inspect release memory for their trace, but not override history |
β Summary¶
Memory enables the Release Manager Agent to operate as a governance-compliant, historically aware decision engine. It ensures that no release is:
- Re-approved blindly
- Forgotten after rejection
- Lost in ambiguous audit state
Instead, it is fully traceable, context-driven, and governed with persistent intelligence.
π§ͺ Validation Strategy¶
The Release Manager Agent ensures a release is safe, complete, compliant, and approved before emitting any ReleaseApproved event.
Validation encompasses:
- QA readiness
- Module consistency
- Change control policy
- Security gate status
- Approval chain enforcement
Every validation step must be traceable, explainable, and repeatable.
β Validation Layers¶
| Layer | Description |
|---|---|
| π§ͺ QA Signals Check | Confirms that all modules listed have passed required QA validations (TestsPassed, CoverageCheck, BDDValidated). |
| π¦ Module Trace Consistency | Ensures that every module in the release matches the current traceId state and is not stale or partially generated. |
| π Security Status Verification | Checks results from prior scans (e.g., CVE scan pass, image signature verification, policy agent green light). |
| π Change Freeze Validation | Confirms whether the release violates any active freeze or blackout window from ChangeControl.json. |
| π₯ Approval Requirement Enforcement | Verifies whether the target environment mandates human approval and if such approval has been granted. |
π Example: Validation Matrix¶
| Check | Status | Detail |
|---|---|---|
| TestsPassed | β | All modules verified |
| CoverageCheck | β | >85% per policy |
| Freeze Window | β | Saturday deployment blocked |
| Approval Required | β | Approved by j.doe |
| Security Gate | β | No critical vulnerabilities |
β Final Decision: ReleaseDelayed due to freeze
π¦ Module Trace Matching¶
Ensures that:
- No modules are listed that are missing from the current trace scope
- No unversioned modules are being promoted
- All module builds were generated under the current or compatible
traceId
π Security Validation Conditions¶
| Condition | Result |
|---|---|
| Unscanned image | β Block |
| Critical CVEs found | β Block |
| Missing SBOM or signature | β Block |
SecurityAgent emitted PolicyViolation |
β Block |
π§ Approval Gate Conditions¶
| Condition | Action |
|---|---|
| Approval required & not yet provided | Block + prompt |
| Approval expired (older than config window) | Block + request new sign-off |
| Approval role mismatch | Block + request re-approval with elevated role |
π Decision Explanation Emission¶
Each validation failure results in a structured reason emitted in:
{
"releaseId": "release-2891",
"status": "Rejected",
"reasons": [
"Module 'claims-api' missing TestsPassed",
"Release window blocked by active freeze",
"Approval not yet received for production"
]
}
These reasons are:
- Stored in
ReleaseHistory.json - Displayed in Studio trace UI
- Used to inform retry attempts and override conditions
β Summary¶
The Release Manager Agent uses a layered validation strategy to ensure:
- No untested, unapproved, or blocked releases are promoted
- Every failure is recorded, explained, and auditable
- Approvals are policy-bound, not implicit or assumed
This makes release decisions predictable, secure, and governance-aligned across every environment.
π Correction & Rejection Flow¶
The Release Manager Agent must not only approve or delay a release β it must also handle invalid, incomplete, or policy-violating submissions by:
- Rejecting invalid releases
- Escalating unresolved states
- Providing retry guidance or override pathways
- Storing rejections as traceable, explainable outcomes
This ensures every release failure is graceful, actionable, and auditable.
β Rejection Triggers¶
| Condition | Result |
|---|---|
| Missing QA signals | Emit ReleaseRejected with reason TestsIncomplete |
| Unscanned or vulnerable artifacts | Emit ReleaseRejected with reason SecurityGateFailed |
| Modules do not match current trace | Emit ReleaseRejected with reason TraceMismatch |
| Approver missing or unqualified | Emit ReleaseRejected with reason ApprovalMissingOrInvalid |
| Policy agents block promotion | Emit ReleaseRejected with reason ComplianceViolation |
β³ Correction via Delay¶
| Condition | Action |
|---|---|
| Change freeze window active | Emit ReleaseDelayed, store retry schedule or calendar info |
| Approval pending | Emit ReleaseDelayed, notify Studio approver role |
| Time-based condition unmet (e.g., SLA period incomplete) | Delay release, retry after cooldown |
Delays are stored with metadata:
{
"releaseId": "release-001731",
"status": "Delayed",
"delayReason": "Active freeze window",
"retryAfter": "2025-05-24T08:00:00Z"
}
π Rejection Artifact Emission¶
Each rejection results in:
ReleaseRejectedeventReleaseSummary.status = "Rejected"- Justification stored in
ReleaseHistory.json - Optional
SuggestedFixblock with retry hint
Example:
{
"releaseId": "release-001731",
"status": "Rejected",
"reasons": [
"Missing QA signal: BDDValidated",
"Change freeze in effect"
],
"suggestedFix": "Retry after 2025-05-24 or rerun BDD tests"
}
π§ Retry + Escalation Support¶
| Behavior | Detail |
|---|---|
| Retry enabled | If delay reason is time-bound (freeze, pending approval) |
| Retry disabled | If rejection reason is critical (security failure, missing module trace) |
| Studio integration | Allows Studio or CLI user to override rejection by elevating approval or retrying with correction |
| FSM support | Trace Orchestrator holds execution until status = retryable or Studio approves bypass |
π¨ Human Escalation Integration¶
If the rejection is due to ambiguous policy or multi-agent conflict:
- Emits
StudioAlertwith status:release_escalation_required - Marks Studio UI with timeline blocker
- Optional trigger to
GovernanceAgentorReleaseOverrideApproverAgent(future extension)
β Summary¶
The Release Manager Agent handles rejection as a structured process, not a dead-end:
- Every failure has a reason
- Every delay has a retry path
- Every rejection is observable, explainable, and memory-persistent
- Every escalation is authorized and role-governed
This guarantees safe, correctable, and traceable delivery behavior across all environments.
π€ Collaboration Interfaces¶
The Release Manager Agent is positioned at the center of the software delivery governance layer, and as such, must actively collaborate with multiple agents, systems, and human stakeholders.
Its collaboration is event-driven, policy-bound, and fully trace-tracked β ensuring that release decisions are made in coordination with:
- QA validation
- Security assessments
- Studio approvals
- Downstream deployment
- Observability enforcement
π Key Agent Interfaces¶
1. β QA Cluster Agents¶
| Agents | Purpose |
|---|---|
TestOrchestratorAgent, CodeCoverageValidatorAgent, BDDValidationAgent |
Feed test results and signal readiness gates. |
Events received: TestsPassed, CoverageCheckPassed, BDDValidated |
|
| Purpose: Block or allow based on QA state. |
2. π SecurityPolicyEnforcerAgent¶
| Role | Validate release artifacts, CVEs, SBOMs, signature presence. |
| Event received: SecurityGateStatus
| If status = Failed, block release immediately with rationale. |
3. π₯ Studio User & Studio CLI¶
| Role | Human approver in environments with requiresApproval = true |
| Integration:
- Prompts sent to Studio UI
- CLI override via
--approve-release,--reject-release| Writes to:ApprovalRecords.yaml| Displayed in: Studio timeline and trace dashboard. |
4. β³ Change Freeze Policy Engine¶
| Source | Reads from ChangeControl.json, Studio schedules, or GovernanceAgent. |
| Purpose: Deny or delay releases during blackout windows. |
| Can emit advisory message (not hard fail) in some staging cases. |
5. π DeploymentOrchestratorAgent¶
| Triggered When | ReleaseApproved is emitted |
| Role: Executes actual rollout plan post-approval |
| Receives: releaseId, module list, traceId, tenantId, configOverlay, etc. |
| Release Manager monitors completion and emits ReleasePublished if successful. |
6. π ObservabilityAgent / SLAValidatorAgent¶
| Collaboration | Passive post-release consumers |
| Triggered via: ReleasePublished
| May write back: ObservabilityRegressionDetected β visible in future release trace decisions |
7. π Memory Engine¶
| Interfaces | ReleaseHistory.json, ApprovalRecords.yaml, ReleaseSummary.json, ChangeControl.json |
| Used for | Long-term recall, validation, compliance replay, and Studio audit panel integration |
8. π§ Trace Orchestrator FSM¶
| Role | Controls whether agent is invoked at the correct state | | FSM Events:
ReleaseIntentDeclaredβ triggers validationReleaseApprovedβ proceeds to deploymentReleaseRejectedβ FSM logs failure and suspends |
π§© Collaboration Types¶
| Type | Mechanism |
|---|---|
| Event-based | ReleaseApproved, ReleaseRejected, ReleaseDelayed, ReleasePlanned |
| Prompt-based | Human approval via Studio or CLI |
| File-based memory exchange | Approval records, freeze metadata, security logs |
| Observability-based | Emits spans and metrics traceable by all downstream agents |
β Summary¶
The Release Manager Agent acts as the approval anchor and policy switchboard in the ConnectSoft factory. It orchestrates collaboration with:
- Testing
- Security
- Studio
- Orchestration
- Deployment
- Observability
β¦ensuring that every release is controlled, compliant, and coordinated.
π§ Orchestration Integration¶
The Release Manager Agent operates as a gatekeeper node in the orchestrated trace FSM, managing transition between:
- Validated blueprint state β Approved delivery state
- QA/test phase β Deployment readiness
- Human/studio input β Execution triggers
It is not passive β it is orchestrator-aware and state-constrained, ensuring that no deployment is triggered unless it authorizes the transition.
π FSM-Driven Integration Pattern¶
π§ Sample FSM States (Trace-Oriented)¶
states:
blueprint_validated:
on:
TestsPassed:
target: release_ready
release_ready:
invoke:
agent: release-manager
onDone:
target: release_approved
onError:
target: release_rejected
release_approved:
emit: ReleaseApproved
target: deployment_started
release_rejected:
emit: ReleaseRejected
target: halted
βοΈ FSM Flow Diagram¶
flowchart TD
A[QA Signals Passed] --> B[Release Ready]
B --> C{Release Manager Decision}
C -- Approve --> D[Emit ReleaseApproved β Deployment FSM]
C -- Reject --> E[Emit ReleaseRejected β Stop Trace]
C -- Delay --> F[Emit ReleaseDelayed β Wait for Change Window or Approval]
π¦ Inputs Received via Orchestrator¶
| Data | From |
|---|---|
traceId, releaseId, modules |
Planner Agent or Trace Orchestrator |
QA results |
QA cluster agents or FSM event subscription |
Change freeze status |
ChangeControl.json, governance events |
Approval status |
CLI/studio prompts monitored by FSM state hooks |
π€ Outputs to Orchestrator FSM¶
| Output | Result |
|---|---|
ReleaseApproved |
Signals transition to deployment_started |
ReleaseRejected |
Halts the FSM, blocks deployment |
ReleaseDelayed |
Pauses FSM, sets wait condition or scheduling offset |
These events are tagged with:
traceIdreleaseIdagentId = release-managerstatusreasonorjustification
π§ Embedded Decision Metadata¶
FSM may pass metadata for behavioral control:
{
"traceId": "trace-2025-05-23-9181",
"releaseWindow": {
"startsAt": "2025-05-24T08:00:00Z",
"freeze": true
},
"approvalPolicy": {
"requiredFor": ["prod", "staging"],
"roles": ["ProductOwner", "ReleaseManager"]
}
}
π§ Conditional Execution Patterns¶
| Condition | Action |
|---|---|
| Triggered in non-release state | Block execution and raise FSM error |
| Already rejected or expired release | Return no-op response to FSM with status = stale_intent |
| Deployment FSM skipped release FSM | Log trace violation and emit traceIntegrityError (future) |
β Summary¶
The Release Manager Agent is orchestrator-bound and trace-driven. It:
- Sits at the gated transition point between validation and deployment
- Emits FSM-controlled decisions
- Responds to planner and QA-driven transitions
- Keeps releases safe, traceable, and deterministic
It guarantees that nothing goes live until the release graph explicitly allows it.
π‘ Observability Hooks¶
As the central authority for release decisions, the Release Manager Agent must emit fully traceable, structured observability signals so that:
- Approvals and rejections are audit-tracked
- Studio timelines are updated in real time
- Failures and delays can be diagnosed
- Metrics can be analyzed across tenants, environments, and teams
Observability is essential for ensuring that the release process is explainable and predictable across 3000+ services.
π OpenTelemetry Spans¶
Each major decision emits a trace span with the following structure:
| Field | Description |
|---|---|
traceId |
The current trace session ID |
releaseId |
Unique ID for the release being evaluated |
agentId |
"release-manager" |
skillId |
The skill that made the decision (ValidateQASignals, EnforceApprovalGate, etc.) |
status |
"Approved", "Rejected", "Delayed" |
durationMs |
Total processing time of the release task |
approver |
If applicable, includes Studio approver and RBAC role |
reasons |
Structured tags explaining rejection or delay |
environment |
Target environment (e.g., staging, prod) |
tenantId |
Target tenant scope |
π Example OTEL Span¶
{
"traceId": "trace-2025-05-23-0012",
"releaseId": "release-001731",
"agentId": "release-manager",
"status": "Rejected",
"durationMs": 3192,
"skillId": "ValidateQASignals",
"reasons": ["BDD tests not passed"],
"environment": "production",
"tenantId": "vetclinic-001"
}
π Structured Logging¶
- Logs emitted in JSON format
- Stored in long-term audit memory (
ReleaseHistory.json) - Accessible from Studio or audit APIs
Example Log Entry¶
{
"timestamp": "2025-05-23T09:41:18Z",
"agent": "release-manager",
"event": "ReleaseRejected",
"reason": "ChangeFreezeActive",
"traceId": "trace-2025-05-23-0012",
"releaseId": "release-001731"
}
π Prometheus Metrics Exported¶
| Metric Name | Description |
|---|---|
release_approved_total |
Total approved releases by environment, tenant |
release_rejected_total |
Count of rejections with reason label |
release_delayed_total |
Delay emissions due to freeze, missing approval, etc. |
approval_duration_seconds |
Time between ReleaseIntentDeclared and ReleaseApproved |
release_decision_duration_ms |
Total agent processing time per release |
π₯ Studio Timeline Integration¶
- Every approval, delay, or rejection updates the Studio timeline
- Metadata shown inline (e.g., "β Approved by J. Doe at 09:44")
- Interactive link to view
ReleaseSummary.json, rationale, and affected modules
π Example Studio UI States¶
| Status | Visual |
|---|---|
Approved |
Green badge on trace timeline + hover approver info |
Delayed |
Yellow pause icon with countdown to next retry window |
Rejected |
Red stop icon with expandable reasons panel |
π Audit Chain Compliance¶
All observability outputs are compliant with:
- π Signed approval traces (
ApprovalRecords.yaml) - π RBAC role metadata in events and logs
- π Structured storage in
ReleaseSummary.json,ReleaseHistory.json
β Summary¶
The Release Manager Agent emits a complete observability footprint, making every decision:
- π§ Traceable
- π Measurable
- π Auditable
- π Visualized in Studio
- π Actionable by orchestrators and downstream agents
This makes release behavior transparent, explainable, and governance-compliant.
π₯ Human Escalation Hooks¶
While the ConnectSoft AI Software Factory is designed for autonomous operation, some release decisions require human judgment, especially in:
- High-risk environments (e.g., production)
- Ambiguous policy violations
- Change freeze overrides
- Conditional rollouts needing product owner input
The Release Manager Agent must formally integrate human-in-the-loop approval and escalation paths β structured, traceable, and RBAC-governed.
π Escalation Triggers¶
| Condition | Escalation |
|---|---|
requiresApproval: true and no approval yet |
Prompt Studio UI or CLI |
| Approval rejected by required role | Reject release, log reason |
| Approval expired (stale timestamp) | Request re-approval |
| Attempt to approve without proper role | Block and log as invalid |
| Critical CVEs found but security policy allows override | Escalate to SecurityApprover |
| Freeze active but Studio admin override detected | Confirm and log manual bypass |
π₯ Studio UI Escalation Flow¶
Visual Status¶
- π₯ Prompted:
Release awaiting approval - β
Approved:
"Approved by J. Doe @ 09:45 (Product Owner)" - β Rejected:
"Rejected by A. Smith @ 10:02 β reason: Risk too high" - β³ Delayed:
"Awaiting Product Owner decision"
User Actions¶
| Action | Effect |
|---|---|
| β Approve Release | Agent continues evaluation, emits ReleaseApproved |
| β Reject Release | Agent emits ReleaseRejected with reason |
| π Delay | Agent emits ReleaseDelayed, sets retry timer |
| π§Ύ Add Justification | Included in ApprovalRecords.yaml and Studio logs |
π§βπ» CLI Approval Hooks¶
| Command | Description |
|---|---|
studio approve-release --release-id release-001731 |
Signs approval from CLI |
studio reject-release --release-id ... --reason "Requires retesting" |
Rejects |
studio show-release-status --trace-id ... |
View pending decisions |
studio explain-release |
Show failure reasons, required signals, and override options |
RBAC enforced: only authorized roles can approve per environment.
π Approval Memory Artifacts¶
1. ApprovalRecords.yaml¶
- releaseId: release-001731
user: j.doe
role: ProductOwner
method: Studio UI
approvedAt: 2025-05-23T09:45:00Z
comment: "Confirmed BDD tests post-sprint"
2. ReleaseSummary.json¶
Includes:
approvedBy,approvedAt,approvalMethod- Optional
overrideJustification - Status =
ApprovedorRejected
π Security and Governance¶
| Constraint | Rule |
|---|---|
| Approver role check | Enforced via ReleasePolicy.json |
| Audit trace | Required for every manual sign-off |
| Expired approvals | Require re-validation if not fresh |
| CLI approvals | Must match Studio trace session identity |
π Notifications (Optional Future Extension)¶
| Channel | Trigger |
|---|---|
| Email / Slack / Teams | When release is blocked waiting for approval |
| Escalation bot | Notifies incident channels on rejected releases in prod |
| Webhook | Triggers external dashboards or approval workflows (e.g., ServiceNow) |
β Summary¶
The Release Manager Agent integrates human intervention as a structured, secure, and traceable process. It ensures that critical releases:
- Can be reviewed
- Require accountable decisions
- Respect RBAC roles and Studio timelines
- Leave a permanent audit trail
This keeps ConnectSoft releases safe, governed, and explainable β even under human override.
π Security and Compliance Hooks¶
The Release Manager Agent operates at the most sensitive control point in the ConnectSoft factory: the boundary between validated software and live environments. It must therefore enforce:
- Security posture compliance
- Tenant-aware access boundaries
- Signed approval artifacts
- Audit trace generation
- Policy-based overrides
Its design guarantees that no module is released in violation of ConnectSoftβs security-first and compliance-first principles.
π Core Security Enforcement Areas¶
1. β Environment-Specific Approval Requirements¶
| Policy | Behavior |
|---|---|
prod requires ReleaseManager + ProductOwner approval |
Agent blocks otherwise |
staging allows automated approval unless configured for freeze |
|
Enforcement via: ReleasePolicy.json, approvalRules.yaml, and Studio RBAC |
2. π Image Security & Artifact Posture¶
| Source | Input |
|---|---|
SecurityPolicyEnforcerAgent |
Emits status (Passed or Failed) and CVE scan details |
SBOMCheckerAgent (future) |
Verifies Software Bill of Materials attached to artifacts |
| Required fields: |
imageSigned: truecveSeverity: "Low"or"None"licensePolicy: compliant
Blocked if:
- Unscanned artifact
- CVEs >
Medium - License violations
3. π Change Freeze and Blackout Enforcement¶
| File | ChangeControl.json |
| Keys | "environments", "tenants", "from", "to", "reason" |
| Behavior | Deny release if now β freeze window |
| Supports:
- Global blackout (e.g., βlast week of fiscal Q4β)
- Per-tenant freeze (e.g., βClinic A under auditβ)
4. π§Ύ Approval Signature & Justification Logging¶
| File | ApprovalRecords.yaml |
| Fields | user, role, approvedAt, comment, method, traceId, releaseId |
| Signature enforcement:
- Required roles present
- Approval within valid time window
- Justification logged for overrides
5. π§ Memory-Aware Policy Checkpoints¶
| File | ReleaseHistory.json |
| Usage | Detect risk:
- β3 failed releases of this module in prodβ
- βSame version rejected earlier this weekβ | Action | Escalate or require additional approver
6. π Tenant Isolation¶
| Behavior | Tenant ID + Environment is the minimum scope for every decision | | Guardrails:
- Approver must be authorized for the tenant
- Memory access scoped to tenant
- Trace visibility filtered in Studio
π Example ReleasePolicy.json¶
{
"environments": {
"production": {
"requiresApproval": true,
"roles": ["ReleaseManager", "ProductOwner"],
"requireSignedImages": true,
"minTestCoverage": 85,
"maxCVESeverity": "Medium"
},
"staging": {
"requiresApproval": false,
"freezeSensitive": true
}
}
}
β Summary¶
The Release Manager Agent is the final security and compliance gate. It ensures:
- Only verified, approved, low-risk software is released
- Every action is justified and auditable
- RBAC and policy enforcement is environment- and tenant-aware
- ConnectSoftβs delivery model remains trustworthy, secure, and regulation-ready
π§ Diagram: Execution Flow¶
This Mermaid diagram models the full decision flow of the Release Manager Agent β from receiving release intent to emitting structured release events and triggering downstream agents. It includes:
- Gate validations
- Approval paths
- Freeze checks
- Event emissions
- Memory updates
π Mermaid Diagram β End-to-End Execution¶
flowchart TD
A[π₯ ReleaseIntentReceived] --> B[π Validate QA Signals]
B --> C[π¦ Verify Module Trace + Blueprint State]
C --> D[π‘οΈ Check Security & Compliance Signals]
D --> E[π
Evaluate Change Freeze Window]
E --> F{π§ Freeze Active?}
F -- Yes --> G[β³ Emit ReleaseDelayed]
G --> H[π§ Store Delay in Memory]
F -- No --> I{π₯ Approval Required?}
I -- No --> J[β
Emit ReleaseApproved]
J --> K[π§ Write ReleaseSummary + Audit Logs]
I -- Yes --> L[π© Check Approval Record]
L --> M{Approval Valid?}
M -- Yes --> J
M -- No --> N[β Emit ReleaseRejected]
N --> K
π§ Decision Flow Summary¶
| Step | Action |
|---|---|
| A β B | Parses input, checks TestsPassed, CoverageCheck, etc. |
| B β C | Ensures all modules are valid and scoped correctly |
| C β D | SecurityAgent and policy enforcement logic |
| D β E | ChangeControl evaluation (e.g., freeze window detection) |
| F | Branches based on time/freeze rules |
| I | Determines if the release needs human approval |
| L β M | Reads from ApprovalRecords.yaml or waits for Studio input |
| J/N | Emits final decision (ReleaseApproved, ReleaseRejected, or ReleaseDelayed) |
| K | Logs all outputs into memory and observability streams |
π Event Emissions Mapped¶
| Event | Triggered At |
|---|---|
ReleasePlanned |
Before B (optional pre-validation signal) |
ReleaseApproved |
After J |
ReleaseRejected |
After N |
ReleaseDelayed |
After G |
ReleasePublished |
Triggered by downstream deployment success |
π Integration Points in Diagram¶
- Studio Approval: via node L (
Check Approval Record) - CLI Override: feeds into node M
- Orchestrator FSM: receives final event at J, N, or G
- Memory Writes: node K (
Write ReleaseSummary) - Observability: all decision nodes emit trace spans with
agentId = release-manager
β Summary¶
This Mermaid diagram visualizes the complete, controlled, and policy-bound release decision lifecycle, showing:
- π§ Autonomous logic
- π₯ Human escalation
- π Security enforcement
- π‘ Orchestrator signaling
- π Studio + memory traceability
It reflects the Release Manager Agentβs role as the central governor of production safety and delivery control.
β Summary & Future Extensions¶
The Release Manager Agent is the release governance anchor of the ConnectSoft AI Software Factory.
It owns the responsibility of:
- β Approving or rejecting production releases
- β Validating QA, trace, and policy compliance
- β Enforcing change freeze, tenant scope, and RBAC rules
- β Coordinating Studio users for approvals and rejections
- β Triggering downstream deployment orchestrators
- β Emitting audit-traceable release artifacts and metrics
- β Operating securely across thousands of tenants and services
π Core Functions Recap¶
| Capability | Outcome |
|---|---|
| QA validation enforcement | No untested module is released |
| Change freeze control | Enforces blackout calendars and tenant policies |
| RBAC-bound approvals | Ensures only authorized roles can release to sensitive environments |
| Memory-bound rejection handling | Avoids duplicate failure states or bypass loops |
| Studio collaboration | Embeds approval flow, rationale capture, and trace visibility |
| Observability & traceability | All decisions are logged, monitored, and explainable |
π Future Extensions¶
1. π Digital Approval Signing¶
- Use verifiable cryptographic signatures in
ApprovalRecords.yaml - Chain-of-trust validation for regulated environments (e.g., FDA, ISO)
2. π Multi-Level Approvals¶
- Support dynamic routing of approvals across:
- Product Owner
- Security Reviewer
- Legal/Compliance
- Engineering Leadership
- FSM-driven approval chains based on module risk scores
3. π Predictive Release Risk Scoring¶
- Score releases based on historical rejection rates, QA signals, test coverage, past incidents
- Auto-escalate high-risk releases or require double approval
4. π Tenant-Level Governance Overlays¶
- Fine-grained release policies based on:
- Tenant classification (enterprise, beta, regulated)
- Data residency rules
- SLAs and compliance overlays
5. β³ Scheduled & Progressive Release Orchestration¶
- Delay
ReleaseApproveduntil window opens - Enable progressive approval for multi-region or multi-tenant rollouts
6. π§ͺ AI-Assisted Release Justification¶
- Summarize why a release was blocked or approved
- Suggest next steps automatically
- Integrate natural language feedback in Studio (βWhy was this rejected?β)
π§ Final Statement¶
The Release Manager Agent is the custodian of controlled delivery. It is not a deployer β it is a policy-aware, memory-driven decision-maker that ensures every release into ConnectSoftβs runtime landscape is intentional, safe, and justified.