ADR-0159: Single change management pipeline
Context
The architecture reference (B10.4) asks that a prompt, skill, connector, rule or model change follows the same path: draft, tests, security review, business approval, staging, production, monitoring. Before this decision, every registry had its own states (prompt draft and publication, model promotion, pack promotion) without a common path or a single trace of the stages.
Decision
eai.change_requests(V192, forced RLS) holds a change: kind (prompt,skill,connector,rule,model,policy,tool,agent,pack), reference, version, stage, evidence and the history of every transition (actor, date, approval).- One state machine, in order
draft,test,security_review,business_approval,staging,production,monitoring, plusrejected: entering the security review needs a passing test report; entering the business approval needs achange.security_reviewapproval of a security officer; entering staging needs achange.business_approvalapproval of an administrator; entering production needs passing staging smoke tests and achange.productionapproval of two people; entering monitoring needs passing production smoke tests. - Approvals go through the existing approvals service: the author never approves, an approval is bound to the change, the target stage and the version.
- Routes:
POST /v1/marketplace/changes,GET /v1/marketplace/changes,GET /v1/marketplace/changes/{id},POST /v1/marketplace/changes/{id}/advance(202 with the approval to obtain, then 200),POST /v1/marketplace/changes/{id}/reject. Every transition is audited.
The registries keep their own publication states; the pipeline is the common trace and gate above them.
Consequences
- A closed change (
monitoringorrejected) no longer moves. - Wiring a registry to the pipeline automatically (refusing a publication without a change in
production) is a next step, outside this decision.
Evidence
services/control-plane/tests/test_change_pipeline.py (the seven stages for a prompt, a skill, a connector, a rule and a model, missing or failing evidence refused, the author does not approve, quorum of two for production, rejection, isolation between tenants, audit).