Skip to content

ADRs are living documents; consolidate to one ADR per aspect#7

Merged
KaliCZ merged 4 commits into
restructure/single-api-projectfrom
adr/living-documents
Jul 16, 2026
Merged

ADRs are living documents; consolidate to one ADR per aspect#7
KaliCZ merged 4 commits into
restructure/single-api-projectfrom
adr/living-documents

Conversation

@KaliCZ

@KaliCZ KaliCZ commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Applies the corrected ADR policy on top of #6 (stacked PR — GitHub retargets when #6 merges), and consolidates the overlapping ADRs.

The rule

ADRs are the up-to-date description of the current design — never a numbered history of decisions. When a decision changes, its ADR is rewritten in place, in the same PR, to state the new thinking; git holds the history. No "superseded" statuses, no new number for a changed decision — new numbers are only for aspects no existing ADR covers, and numbering stays compact: removing or merging an aspect renumbers the rest. A rolled-back approach usually earns a line under "Alternatives considered".

Stated in docs/adr/README.md (the hard rules up top) and in CLAUDE.md ("Read the design first").

Applied

  • ADR-0001 rewritten to the current design and unified with old ADR-0003: the whole feature-slice story in one place — single API project, controllers not minimal APIs, no MediatR, handlers return Result + per-operation error enums, controllers map them exhaustively to HTTP, DTO layer, proof-of-loading reads. The abandoned two-project split and exceptions-for-business-failures live under Alternatives considered.
  • ADR-0002 unified with old ADR-0004: the whole constraint pipeline in one place — strong types are the only validation, EF stores them, Swashbuckle renders them into OpenAPI, the frontend client is generated from that document and drift-checked. One story: C# type → DB column → schema → TypeScript.
  • ADR-0009 deleted (single-project decision folded back into 0001); old 0003/0004 merged away; remaining ADRs renumbered to close the gaps: auth 0005→0003, seeding 0006→0004, tests 0007→0005, frontend 0008→0006.
  • All references updated across docs, CLAUDE.md, ADR cross-references, and code comments — a repo-wide sweep finds zero stale ADR numbers.

Final set: 0001 (slices + errors), 0002 (types + contract), 0003 (auth), 0004 (seeding), 0005 (real-dependency tests), 0006 (Vue SPA).

Docs + comments only; build stays at 0 warnings.

🤖 Generated with Claude Code

KaliCZ and others added 2 commits July 16, 2026 18:10
Fold the single-project decision back into ADR-0001 and delete
ADR-0009: an ADR is rewritten in place when its decision changes (git
holds the history), never marked superseded or replaced by a new
number. The rule is stated in docs/adr/README.md and CLAUDE.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
One aspect, one ADR: 0001 now carries the whole feature-slice story
(layout, controllers, Result error enums, DTO layer); 0002 carries the
whole constraint pipeline (strong types -> EF -> OpenAPI -> generated
frontend client). 0003 and 0004 are deleted; numbers are identity, so
the gaps stay.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@KaliCZ KaliCZ changed the title ADRs are living documents, not a change history ADRs are living documents; consolidate to one ADR per aspect Jul 16, 2026
KaliCZ and others added 2 commits July 16, 2026 22:54
@KaliCZ
KaliCZ merged commit 59ada94 into restructure/single-api-project Jul 16, 2026
@KaliCZ
KaliCZ deleted the adr/living-documents branch July 17, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant