Uh oh!
There was an error while loading. Please reload this page.
docs(pm-skill): a decision-box restore must cite a retrievable ruling id it fetched in the same pass - #13948
Merged
Conversation
… id it fetched in the same pass The restore-citation rule lands in the ruling-record section of the dispatch runbook, beside the atomic-four supplement it constrains: a write that takes a card out of `needs-user-decision` must carry a comment id — a director-ledger entry or the card's own ruling comment — and that id must have been FETCHED in the same pass. Presence of an id is not retrievability: measured this round, thirteen ruling ids quoted verbatim by later comments return 404 today, and one seat self-corrected a ruling permalink it had invented. Reader side is symmetric: a decision re-read that hits a box exit with no retrievable id treats the card as unruled — same-write flip back, no dispatch — and the conclusion stays on verifiability, asserting no cause. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Msg17tAHJ3jVTYFgHydCm2
This was referenced Aug 31, 2026
os-zhuang
approved these changes
Aug 31, 2026
os-zhuang
approved these changes
Aug 31, 2026
os-zhuang
marked this pull request as ready for review
August 31, 2026 23:59
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#13730
Fixes#13792
⛔ Governed surface (
.claude/**) — draft only. Do not flip ready, do not arm auto-merge, do not queue. Human merge, per Prime Directive #14.What lands
Six lines in
.claude/skills/pm-dispatch/references/dispatch-runbook.md, inside its## 落卡与裁决记录细则section, directly after the ruling-record atomic-four supplement they constrain. The rule:Two carriers are legal because the ruling of 2026-08-31 on the ruling-durability question made the director seat's per-session ledger table the record of a ruling's existence, with the card comment as elaboration. The rule text names both, so it does not fork from that ruling.
Why the criterion is "fetched", not "an id is present"
Both failure shapes were measured on this card's own evidence run, and a presence-only criterion passes both:
Fetching the id in the same pass is the one check that separates a ruling on record from a recollection, and it is machine-checkable in principle — deliberately not 「请仔细核对」, which is measured dead.
The second member (#13792) is delivered as a comment, not as a diff
The bound reconciliation deliverable — an 在案 / 不在案 list for the director ledger's 第 3 场 claim of 58 per-card ruling comments — is posted on #13792 as comment #13792 (comment). Summary of that reading, which is also the evidence base for the rule text above:
⛔ The ledger issue itself is not edited by this PR: the checkable list exists first, and the correction is the director seat's act on that evidence. ⛔ No cause is asserted for the missing comments.
Placement — and the option deliberately left open
references/state-machine.mdis arguably the better home by readership (its own 出处 line says it is consulted at the moment of a transition, and a box exit is a transition). It is not used here, and the reason is measured rather than aesthetic: that file stands at 44 lines against a ceiling of 44, and so dodecision-analysis.md(46/46) andlanes/director.md(77/77). Inserting the rule there turnscheck:pm-skill-ratchetred, and raising a ceiling requires a maintainer ruling quoted in the raising PR — a decision on the human floor, which this seat does not make.⇒ Non-blocking, for the maintainer's discretion later: moving this rule to
references/state-machine.mdwould cost a +N ceiling raise on that file. Nothing here depends on it; the runbook's ruling-record section is a correct home, and it is where the mechanical flag for "thread contains a ruling record but the card still carriesneeds-user-decision" already lives.dispatch-runbook.mdabsorbs the six lines inside its existing budget: 271 lines against a ceiling of 278 (headroom 7 remains). No ratchet raise, no gate edit, no changeset (a.claude/**-only diff publishes nothing).Verification
Gate union derived on this branch's own head —
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack, no stale-tree warning — and every family run at head 6ddc73e:check:pm-skill-ratchet's own verdict line for the touched file: "references/dispatch-runbook.md is 271 lines (ceiling 278; headroom 7)". Two of those gates first reported PREREQUISITE NOT MET rather than a failure (@objectstack/formulaand@objectstack/lintunbuilt in a fresh worktree); both were built and re-run, and the greens above are the post-build readings. Every new line measures at most 120 bytes, wrapped by the ratchet's own exportedwrapLine.Out of scope, recorded not expanded
os-elonis no longer assignable on this repo — every seat's claim protocol silently loses its assignee half, mid-session #13561, Dangling-reference patrol: nothing detects an issue reference that fails to RESOLVE (as distinct from closed) — measured 6+ times, and a card's author is unreadable once it is unreachable #13634, The tenant-audit census issue 13178 is unreachable (404) while three open cards cite it as their input #13548) — no new card filed, no cause asserted.Generated by Claude Code
Generated by Claude Code