Extend ADR lifecycle: Rejected status, body-section rules, frontmatter cleanup#47
Merged
Merged
Conversation
…frontmatter cleanup) Post-release reflection on PR #46. Codifies refinements that emerged during shipping the architecture-skill tightening: - Add `Rejected` as a fifth ADR status: `Proposed | Accepted | Rejected | Deprecated | Superseded`. A Rejected ADR records "team weighed this option and explicitly chose against it" — useful when the same idea resurfaces. - Codify body-section requirements by status. `## Deprecated` required for `Deprecated`, `## Rejected` required for `Rejected`, `## Superseded` optional for `Superseded` (linkage carries it). - Finalize ADR frontmatter schema: structured what+when only (status, date, accepted_date, rejected_date, deprecated_date, supersedes, superseded_by). Drop the `deprecated_reason` and `migrated_to` fields introduced during the deprecation pass — those belong in the body section's prose where they have context. Frontmatter is for indexing and future tooling; the body is the authoritative narrative. - Clean up `ADR-004`/`ADR-006`/`ADR-009` frontmatter accordingly. - `docs/ARCHITECTURE.md` Operating Principles section gains two more subsections informed by PR #46: - **Adversarial Review for Substantive Guidance Changes** — `loaf:reviewer` (internal-consistency) is the baseline; `codex:rescue` (adversarial design) is recommended when available. Each catches different defect classes. Codex is plugin-dependent and optional. - **Recategorization as a General Lifecycle Pattern** — supersession (the answer changed) vs recategorization (the classification was wrong, the rule still holds). Generalizes beyond ADRs.
Session wrap-up summary for the 2026-05-02 release session (v2.0.0-dev.38, PR #46 + ADR-lifecycle extension follow-up).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Post-release follow-up to PR #46. Codifies the lifecycle refinements that emerged during shipping the architecture-skill tightening and ADR deprecations.
Ships as
v2.0.0-dev.39.Changes
ADR lifecycle
Rejectedas a fifth ADR status. Full lifecycle:Proposed | Accepted | Rejected | Deprecated | Superseded. ARejectedADR records "the team weighed this option and explicitly chose against it."## Deprecatedrequired forDeprecated,## Rejectedrequired forRejected,## Supersededoptional forSuperseded(linkage carries it).status,date,accepted_date(optional),rejected_date,deprecated_date,supersedes,superseded_by. Dropsdeprecated_reasonandmigrated_tofrom frontmatter — those belong in the body section's prose where they have context.ADR-004,ADR-006,ADR-009frontmatter accordingly. Body sections preserve all migration content.content/templates/adr.mdwith the new schema and a header note about the body-section requirement.docs/ARCHITECTURE.mdOperating PrinciplesTwo new subsections sibling to the Authorship Model principle:
loaf:reviewer(internal-consistency) is the baseline;codex:rescue(adversarial design) is recommended when available. Each catches different defect classes. Codex is plugin-dependent and optional.Bookkeeping
v2.0.0-dev.38, PR Tighten architecture skill: ADR bar to architecturally significant #46 + this lifecycle extension follow-up).Test plan
npm run typecheckcleanloaf buildclean across all 6 targetsloaf release --pre-merge --bump prerelease— version + CHANGELOG updated, build refreshed, release commit landed