ADR-021: Additive Stage 6 "Deprecate" — Lifecycle Retirement Capability
| Field | Value |
|---|---|
| Status | Accepted |
| Accepted | 2026-06-11 — HITL approved the 5+1 model via session decision (AskUserQuestion: "5+1 = 6 stages"). |
| Date | 2026-06-11 |
| Decision Makers | HITL, Cloud Architect, Product Owner |
| Scope | lifecycle-5plus1-2026-06-11 |
| Relationship to ADR-020 | EXTENDS — does NOT supersede. ADR-020's signed 5-stage canonical remains the canonical baseline, byte-unchanged. This ADR appends one stage. |
Additive guarantee (read this first). ADR-020 ("7-Phase to 5-Stage Lifecycle Migration", Status: Accepted, 2026-05-02) remains in force and is NOT reopened by this ADR. The five stages it ratified — Discover · Design · Build · Deploy · Support & Scale — keep their order, their names, their autonomy tiers, and their migrated data representations exactly as signed. This ADR makes a single additive change: it appends a sixth stage, Deprecate, after Support & Scale. No existing stage is renamed, reordered, removed, or re-migrated. The model is now "5 + 1".
Context
ADR-020 collapsed three conflicting lifecycle models into one signed 5-stage canonical, eliminating an estimated 12–210 hrs/yr of vocabulary-translation overhead. That decision is sound and is not in question here.
However, ADR-020's 5-stage canonical has no retirement stage — and the project constitution mandates one in two separate places:
- Principle VI — Governance & Compliance,
constitution.md:144:"Secure retirement: decommissioning plans, data archival, evidence preservation"
- ADLC Workflow — Operate gate,
constitution.md:194:"Operate: Audit metrics, data lineage, decommission plan → Gate: Compliance review closed"
- Operate phase activity,
constitution.md:186:"Operate: Curated agent catalog, ongoing fairness audits, security risk assessments, regulatory compliance tests, secure retirement"
This is a genuine, currently-unbuilt gap (independent of any model debate): there is no command, no agent, no skill, and no gate that operationalizes secure retirement. The constitution requires it; nothing builds it. For an ANZ FSI/Energy/Telecom enterprise platform, an un-evidenced or ad-hoc decommission is a direct APRA CPS 234 §36 exposure (information-asset retirement must produce auditable evidence).
A parallel exploration also surfaced a 9-phase ("9D": Discovery → … → Deprecation) proposal that would add Deprecation as one of nine serial phases. That proposal re-litigates the just-signed ADR-020 and re-pays its one-time migration cost (ADR-020 Consequences: 9 CSV files + 3 docs + types.ts). The 9D structure is therefore rejected here as the mechanism; only the one capability it correctly identified — retirement — is adopted, and adopted additively.
Decision
Add a sixth lifecycle stage, "Deprecate", ADDITIVELY on top of the signed 5-stage canonical. The model becomes "5 + 1" (six stages).
The 5+1 canonical (Stage 6 appended; Stages 1–5 unchanged from ADR-020)
| # | Stage | Source | Autonomy Tier (sub-steps) | Gate / signed artifact |
|---|---|---|---|---|
| 1 | Discover | ADR-020 (unchanged) | [A] + [HITL-gate] | discovery-brief.md signed |
| 2 | Design | ADR-020 (unchanged) | [A] + [HITL-gate] | feature-spec.md + tasks.md |
| 3 | Build | ADR-020 (unchanged) | [A] code + [A-gated] review/tests | Tests green; PR ready; docs updated |
| 4 | Deploy | ADR-020 (unchanged) | [A-gated] test → [HITL] apply | Plan reviewed; HITL applies; visual-verify |
| 5 | Support & Scale | ADR-020 (unchanged) | [A-readonly] + [HITL-decide] | DORA collected; retro; remediation HITL-approved |
| 6 | Deprecate (NEW) | this ADR | [A-readonly] collect + [HITL-decide] + [HITL] destroy | decommission-plan.md signed; usage < floor; deps cleared; data archived; evidence preserved |
What "additive" means concretely
- Data representation —
docs/src/data/projects/types.tsADLCPhaseunion appends"Deprecate"after"Support & Scale". The existing five members keep their positions. No CSV re-migration: the 9 CSVs migrated under ADR-020 are byte-untouched because no existing phase value changes. - Single SSOT — a new
skills/governance/lifecycle-ssot/SKILL.mdbecomes the one canonical definition of all six stages.constitution.mdand.adlc/CLAUDE.mdreference it (they stop restating the lifecycle). This de-fragments the canon that was previously smeared acrossconstitution.md+MANIFEST.json+QUICKSTART-deploy-lifecycle.md+.adlc/CLAUDE.md. - 9D aliases survive as labels, not structure — "Deprecation" becomes an alias of Stage 6; "Definition" → Discover; "Documentation" → cross-cutting + Build sub-step; "Delivery" → Deploy (1:1 rename); "Data" → Deploy (migration) + Support & Scale (measurement). Nothing the 9D model named is lost; none of it becomes a new serial phase.
- No new destructive surface — Stage 6's destructive operations (
terminate-*,delete-*,git rm,terraform apply) are already hook-blocked today byvalidate-bash.shandprinciple-i-acceptable-agency.md. The new/adlc:deprecatecommand authors a signeddecommission-plan.mdand stops; the HITL executes any actual destroy, post-signature, through the existing hook-gated path. Building Stage 6 adds tooling, not new risk.
Components this decision authorizes (built in later waves, not this ADR)
| Component | File | Role |
|---|---|---|
| Lifecycle SSOT skill | skills/governance/lifecycle-ssot/SKILL.md | The one canonical 6-stage definition |
| Secure-retirement skill | skills/governance/secure-retirement/SKILL.md | Decommission/archival/evidence domain knowledge (Principle VI) |
| Lifecycle-steward agent | agents/decision/lifecycle-steward.md | Stage 6 owning specialist (orchestrator pattern, Principle VII) |
| Deprecate command | commands/adlc/deprecate.md (/adlc:deprecate) | Stage 6 orchestrator — authors signed plan, never destroys |
| Decommission-evidence hook | hooks/scripts/enforce-decommission-evidence.sh | Makes the Operate gate (L194) enforceable, not advisory |
| Decommission-plan template | templates/adlc/decommission-plan.md | Signed-artifact schema the command emits and the hook gates on |
Alternatives Considered
Option A: Adopt the full 9-phase ("9D") model (Discovery → … → Deprecation)
Rejected. The 9D model re-litigates ADR-020, which the organization signed on 2026-05-02 and whose migration it already paid for (ADR-020 Consequences: 9 CSV files + 3 docs + types.ts union). Re-opening the canon to insert nine serial phases re-pays that migration cost for zero net capability gain — eight of the nine 9D phases map cleanly onto the existing five stages (Definition→Discover, Documentation→cross-cutting, Delivery→Deploy, Data→Deploy+Support&Scale, etc.). Only the ninth, Deprecation, names a capability the 5-stage canon lacks. Adopting that one capability additively delivers the entire benefit of 9D at ~1/9th the change cost and without disturbing the signed baseline. This directly reconciles with ADR-020 Option A ("Keep 7-phase, translate in documentation only — Rejected: translation overhead is the problem"): adding more serial phases re-introduces exactly the translation overhead ADR-020 eliminated.
Option B: Fold retirement into Stage 5 (Support & Scale) — no new stage
Rejected. Support & Scale's autonomy profile is [A-readonly] monitoring + [HITL-decide] remediation — a keep-it-running posture. Retirement is the opposite intent: a deliberate, gated, evidence-producing wind-down that culminates in [HITL] destruction of assets. Folding a destroy-intent workflow into a keep-running stage would (a) hide the most safety-critical lifecycle transition inside an operational-monitoring stage, and (b) leave the Operate-gate's "decommission plan → Compliance review closed" requirement (L194) without a distinct gate artifact. CPS 234 §36 needs retirement to be a named, auditable lifecycle event with its own signed artifact — not a sub-mode of monitoring. A distinct Stage 6 with its own decommission-plan.md gate is the minimum structure that satisfies the compliance mandate. (This also reconciles with ADR-020 Option C — "keep three models per domain, rejected for complexity": we are NOT adding a parallel model, only one stage to the single canonical model.)
Option C: Add an explicit "Measure" gate as well (the "5+2" model)
Rejected (for now). A parallel design question asked whether the post-launch telemetry→insight loop ("Data-as-measurement") deserves its own named stage between Deploy and Support & Scale. It does not, today: that measurement loop already has its commands (/metrics:update-dora, /ceremony:review), its agent (observability-engineer), and its gate (the Sprint Review ceremony = "metrics collected + analysis complete + stakeholders informed"). All three exist and run inside Support & Scale's front half. Wrapping a new "Measure" phase around already-shipped components would be PREMATURE_ABSTRACTION — a structural label with no new capability behind it. Retirement, by contrast, has zero existing components — which is precisely why it (and only it) earns a new stage. If a future need arises to make the measurement loop a hard gate, that is a separate, additive ADR; it is explicitly out of scope here.
Option D: Build the Stage 6 tooling without an ADR
Rejected. APRA CPS 234 §36 and constitution Principle VI require a human-signed decision record for a new lifecycle stage that governs information-asset retirement. ~30 downstream story-points (the secure-retirement skill, lifecycle-steward agent, deprecate command, evidence hook, template) have no authorizing artifact without this ADR. The ADR is the HITL gate for all of it.
Consequences
Positive
- Constitution honored: Principle VI's secure-retirement mandate (L144) and the Operate gate (L194) move from prose to runnable, gated tooling.
- Signed baseline preserved: ADR-020's 5-stage canon and its paid-for migration are untouched. Zero CSV re-migration. The additive change is one enum member.
- Compliance posture: retirement becomes a named, auditable lifecycle event with a signed
decommission-plan.md— closing the CPS 234 §36 information-asset-retirement evidence gap. - Canon de-fragmentation: the new
lifecycle-ssotSSOT replaces four scattered restatements with one referenced source. - No new risk surface: destructive verbs stay hook-blocked; the command authors a plan and stops; HITL executes destruction through the existing gated path.
Negative / Costs
- One-time additive cost: append
"Deprecate"to theADLCPhaseunion; increment component counts inMANIFEST.json; reference the SSOT fromconstitution.md+.adlc/CLAUDE.md. This is a MINOR semver bump (additive), not MAJOR. - New components to maintain: one skill (SSOT), one skill (secure-retirement), one agent, one command, one hook, one template. Each follows existing orchestrator/skill conventions, so maintenance overhead is bounded.
- Cross-tree ADR-number note: this ADR is
adr-021in thedocs/docs/adrs/series (the same series as theadr-020it extends). A separateADR-021-spec-kit-consolidation.mdexists in the distinct.claude/memory/adrs/framework-infra namespace. The two trees are independent (lowercaseadr-= product-lifecycle; UPPERCASEADR-= ADLC-infra) and have reused numbers before (adr-001exists in both). Recommend a one-line disambiguation note in each tree's index during the SSOT-alignment wave — non-blocking for signing this ADR.
Neutral
- The 6-phase constitution engineering loop (Plan → Build → Test → Deploy → Monitor → Operate) is unchanged. The SSOT declares it as the inner engineering loop nested inside Stage 3 (Build) + Stage 4 (Deploy) — it is not a competing model, and this ADR does not alter it.
References
- ADR-020: 7-Phase to 5-Stage Lifecycle Migration (Status: Accepted, 2026-05-02) — the signed baseline this ADR extends and does NOT supersede.
docs/docs/adrs/adr-020-7-to-5-phase-migration.md - Constitution Principle VI — Governance & Compliance,
constitution.md:144— "Secure retirement: decommissioning plans, data archival, evidence preservation" (the mandate) - Constitution ADLC Workflow — Operate gate,
constitution.md:194— "Operate: Audit metrics, data lineage, decommission plan → Gate: Compliance review closed" (the gate this ADR operationalizes) - Constitution Principle VII,
constitution.md:155— orchestrator pattern (50–100 lines) the lifecycle-steward agent follows - APRA CPS 234 §36 — information-asset retirement / auditable decommission evidence
principle-i-acceptable-agency.md+validate-bash.sh— the existing hooks that already block Stage 6's destructive verbs (no new guardrail required)- Plan:
~/.claude/plans/this-session-aims-to-tidy-rossum.md(RQ1 5+1 table, LC-1..LC-9 backlog) - Coordination:
tmp/b2b-commerce/coordination-logs/{product-owner,cloud-architect}-lifecycle-5plus1-2026-06-11.json
Origin: ADLC Framework Wave F0 (scope_id: lifecycle-5plus1-2026-06-11). Additive to ADR-020. HITL flips Status: Proposed → Accepted before Wave F1 build begins. Agent never commits (Principle I) — HITL authors the commit.