Experience plane¶
Target
This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
The Experience plane is every surface through which humans and other systems interact with the Factory. The Factory is headless: the web console uses the same APIs as the CLI, the SDKs, IDE extensions, chat channels, CI pipelines and external autonomous systems. The plane owns presentation, session-scoped composition and command submission. It never owns business state: run transitions, approvals, policies and artifacts are decided by their owning planes and only projected here.
Responsibilities¶
| Responsibility | What it means |
|---|---|
| Surfaces | Web console (Studio), agent operations IDE, CLI, REST and gRPC API, .NET and TypeScript SDKs, VS Code and JetBrains extensions, Cursor / Claude Code / Codex integrations, Slack / Teams / WhatsApp channels, CI/CD callers |
| Scoped shell | Persistent organization → workspace/project → environment scope, selected from trusted membership; selecting a scope grants nothing (canonical ADR-0100/0101, ADR-0015) |
| Work submission | Task-first submission against an existing project: repository revision, published agent release, model profile, limits; validation and denial reasons before a run starts |
| Run inspection | Persisted run, step and attempt state, pinned versions, plan, execution graph, sub-agents, tool calls, shell commands, changed files and diffs, logs, traces, cost, tokens, errors, retries, fallback events |
| Decisions | Approval inbox bound to exact artifact or action versions, with authority, expiry, conflict and staleness states |
| Recovery | Resume, retry and replay as distinct commands with observable outcomes; cancellation shown as request and as resulting state |
| Asset inspection | Agents, skills, tools/MCP, workflows, templates, published bundles, model profiles, knowledge sources, context and memory, evaluation evidence |
| Administration | Membership, integrations, entitlements, quotas, policy boundaries, linked to their owning planes |
| Composition | Optional BFF for client-shaped queries and live projections; cohosted first, extracted only for client, trust or scaling need (packet GW-02) |
Agent operations IDE¶
The differentiated surface is not a source editor but an agent operations IDE: for one project and environment it shows the selected agent and version, its skills, knowledge scopes, tools, model profile and fallback, the current task and plan, runtime step, cost, token usage, pending approvals, changed files and diff. Existing editors (Cursor, Claude Code, Codex, Visual Studio) remain clients through extensions and MCP, not competitors.
State vocabulary the surfaces must keep distinct¶
Asset readiness (authored, awaiting review, published, revoked) · deployment availability · run state (Pending, Running, WaitingForApproval, Completed, Failed, Cancelled, Rejected, Expired — proposed vocabulary, ADR-0014) · approval state (pending, accepted, rejected, expired, stale) · result freshness (observed, estimated, uncertain, historical). One "active" badge covering all of these is a defect.
Labelling convention for prototypes and pages: Simulated (fixture, no backend effect) · Connected, unverified · Verified for profile/revision · Unavailable/degraded.
Current implementation¶
- 41 HTML prototype exports in
ConnectSoft.DesignPrototypes(React-rendered fixtures, zero network calls). The Factory prototype declares 48 destinations; 15 have dedicated views. Workflow Studio prototype has publication, run comparison, evaluation lab and suggestion inbox patterns. ConnectSoft.Blazor.*shell, microfrontend, component and UIKit templates exist (23 repositories);Blazor.Mfe.AIChatTemplateregisters a mock AI service unconditionally.- No Studio, BFF, CLI, SDK or IDE extension exists in code. ADR-0007 keeps the Blazor direction.
Existing pages that belong to this plane¶
- Factory Studio overview, UI modules, BFF APIs, workflows, data model, security
- Studio modules (nine module pages, filled in this restructure)
- Per-platform
ui.mdpages (marketplace, devops-gitops, runtime-cloud, observability-feedback, governance, integration, generated-saas), to be consolidated into one modules page - Portal UI catalog
- API gateway strategy (edge and BFF roles, GW-01/GW-02)
Later capabilities¶
Folded from the former Factory Studio extension roadmap (no dates, no commitments). Principles retained: microfrontend-first over a thin BFF; aggregation, never ownership (the Studio is never a second system of record); governed by default; traceable; reuse of shell, UIKit and BFF read models before new ones; marketplace-extensible experience packs.
| Candidate | Purpose | Owner today |
|---|---|---|
| Intent studio (structured intent capture into blueprints, not a chatbot) | Feeds the Software Factory pack's blueprint designer | BC-02 / BC-29 |
| Experiment center (A/B prompt, model and pattern experiments) | Surfaces evaluation results | BC-22 projection |
| Compliance evidence room (audit-ready evidence packs per framework) | Built on the immutable decision and audit trail | BC-19 projection |
| Reuse browser (internal patterns, modules, blueprints) and marketplace install center | Discovery of internal reuse vs installation of qualified assets | BC-27 / Knowledge & Memory projections |
| Stakeholder portal (read-only executive views); incident war room (multi-user live session); mobile companion for approvals and alerts (MAUI base template) | Role-specific surfaces | BC-29 |
| Studio extension API, saved-view pack import/export, outbound webhooks for Studio events, signed scoped embeds, collaboration presence | Experience extensibility | BC-29 with Trust & Operations governance |
| Experience packs, widget catalog, view-pack library, theme and branding packs, connector-driven modules | Marketplace contributions | BC-27 |
| Review assistant, dashboard insight, escalation triage, knowledge navigation, cost optimization and onboarding agents | Assist the human in the loop; never bypass human authority | Software Factory pack |
Chat-channel entry points, the agent operations IDE, IDE extensions and SDKs are directions from the Oct-2026 target (clients); none is required for a first governed workflow.
Open questions¶
Q-16 (languages, channels, RTL, accessibility targets); whether Factory and Workflow Studio share one shell. See the decision log in handoffs/2026-10-09-independent-review/.
Platform design pages (2026-10-09, design plan P13)¶
- Factory Studio narrative: overview · workflows · UI surfaces · clients and SDK · localization and accessibility · security · observability · deployment · later capabilities
- Factory Studio service design pages: StudioBff (host, GW-02) · StudioNotificationService · StudioRealtimeGateway
Modernization (2026-10-09, design plan M1)¶
Horizon now to next, per the technology radar: Agent-assisted Studio, embedded widgets in products, A2A inbound tasks through the public API. Exists in ConnectSoft today: Blazor shell, microfrontend library, UIKit, SignalR library exist as templates; no Studio. Each platform page of this plane states its horizon in its overview and later-capabilities pages.
Platforms in this plane¶
| Platform | Bounded contexts | Services | Modelled | Pages |
|---|---|---|---|---|
| Factory Studio (PF-14) | BC-29 | 7 | 3 | overview · services · APIs · events |
Bounded contexts¶
| Context | Platform | Authoritative state |
|---|---|---|
| BC-29 Experience Composition | Factory Studio | Session projections, navigation, command composition |
Services¶
| Service | Platform | Context | Granularity | Status | Page |
|---|---|---|---|---|---|
| AgentFlowVisualizationService | Factory Studio | BC-29 | module of host | unmodelled | — |
| DashboardAggregationService | Factory Studio | BC-29 | module of host | unmodelled | — |
| KnowledgeExplorerBff | Factory Studio | BC-29 | module of host | unmodelled | — |
| KnowledgeStudioBff | Factory Studio | BC-29 | module of host | unmodelled | — |
| StudioBff | Factory Studio | BC-29 | standalone host | target | design |
| StudioNotificationService | Factory Studio | BC-29 | module of host | target | design |
| StudioRealtimeGateway | Factory Studio | BC-29 | standalone host | target | design |
Events crossing the plane boundary¶
| Direction | Event | Producer | Consumer | Topic |
|---|---|---|---|---|
| out | StudioSessionStarted | StudioBff | AuditService | studio.sessions.v1.studio-session-started |
| out | StudioSessionStarted | StudioBff | DashboardService | studio.sessions.v1.studio-session-started |
| in | AgentCardPublished | AgentCardService | StudioBff | asset-publication.agent-cards.v1.agent-card-published |
| in | AgentCardWithdrawn | AgentCardService | StudioBff | asset-publication.agent-cards.v1.agent-card-withdrawn |
| in | AssetReleaseSubmitted | AgentRegistryService | StudioBff | asset-publication.releases.v1.asset-release-submitted |
| in | AssetReleasePublished | AgentRegistryService | StudioBff | asset-publication.releases.v1.asset-release-published |
| in | AssetReleaseDeprecated | AgentRegistryService | StudioBff | asset-publication.releases.v1.asset-release-deprecated |
| in | BudgetReserved | CostUsageService | StudioBff | usage-accounting.reservations.v1.budget-reserved |
| in | BudgetReservationDenied | CostUsageService | StudioBff | usage-accounting.reservations.v1.budget-reservation-denied |
| in | ReservationSettled | CostUsageService | StudioBff | usage-accounting.reservations.v1.reservation-settled |
| in | BudgetUpdated | CostUsageService | StudioBff | usage-accounting.budgets.v1.budget-updated |
| in | EnvironmentCreated | EnvironmentService | StudioBff | projects.environments.v1.environment-created |
| in | EnvironmentStateChanged | EnvironmentService | StudioBff | projects.environments.v1.environment-state-changed |
| in | SubscriptionChanged | FactoryCommercialService | StudioBff | factory-commercial.subscriptions.v1.subscription-changed |
| in | InvoiceIssued | FactoryCommercialService | StudioBff | factory-commercial.invoices.v1.invoice-issued |
| in | InvoiceIssued | FactoryCommercialService | StudioNotificationService | factory-commercial.invoices.v1.invoice-issued |
| in | ProjectCreated | ProjectService | StudioBff | projects.projects.v1.project-created |
| in | ProjectStateChanged | ProjectService | StudioBff | projects.projects.v1.project-state-changed |
| in | MembershipChanged | ProjectService | StudioBff | projects.memberships.v1.membership-changed |
| in | DelegationChanged | ProjectService | StudioBff | projects.delegations.v1.delegation-changed |
| in | RunAccepted | RunControlService | StudioBff | run-control.runs.v1.run-accepted |
| in | RunStateChanged | RunControlService | StudioBff | run-control.runs.v1.run-state-changed |
| in | RunCompleted | RunControlService | StudioBff | run-control.runs.v1.run-completed |
| in | RunFailed | RunControlService | StudioBff | run-control.runs.v1.run-failed |
| in | RunCancelled | RunControlService | StudioBff | run-control.runs.v1.run-cancelled |
| in | ApprovalRequested | RunControlService | StudioBff | run-control.approvals.v1.approval-requested |
| in | ApprovalRequested | RunControlService | StudioNotificationService | run-control.approvals.v1.approval-requested |
| in | ApprovalDecided | RunControlService | StudioBff | run-control.approvals.v1.approval-decided |
| in | AttemptStarted | AgentRuntimeService | StudioBff | execution.attempts.v1.attempt-started |
| in | AttemptPhaseChanged | AgentRuntimeService | StudioBff | execution.attempts.v1.attempt-phase-changed |
| in | AttemptDecisionRequested | AgentRuntimeService | StudioBff | execution.attempts.v1.attempt-decision-requested |
| in | AttemptDecisionRequested | AgentRuntimeService | StudioNotificationService | execution.attempts.v1.attempt-decision-requested |
| in | AttemptCancellationObserved | AgentRuntimeService | StudioBff | execution.attempts.v1.attempt-cancellation-observed |
| in | SubAgentDelegated | AgentRuntimeService | StudioBff | execution.attempts.v1.sub-agent-delegated |
| in | ReleaseLoadRejected | AgentRuntimeService | StudioBff | execution.releases.v1.release-load-rejected |
| in | WorkflowRunStarted | WorkflowEngineService | StudioBff | workflows.runs.v1.workflow-run-started |
| in | StepRunStateChanged | WorkflowEngineService | StudioBff | workflows.runs.v1.step-run-state-changed |
| in | CompensationStarted | WorkflowEngineService | StudioBff | workflows.runs.v1.compensation-started |
| in | WorkflowRunCompleted | WorkflowEngineService | StudioBff | workflows.runs.v1.workflow-run-completed |
| in | WorkflowRunFailed | WorkflowEngineService | StudioBff | workflows.runs.v1.workflow-run-failed |
| in | ComputePoolRegistered | ComputePoolService | StudioBff | compute-pools.pools.v1.compute-pool-registered |
| in | ComputePoolStateChanged | ComputePoolService | StudioBff | compute-pools.pools.v1.compute-pool-state-changed |
| in | ModelProfileActivated | ModelRouterService | StudioBff | model-access.profiles.v1.model-profile-activated |
| in | ModelProfileRetired | ModelRouterService | StudioBff | model-access.profiles.v1.model-profile-retired |
| in | DeploymentStateChanged | ModelRouterService | StudioBff | model-access.deployments.v1.deployment-state-changed |
| in | CapabilityEvidenceRecorded | ModelRouterService | StudioBff | model-access.deployments.v1.capability-evidence-recorded |
| in | ArtifactStored | ArtifactService | StudioBff | artifacts.artifacts.v1.artifact-stored |
| in | ArtifactValidated | ArtifactService | StudioBff | artifacts.artifacts.v1.artifact-validated |
| in | ArtifactSuperseded | ArtifactService | StudioBff | artifacts.artifacts.v1.artifact-superseded |
| in | ContextAssembled | ContextBuilderService | StudioBff | context-assembly.snapshots.v1.context-assembled |
| in | MemoryClassified | MemoryPromotionService | StudioBff | memory.items.v1.memory-classified |
| in | MemoryPromoted | MemoryPromotionService | StudioBff | memory.items.v1.memory-promoted |
| in | SkillCandidateProposed | MemoryPromotionService | StudioBff | memory.items.v1.skill-candidate-proposed |
| in | SkillCandidateProposed | MemoryPromotionService | StudioNotificationService | memory.items.v1.skill-candidate-proposed |
| in | SourceRegistered | KnowledgeIngestionService | StudioBff | ingestion.sources.v1.source-registered |
| in | SourceStateChanged | KnowledgeIngestionService | StudioBff | ingestion.sources.v1.source-state-changed |
| in | SnapshotFailed | KnowledgeIngestionService | StudioBff | ingestion.snapshots.v1.snapshot-failed |
| in | RepositoryIndexed | RepositoryIntelligenceService | StudioBff | repo-intelligence.indexes.v1.repository-indexed |
| in | RepositoryIndexFailed | RepositoryIntelligenceService | StudioBff | repo-intelligence.indexes.v1.repository-index-failed |
| in | IndexRevisionReady | VectorMemoryService | StudioBff | retrieval.indexes.v1.index-revision-ready |
| in | McpServerRegistered | McpServerRegistryService | StudioBff | tool-execution.mcp-servers.v1.mcp-server-registered |
| in | McpServerStateChanged | McpServerRegistryService | StudioBff | tool-execution.mcp-servers.v1.mcp-server-state-changed |
| in | McpCapabilitiesDiscovered | McpServerRegistryService | StudioBff | tool-execution.mcp-servers.v1.mcp-capabilities-discovered |
| in | ToolDescriptorActivated | ToolAdapterService | StudioBff | tool-execution.descriptors.v1.tool-descriptor-activated |
| in | ToolDescriptorRetired | ToolAdapterService | StudioBff | tool-execution.descriptors.v1.tool-descriptor-retired |
| in | ToolInvocationDenied | ToolAdapterService | StudioBff | tool-execution.invocations.v1.tool-invocation-denied |
| in | ToolEffectUncertain | ToolAdapterService | StudioBff | tool-execution.invocations.v1.tool-effect-uncertain |
| in | ToolEffectUncertain | ToolAdapterService | StudioNotificationService | tool-execution.invocations.v1.tool-effect-uncertain |
| in | ConnectorActivated | ConnectorRegistryService | StudioBff | connectors.connectors.v1.connector-activated |
| in | ConnectorDeprecated | ConnectorRegistryService | StudioBff | connectors.connectors.v1.connector-deprecated |
| in | ConnectorSubscriptionChanged | ConnectorRegistryService | StudioBff | connectors.subscriptions.v1.connector-subscription-changed |
| in | DeliveryFailed | ConnectorRegistryService | StudioBff | connectors.deliveries.v1.delivery-failed |
| in | DeliveryFailed | ConnectorRegistryService | StudioNotificationService | connectors.deliveries.v1.delivery-failed |
| in | ConnectionRegistered | IntegrationService | StudioBff | connections.connections.v1.connection-registered |
| in | ConnectionStateChanged | IntegrationService | StudioBff | connections.connections.v1.connection-state-changed |
| in | ConnectionGrantChanged | IntegrationService | StudioBff | connections.grants.v1.connection-grant-changed |
| in | PricingPlanChanged | LicenseService | StudioBff | licensing.pricing.v1.pricing-plan-changed |
| in | EntitlementGranted | LicenseService | StudioBff | licensing.entitlements.v1.entitlement-granted |
| in | EntitlementStateChanged | LicenseService | StudioBff | licensing.entitlements.v1.entitlement-state-changed |
| in | PublisherCertified | LicenseService | StudioBff | licensing.publishers.v1.publisher-certified |
| in | ListingPublished | MarketplaceCatalogService | StudioBff | marketplace.listings.v1.listing-published |
| in | ListingStateChanged | MarketplaceCatalogService | StudioBff | marketplace.listings.v1.listing-state-changed |
| in | ListingInstalled | MarketplaceCatalogService | StudioBff | marketplace.installations.v1.listing-installed |
| in | ListingRemoved | MarketplaceCatalogService | StudioBff | marketplace.installations.v1.listing-removed |
| in | PromotionRequested | EnvironmentPromotionService | StudioBff | releases.promotions.v1.promotion-requested |
| in | PromotionApproved | EnvironmentPromotionService | StudioBff | releases.promotions.v1.promotion-approved |
| in | PromotionCompleted | EnvironmentPromotionService | StudioBff | releases.promotions.v1.promotion-completed |
| in | PromotionCompleted | EnvironmentPromotionService | StudioNotificationService | releases.promotions.v1.promotion-completed |
| in | PromotionFailed | EnvironmentPromotionService | StudioBff | releases.promotions.v1.promotion-failed |
| in | RollbackCompleted | EnvironmentPromotionService | StudioBff | releases.promotions.v1.rollback-completed |
| in | ChangeProposalOpened | PipelineExecutionService | StudioBff | pipelines.proposals.v1.change-proposal-opened |
| in | ChangeProposalStateChanged | PipelineExecutionService | StudioBff | pipelines.proposals.v1.change-proposal-state-changed |
| in | ChangeProposalMerged | PipelineExecutionService | StudioBff | pipelines.proposals.v1.change-proposal-merged |
| in | PipelineRunStarted | PipelineExecutionService | StudioBff | pipelines.runs.v1.pipeline-run-started |
| in | PipelineRunCompleted | PipelineExecutionService | StudioBff | pipelines.runs.v1.pipeline-run-completed |
| in | ReleaseCreated | ReleaseService | StudioBff | releases.products.v1.release-created |
| in | ReleaseReady | ReleaseService | StudioBff | releases.products.v1.release-ready |
| in | ReleaseReady | ReleaseService | StudioNotificationService | releases.products.v1.release-ready |
| in | ReleaseWithdrawn | ReleaseService | StudioBff | releases.products.v1.release-withdrawn |
| in | SpecificationDeclared | IaCProvisioningService | StudioBff | provisioning.specifications.v1.specification-declared |
| in | ProvisioningPlanned | IaCProvisioningService | StudioBff | provisioning.runs.v1.provisioning-planned |
| in | ProvisioningApplied | IaCProvisioningService | StudioBff | provisioning.runs.v1.provisioning-applied |
| in | ProvisioningFailed | IaCProvisioningService | StudioBff | provisioning.runs.v1.provisioning-failed |
| in | WorkerPoolStateChanged | ExecutionCapacityService | StudioBff | capacity.pools.v1.worker-pool-state-changed |
| in | QuotaChanged | ExecutionCapacityService | StudioBff | capacity.quotas.v1.quota-changed |
| in | QuotaExceeded | ExecutionCapacityService | StudioBff | capacity.quotas.v1.quota-exceeded |
| in | ObservedStateChanged | RuntimeEnvironmentService | StudioBff | provisioning.inventory.v1.observed-state-changed |
| in | RuntimeDriftDetected | RuntimeEnvironmentService | StudioBff | provisioning.inventory.v1.runtime-drift-detected |
| in | ReconciliationProposed | RuntimeEnvironmentService | StudioBff | provisioning.inventory.v1.reconciliation-proposed |
| in | ReconciliationProposed | RuntimeEnvironmentService | StudioNotificationService | provisioning.inventory.v1.reconciliation-proposed |
| in | ReconciliationDecided | RuntimeEnvironmentService | StudioBff | provisioning.inventory.v1.reconciliation-decided |
| in | IncidentOpened | FleetIncidentService | StudioBff | fleet-operations.incidents.v1.incident-opened |
| in | IncidentOpened | FleetIncidentService | StudioNotificationService | fleet-operations.incidents.v1.incident-opened |
| in | IncidentStateChanged | FleetIncidentService | StudioBff | fleet-operations.incidents.v1.incident-state-changed |
| in | IncidentResolved | FleetIncidentService | StudioBff | fleet-operations.incidents.v1.incident-resolved |
| in | OnCallChanged | FleetIncidentService | StudioBff | fleet-operations.on-call.v1.on-call-changed |
| in | OffboardingRequested | FleetIncidentService | StudioBff | fleet-operations.offboarding.v1.offboarding-requested |
| in | OffboardingCompleted | FleetIncidentService | StudioBff | fleet-operations.offboarding.v1.offboarding-completed |
| in | ProductOnboarded | FleetInventoryService | StudioBff | fleet-inventory.products.v1.product-onboarded |
| in | ProductInstanceStateChanged | FleetInventoryService | StudioBff | fleet-inventory.products.v1.product-instance-state-changed |
| in | ProductObjectiveDefined | FleetInventoryService | StudioBff | fleet-inventory.objectives.v1.product-objective-defined |
| in | RolloutPlanned | FleetRolloutService | StudioBff | fleet-rollouts.rollouts.v1.rollout-planned |
| in | RolloutPlanned | FleetRolloutService | StudioNotificationService | fleet-rollouts.rollouts.v1.rollout-planned |
| in | RolloutWaveCompleted | FleetRolloutService | StudioBff | fleet-rollouts.rollouts.v1.rollout-wave-completed |
| in | RolloutHalted | FleetRolloutService | StudioBff | fleet-rollouts.rollouts.v1.rollout-halted |
| in | RolloutHalted | FleetRolloutService | StudioNotificationService | fleet-rollouts.rollouts.v1.rollout-halted |
| in | RolloutCompleted | FleetRolloutService | StudioBff | fleet-rollouts.rollouts.v1.rollout-completed |
| in | TopicRegistered | EnvelopeRegistryService | StudioBff | data-foundations.topics.v1.topic-registered |
| in | SchemaVersionPublished | EnvelopeRegistryService | StudioBff | data-foundations.topics.v1.schema-version-published |
| in | TopicDeprecated | EnvelopeRegistryService | StudioBff | data-foundations.topics.v1.topic-deprecated |
| in | EnvelopeProfileActivated | EnvelopeRegistryService | StudioBff | data-foundations.envelopes.v1.envelope-profile-activated |
| in | StoreProfileActivated | StoreProfileService | StudioBff | data-foundations.stores.v1.store-profile-activated |
| in | StoreBindingChanged | StoreProfileService | StudioBff | data-foundations.stores.v1.store-binding-changed |
| in | RetentionRuleChanged | RetentionResidencyService | StudioBff | data-foundations.retention.v1.retention-rule-changed |
| in | ResidencyRuleChanged | RetentionResidencyService | StudioBff | data-foundations.residency.v1.residency-rule-changed |
| in | DeletionOrderIssued | RetentionResidencyService | StudioBff | data-foundations.orders.v1.deletion-order-issued |
| in | DeletionOrderCompleted | RetentionResidencyService | StudioBff | data-foundations.orders.v1.deletion-order-completed |
| in | ExportCompleted | RetentionResidencyService | StudioBff | data-foundations.orders.v1.export-completed |
| in | ExportCompleted | RetentionResidencyService | StudioNotificationService | data-foundations.orders.v1.export-completed |
| in | LegalHoldChanged | RetentionResidencyService | StudioBff | data-foundations.orders.v1.legal-hold-changed |
| in | ApprovalRuleActivated | ApprovalPolicyService | StudioBff | approval-policy.rules.v1.approval-rule-activated |
| in | ApprovalRouted | ApprovalPolicyService | StudioNotificationService | approval-policy.routing.v1.approval-routed |
| in | ClassificationChanged | AuditService | StudioBff | audit.classification.v1.classification-changed |
| in | FindingRaised | AuditService | StudioBff | audit.findings.v1.finding-raised |
| in | FindingRaised | AuditService | StudioNotificationService | audit.findings.v1.finding-raised |
| in | FindingResolved | AuditService | StudioBff | audit.findings.v1.finding-resolved |
| in | PolicyRevisionActivated | PolicyEngineService | StudioBff | policy.bundles.v1.policy-revision-activated |
| in | PolicyRevisionRetired | PolicyEngineService | StudioBff | policy.bundles.v1.policy-revision-retired |
| in | SecretReferenceRegistered | SecretBrokerService | StudioBff | secret-broker.references.v1.secret-reference-registered |
| in | AlertRuleChanged | AlertRuleService | StudioBff | operations.alerts.v1.alert-rule-changed |
| in | AlertFired | AlertRuleService | StudioRealtimeGateway | operations.alerts.v1.alert-fired |
| in | AlertFired | AlertRuleService | StudioBff | operations.alerts.v1.alert-fired |
| in | AlertFired | AlertRuleService | StudioNotificationService | operations.alerts.v1.alert-fired |
| in | AlertResolved | AlertRuleService | StudioRealtimeGateway | operations.alerts.v1.alert-resolved |
| in | AlertResolved | AlertRuleService | StudioBff | operations.alerts.v1.alert-resolved |
| in | RunProjectionUpdated | DashboardService | StudioRealtimeGateway | operations.projections.v1.run-projection-updated |
| in | RunProjectionUpdated | DashboardService | StudioBff | operations.projections.v1.run-projection-updated |
| in | OperationsDigestProduced | DashboardService | StudioBff | operations.projections.v1.operations-digest-produced |
| in | FeedbackRecorded | FeedbackService | StudioBff | evaluation.feedback.v1.feedback-recorded |
| in | DatasetPublished | FeedbackService | StudioBff | evaluation.datasets.v1.dataset-published |
| in | LearningProposalRaised | FeedbackService | StudioBff | evaluation.learning.v1.learning-proposal-raised |
| in | LearningProposalRaised | FeedbackService | StudioNotificationService | evaluation.learning.v1.learning-proposal-raised |
| in | LearningProposalDecided | FeedbackService | StudioBff | evaluation.learning.v1.learning-proposal-decided |
| in | EvaluationSuiteActivated | QualityScoreService | StudioBff | evaluation.suites.v1.evaluation-suite-activated |
| in | EvaluationStarted | QualityScoreService | StudioBff | evaluation.runs.v1.evaluation-started |
| in | EvaluationCompleted | QualityScoreService | StudioBff | evaluation.runs.v1.evaluation-completed |
| in | EvaluationFailed | QualityScoreService | StudioBff | evaluation.runs.v1.evaluation-failed |
| in | DriftDetected | QualityScoreService | StudioBff | evaluation.runs.v1.drift-detected |
| in | SloDefined | SloService | StudioBff | operations.slos.v1.slo-defined |
| in | SloBreached | SloService | StudioBff | operations.slos.v1.slo-breached |
| in | SloRecovered | SloService | StudioBff | operations.slos.v1.slo-recovered |
| in | ServiceHealthChanged | SloService | StudioBff | operations.health.v1.service-health-changed |
| in | BlueprintValidated | BlueprintService | StudioBff | blueprints.versions.v1.blueprint-validated |
| in | BlueprintSubmitted | BlueprintService | StudioBff | blueprints.versions.v1.blueprint-submitted |
| in | BlueprintPublished | BlueprintService | StudioBff | blueprints.versions.v1.blueprint-published |
| in | ContextMapDerived | BlueprintService | StudioBff | blueprints.models.v1.context-map-derived |
| in | DomainModelDerived | BlueprintService | StudioBff | blueprints.models.v1.domain-model-derived |
| in | RecipeValidated | GenerationRecipeService | StudioBff | generation.recipes.v1.recipe-validated |
| in | RecipeApproved | GenerationRecipeService | StudioBff | generation.recipes.v1.recipe-approved |
| in | GenerationCompleted | GenerationRecipeService | StudioBff | generation.recipes.v1.generation-completed |
| in | GeneratedOutputRecorded | GenerationRecipeService | StudioBff | generation.outputs.v1.generated-output-recorded |
| in | TemplateVersionDiscovered | TemplateRegistryService | StudioBff | template-catalog.templates.v1.template-version-discovered |
| in | TemplateVersionPublished | TemplateRegistryService | StudioBff | template-catalog.templates.v1.template-version-published |
| in | LibraryVersionDiscovered | TemplateRegistryService | StudioBff | template-catalog.libraries.v1.library-version-discovered |
| in | CompatibilityChecked | TemplateRegistryService | StudioBff | template-catalog.compatibility.v1.compatibility-checked |
| in | ProductDescriptorPublished | GeneratedProductHost | StudioBff | product-domains.descriptor.v1.product-descriptor-published |
| in | OperationsHandoverAcknowledged | GeneratedProductHost | StudioBff | product-domains.operations.v1.operations-handover-acknowledged |
Gateways¶
| Gateway | Role | Fronts |
|---|---|---|
| GW-01 Edge ingress | TLS termination, routing, rate limits, token validation per canonical ADR-0101; YARP optional, ConnectSoft.ApiGatewayTemplate is the house implementation | ControlPlaneApi |
| GW-02 Studio BFF | Composition and session projections for the Studio; owns no business state; cohosted first | StudioBff |
Model coverage¶
| Count | |
|---|---|
| Services in the registry | 7 |
| Modelled (YAML exists) | 3 |
| With a design page | 3 |
| Unmodelled | 4 |