A decision is a Design record issue, and docs/adr is frozen by a path rule in uphold's own policy - #286
Conversation
… rule in uphold's own policy .github/ISSUE_TEMPLATE/design.md files a Design record: seven headings (Goal, Today, Decision, Design, Plan, Done when, Open), title "Design: ", labels design and ruling:pending, with the research as a comment carrying version, date and evidence per claim, rejected options one clause each, the diagram as a fenced mermaid block, a plan of one pull request per item that names the library or engine feature it stands on, and a Done-when that names the test or rule holding the decision. config.yml keeps blank issues enabled. adr-freeze is a path_regexp rule over docs/adr with the existing records excluded by exact path, so a new file staged there fails uphold scan at pre-commit with the remedy in its message. It is claimed in upheld.toml for single-authoritative-source. CONTRIBUTING.md says where a decision goes; ROADMAP.md cites no issue by number and points at the tracker's milestones and labels for live state. REVIEW.md and AGENTS.md are regenerated with --review --emit, which lists adr-freeze among the active rules. Claude-Session: https://claude.ai/code/session_01DzvkN2qyaQDc3h7vqY2zLL
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (8)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe changes add a Design issue template and guidance for recording decisions. They also add the ChangesDesign records and ADR freeze
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Merge Risk: ⚪ Minimal · up to The Design workflow and ADR freeze are ready to merge; no actionable issue affecting decision records or repository policy remains. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 5 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #286 +/- ##
=======================================
Coverage 93.96% 93.96%
=======================================
Files 46 46
Lines 20069 20069
=======================================
Hits 18857 18857
Misses 1212 1212 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Builds the parts of #285 that belong in the tree. A decision is a Design record issue;
docs/adris frozen at the records that exist, by a rule in uphold's own policy.What changed, against the issue's Done-when
Freeze docs/adr -- built; the ruling on ADR 0012 is not made here.
adr-freezeinpolicy/principles.toml:Claimed in
policy/upheld.tomlforsingle-authoritative-source. Proof:uphold scanon this tree printspolicy checks passed(exit 0); with a scratchdocs/adr/0013-x.mdstaged (never committed, removed afterwards) it printspolicy check failed: adr-freeze, the message, anddocs/adr/0013-x.md, exit 1. ADR 0012 stays at Proposed until the owner rules it, and CONTRIBUTING.md says so.Template, and where a decision goes -- built.
.github/ISSUE_TEMPLATE/design.mdhas the seven headings (Goal, Today, Decision, Design, Plan, Done when, Open), titleDesign:, labelsdesign, ruling:pending, and prompts as HTML comments.config.ymlkeeps blank issues enabled. CONTRIBUTING.md gains "Where a decision goes": the issue comes before the pull request, research goes in a comment, the ruling is a label, REFERENCE.md stays the normative current-state document, and the existing ADRs stay as history. No sentence in CONTRIBUTING.md or README.md told a contributor to write an ADR, so none needed changing.Status vocabulary -- built as labels on this repository:
design,ruling:pending,ruling:accepted,ruling:rejected,ruling:deferred. The age check is left Open (below).ROADMAP without issue numbers -- built. The one numbered citation and the two "the issue" references are prose naming the evidence-layer design, and the top of the page says live state is the tracker's milestones and labels. What is planned or not planned is unchanged; no milestones were created.
Wheel named -- GitHub issue templates and labels, and
path_regexpfrom uphold's own engine for the freeze. No new tool.REVIEW.mdandAGENTS.mdare regenerated with--review --emit; the only change isadr-freezein the list of active rules.Engine gap, noted rather than built
path_regexpexpresses the freeze, with two limits that could be a later Design record:git ls-files, so the rule fires on a staged or tracked file, not on an untracked one in the working tree. That is the commit seam, which is where the freeze needs to hold.files.min_selectedcannot guard it: a renameddocs/adrdirectory reads clean. The Rust regex engine has no lookahead, which is why the existing records are excluded by path rather than by pattern. A rule kind such as "only these paths may exist under this root" would carry both.Open, not built
label:design label:ruling:pendingcreated more than N days ago and fails the run when any exist (needs onlyissues: read); or none, leaving the age visible in the label's issue list. Not chosen here.ast-grep testandconftest verify.https://claude.ai/code/session_01DzvkN2qyaQDc3h7vqY2zLL
Summary by CodeRabbit