docs: establish ADR framework and ADR-001 stacked pull requests#130
Conversation
Introduces `docs/decisions/` as the normative location for Architecture Decision Records. ADR-001 documents the stacked PR methodology for delivering multi-PR features with reduced review fatigue. - docs/decisions/README.md — ADR process, template, lifecycle - docs/decisions/001-stacked-pull-requests.md — stacked PR methodology - AGENTS.md routing table updated for agent discoverability - Starlight sync + sidebar includes Decisions section Closes #129 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Drop `of {M}` from position statement to avoid backfill thrashing
when stack size changes (scottschreckengaust, ayushtr-aws)
- Make "Next/Remaining" section explicitly optional — only include
when scope is fixed and known (scottschreckengaust, isadeks, ayushtr-aws)
- Add `blocked by` / `blocking` dependency relationships to sub-issue
linking section (scottschreckengaust, ayushtr-aws)
- Keep Pragmatic Engineer reference (ayushtr-aws)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
This is a solid first ADR — small scope, hooked into the docs pipeline the way we already do guides/design, and ADR-001 is concrete enough to actually use on stacks like #145. What I like Good split: docs/design/ for how the system works, docs/decisions/ for durable why / process choices. Merge model — There’s a small tension between “PR N targets N−1’s branch, tip merges to main” and “early PRs can merge and ship while later ones are in review.” Worth one explicit paragraph on our default (classic stack vs trunk slicing) and what to do when PR1 merges early (retarget/rebase). Infra stacks — “Deployable without breaking” is tough for multi-PR CDK/IAM (#120 / #145). Maybe call out an exception: synth + tests OK on early slices, feature flags / no-op states, or “deploy gate” on a named PR. When to stack — “4+ files” vs “<200 lines” can disagree; a one-liner that review time / blast radius drives the call (not file count alone) would help. Design vs ADR — Short note in docs/decisions/README.md so we don’t end up with two constitutions when ADR-003+ land: design = shape/interfaces/detail; ADR = cross-cutting choices; supersede via new ADR. Plumbing — AGENTS.md “Common mistakes” could mention docs/decisions/; optional link from CONTRIBUTING.md. Big picture: I’d merge this first as governance for #145 and the ADR train — just want merge semantics and infra deployability clarified before we treat this as gospel. Happy to approve once (1) and (2) are addressed here or in an immediate follow-up. |
Clarify what happens when an early PR in a stack merges before later PRs are reviewed: retarget to main, rebase, verify CI. Resolves the tension between "PR N targets N-1" and "early PRs can ship." Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
For multi-PR CDK/IAM stacks, intermediate slices may not deploy independently. Clarify that synth+tests is the validation gate, and introduce a "deploy-gate PR" concept in the stack position block. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Thanks for the thorough review — addressed (1) and (2) in two separate commits just pushed: 1. Merge semantics (
2. Infra-stack deployability (
Update: Addressing (3)–(5) in this PR as well — incoming as a single commit. |
- Clarify that review time/blast radius drives stacking, not file count - Add "Relationship to docs/design/" section in ADR README - Add ADR pointer in CONTRIBUTING.md alongside design docs guidance Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Stack position
PR 1 of 4 for #145 — Least-privilege CDK bootstrap policies as code
Prior: (none — this is the first PR in the stack)
This PR: ADR framework + ADR-001 stacked pull requests methodology
Remaining (8 PRs): ADR-002 least-privilege decision record, policies as TypeScript, bootstrap template, resource-action-map, CDK Aspect, preflight validator, CI integration, documentation updates
Summary
docs/decisions/as the normative location for Architecture Decision RecordsAGENTS.mdrouting table for agent discoverabilitydocs/decisions/into the sync script for automatic mirroringChanges
docs/decisions/README.mddocs/decisions/001-stacked-pull-requests.mdAGENTS.mddocs/decisions/docs/astro.config.mjsdocs/scripts/sync-starlight.mjsdecisions/→ Starlightdocs/src/content/docs/decisions/*Test plan
astro check— 0 errors, 0 warningsCloses #129
🤖 Generated with Claude Code