/adr:update
Update an existing ADR's status or add amendments documenting status changes.
Quick Start
/agileflow:adr:update NUMBER=0042 STATUS=accepted REASON="Team approved after review"Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
NUMBER | Yes | - | ADR number to update (4-digit, e.g., 0042) |
STATUS | No | - | New status: proposed, accepted, deprecated, superseded |
REASON | No | - | Reason for the status change |
SUPERSEDED_BY | No | - | If superseding, the new ADR number (e.g., 0045) |
Examples
Accept a Proposed ADR
/agileflow:adr:update NUMBER=0042 STATUS=accepted REASON="Team approved after security review"Deprecate an ADR
/agileflow:adr:update NUMBER=0035 STATUS=deprecated REASON="Context changed, approach is no longer applicable"Mark ADR as Superseded
/agileflow:adr:update NUMBER=0042 STATUS=superseded SUPERSEDED_BY=0045 REASON="New requirements made this approach obsolete"Reactivate Deprecated ADR
/agileflow:adr:update NUMBER=0030 STATUS=accepted REASON="Reconsidered in light of new project constraints"Interactive Mode
/agileflow:adr:update NUMBER=0042Without STATUS or REASON, the command guides you through the update process.
Status Transitions
Valid Transitions
| From | To | Common Reason |
|---|---|---|
proposed | accepted | Team approved decision |
proposed | rejected | Alternative chosen, not viable |
accepted | deprecated | No longer relevant, context changed |
accepted | superseded | Better approach found, replaced by new ADR |
deprecated | accepted | Reconsidered, still valid |
superseded | accepted | Replacement didn't work out |
Workflow
When you run the command:
- Validates the ADR exists
- Asks for new status (if not provided)
- Requires a reason for any status change
- Shows preview of what will be updated
- Asks for confirmation before writing
- Appends amendment documenting the change
- Updates frontmatter with new status and timestamp
Amendment Format
When an ADR status changes, the command appends an Amendment section:
## Amendment - 2024-12-30
**Status changed**: accepted → superseded
**Reason**: New requirements made this approach obsolete.
**Superseded by**: [ADR-0045: New Approach](adr-0045-new-approach.md)
**Updated**: 2024-12-30The original ADR content is preserved; amendments document the change.
Examples by Scenario
Scenario 1: Approving a Proposed Decision
# A team member proposed using a new framework
# After review meeting, you approve it
/agileflow:adr:update NUMBER=0047 STATUS=accepted REASON="Team consensus in architecture review meeting 2024-12-30. Framework choice validated against scalability requirements."Result: ADR-0047 now marked as accepted with documented approval.
Scenario 2: Replacing an Old Approach
# You've found a better approach to database caching
# The old ADR (0041) should be superseded by new ADR (0050)
/agileflow:adr:update NUMBER=0041 STATUS=superseded SUPERSEDED_BY=0050 REASON="New caching strategy provides 3x better performance with simpler implementation. See ADR-0050 for details."Result: ADR-0041 marked as superseded with link to ADR-0050.
Scenario 3: Reconsidering a Deprecated Decision
# Project direction changed, old approach might be relevant again
/agileflow:adr:update NUMBER=0020 STATUS=accepted REASON="Project switched to microservices architecture. Original monolithic approach may apply to specific subdomain. Reactivating for team consideration."Result: ADR-0020 unmarked as deprecated, now accepted for discussion.
Scenario 4: Documenting Context Change
# Business requirements changed, a decision no longer applies
/agileflow:adr:update NUMBER=0038 STATUS=deprecated REASON="Support for legacy browsers dropped in new product roadmap. This ADR addressed IE11 compatibility which is no longer required."Result: ADR-0038 marked as deprecated explaining why it's obsolete.
Best Practices
When to Update ADR Status
- Approve proposed ADRs after team review
- Deprecate if context or requirements change
- Supersede when a newer ADR replaces this approach
- Reactivate if circumstances change and old decision is relevant again
Writing Good Reasons
Good reasons:
- "Team consensus after architecture review"
- "New performance requirements make this approach inefficient"
- "Business requirement removed the constraint that triggered this decision"
- "Successfully implemented and validated in production"
Poor reasons:
- "No longer needed"
- "Better approach exists"
- "Team decided"
Documenting Supersession
When superseding an ADR:
- Always include
SUPERSEDED_BYwith new ADR number - Explain why the new approach is better
- Reference the new ADR for implementation details
- Keep the original ADR intact for history
Creating Implementation Work
After approving an ADR:
# Mark ADR as accepted
/agileflow:adr:update NUMBER=0050 STATUS=accepted REASON="Team approved in review"
# View the ADR to plan implementation
/agileflow:adr:view NUMBER=0050
# Create stories or epic from the ADR
/agileflow:epic TITLE="Implement ADR-0050" ...Related Commands
On This Page
/adr:updateQuick StartParametersExamplesAccept a Proposed ADRDeprecate an ADRMark ADR as SupersededReactivate Deprecated ADRInteractive ModeStatus TransitionsValid TransitionsWorkflowAmendment FormatExamples by ScenarioScenario 1: Approving a Proposed DecisionScenario 2: Replacing an Old ApproachScenario 3: Reconsidering a Deprecated DecisionScenario 4: Documenting Context ChangeBest PracticesWhen to Update ADR StatusWriting Good ReasonsDocumenting SupersessionCreating Implementation WorkRelated Commands