Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


id: ADR-0033 title: Keep one blueprint file, revised in git, with section numbers as stable citation targets status: accepted date: 2026-09-13 deciders: [paul-heyse] level: decision principles: [DM-02, DM-49, DM-55] blueprint: [§0.1] review: not-required: a documentation-authority decision; neither review raised a finding against it evidence: Proposed supersedes: [] superseded-by: null revisit: A revision needs to remove a section entirely, or the file grows past the point where one document is readable verification: governance / adr-lint (every ADR § citation must resolve to a heading in blueprint.md); docs / build


ADR-0033: Keep one blueprint file, revised in git, with section numbers as stable citation targets

Context

The design existed as …-blueprint.md and …-blueprint-rev3.md side by side, with reviews citing line numbers into whichever file they were written against. A citation that does not survive the next revision is not a citation.

Scope

Binds the blueprint’s file layout, its revision mechanism and its citation form. The amendment procedure for a decision is ADR-0001’s decision-PR rule.

Drivers

ADRs, reviews, plans and agent instructions all cite the blueprint; git already versions files; section numbers are the only stable handle a reader and a linter can share.

Options

One file per revision — rejected: every citation rots at the next revision. A docs site with anchors only — rejected: anchors change with titles; numbers do not.

Outcome

One docs/authoritative_design/blueprint.md, revised in git with tags design-rev2 and design-rev3 marking the seeded history. Section numbers are stable citation targets: new material is inserted as a sub-section, never by renumbering. §0.1 states that the file is authoritative, that ADRs record why, and that reviews are evidence, not authority.

Consequences

A section that becomes wrong is rewritten in place with a revision-history row and a > Decision: ADR-NNNN line, not deleted and renumbered.

Compensating controls

scripts/adr.py lint resolves every § citation against the file’s headings, so a renumbering breaks the build rather than silently rotting the records.

Confirmation

The revision-history table gained a git column so each revision names its tag; docs / build publishes the file with the ADR index beside it.

Pros and cons

Stable numbers constrain how the document can be reorganised; rotating citations constrain everything that cites it.

More information

Blueprint §0.1 (what this document is), revision history; docs/authoritative_design/README.md.

Status history

  • 2026-09-13 — accepted with the repository-seeding pull request (backfilled from blueprint revision 3).