Skip to main content

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​

  1. 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).
  2. One state machine, in order draft, test, security_review, business_approval, staging, production, monitoring, plus rejected: entering the security review needs a passing test report; entering the business approval needs a change.security_review approval of a security officer; entering staging needs a change.business_approval approval of an administrator; entering production needs passing staging smoke tests and a change.production approval of two people; entering monitoring needs passing production smoke tests.
  3. Approvals go through the existing approvals service: the author never approves, an approval is bound to the change, the target stage and the version.
  4. 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 (monitoring or rejected) 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).