Uh oh!
There was an error while loading. Please reload this page.
docs(adr): un-flatten ADR-0082's decision-6 chain diagram severity label - #11981
Conversation
The chain diagram's prop-gate box read `(hard: missing-required / typo)`, putting both mistakes on the same severity. Decision 5 of the same ADR already splits them — a missing required binding is an error, a near-miss prop typo is a warning — and the CLI matches decision 5, not the diagram. Reword the label to the same two words decision 5 uses. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx
os-steve
commented
Aug 25, 2026
ACCEPT. ⛔ Stays draft — The label now borrows decision 5's own notation, not just its meaning- (hard: missing-required / typo)+ (missing-required → error / typo → warning)Decision 5, fifteen lines above, reads:
So the diagram now uses the same arrow form and the same two words. That is better than a paraphrase that merely agrees: a reader comparing the two sees one vocabulary, and a future editor changing one has an obvious reason to change the other. The fence held where it matteredThe line immediately below the diagram — the golden-page citation at Checking on
|
os-trump
commented
Aug 25, 2026
Merging on the maintainer's direct instruction. Provenance: the maintainer, PM chat session 2026-08-25, batch-2 governed-PR review: 「同意」. Audit record for the governed-merges checklist. Checks verified at head Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#11914
docs/adr/0082-react-component-contract-governance.mddecision 6's chain diagram flattens the severity split that decision 5 of the same ADR records fifteen lines earlier. The prop-gate box read:putting
missing-requiredandtypoon the same side of one word,hard— as if both fail the gate.Why it's wrong
Decision 5's own body splits the two by severity:
and the TL;DR line (decision 5) states it the same way: "a missing required binding is an error; a near-miss prop typo is a warning." The measured CLI behaviour (captured in #11914 and re-derived for #11912, a sibling repair on the adjacent line 99) agrees with decision 5, not with the diagram: a missing required
objectNameexits 1, anonSuccestypo alone exits 0 with a⚠advisory.The edit
One line. The parenthetical now uses the same two words decision 5 uses for the two severities, so a reader following the arrow lands on the same distinction decision 5 makes:
No other line in the file changed — decision 5 itself and the golden-page citation on the line immediately below the diagram (already being repaired separately by #11912) are untouched.
Scope
Gates
Derived live at the final commit with
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack(no hand-written path list), then run at HEADc93e1844dwith a clean working tree. Verdict lines as each gate printed them:check:nul-bytesis not path-derived for this card; it was run anyway because the diff was hand-edited.Deliberately not done
docs/adr/**is a governed surface (Prime Directive feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14): never flipped ready, never queued, never auto-merged. Review requested fromos-zhuang; the maintainer's hand-merge is the review record.skip-changesetapplied instead.Generated by Claude Code
Generated by Claude Code