Repository navigation
docs(skills): runbook reading three carries the declared population and 同席号 - #19304
Merged
os-steve merged 1 commit intoSep 20, 2026
Merged
Conversation
…nd 同席号 Clause-②: no `references/dispatch-runbook.md` :61 paraphrased SKILL.md :80's reading three over `pm:dispatched` alone and without 同席号, so a seat following the runbook misses a live `Claim:` sitting on a `pm:queue` card of its own seat number and never self-retires — two writers on one seat. :61 now restates the contract's own population and clause. Paid in-file: the 「不在座位贴线程」 tail is retired as the negative restatement of :60 (「尾页配方只覆盖座位贴的两个读数」), which states the same fact from the other direction. 114 B -> 120 B (cap 120), 241 / 241 lines, net 0. Claude-Session: https://claude.ai/code/session_017ETYWqMQD4qMtZzAGovWNi Co-authored-by: Claude <noreply@anthropic.com>
Collaborator
Author
Contract reviewServed-tier: ① Derived judgments
② Semver levelNone — ③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
os-steve
marked this pull request as ready for review
September 20, 2026 11:01
os-steve
enabled auto-merge
September 20, 2026 11:01
os-steve
deleted the
claude/issue-18957-runbook-reading-three-population
branch
September 20, 2026 11:29
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 free
to 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 #18957
Clause-②: no
One line of
.claude/skills/pm-dispatch/references/dispatch-runbook.md, rewritten in place. NoSKILL.mdedit: the contract is right, only the paraphrase moves.The change, with byte counts
The contract :61 paraphrases,
.claude/skills/pm-dispatch/SKILL.md:80 (verbatim, untranslated):references/dispatch-runbook.md:61, before — 114 B:after — 120 B (cap 120):
Both missing clauses now stand in the contract's own words: the population
本车道 pm:dispatched ∪ pm:queue, and 同席号. The 同席号 spelling isSKILL.md:82's (「首张带同席号Claim:卡」) rather than :80's 「同席号的Claim:评论」 — the same word, and not a third one; :80's full form measures 130 B and does not fit.What paid for it: a retirement inside the same block
Net 0 lines: 241 / 241, ceiling 241, headroom 0 — the file's line count never moves, and no line was bought.
The 「不在座位贴线程」 tail is retired as the negative restatement of :60, which is unchanged and reads:
:60 already states that the tail-page recipe covers only the seat post's two readings — the same fact, from the other direction. What :61 keeps is the half :60 does not carry: where reading three DOES come from (车道盘点). Nothing else in the file is touched; #18964 queues behind this card on the same file.
Why nothing smaller fits
Measured on the landed bytes, all four candidates against the 120-byte cap:
Claim:评论」Folding the retired clause into :60 instead was measured and refused: :60 is 106 B, so it carries 14 B of headroom against the 22 B the clause plus its separator needs, and buying the room would mean rewriting a line PR #18950 landed three days ago.
Predecessor read first
a85b5dc(PR #18950) rewrote this same block on 2026-09-18. It touched :60 and :63 and deliberately left :61 alone, recording its headroom at 6 B. Neither of its two lines is undone here; :61 was not one of them.Landing tier
node scripts/pm/check-governed-merges.mjs --test .claude/skills/pm-dispatch/references/dispatch-runbook.mdreads Tier S (席内达档复核落地) —.claude/**×1, the agent instruction tree. The PR stays DRAFT; the owning seat lands it once the thread carries a## Contract reviewrecord for the current head. Size: 2 changed lines, far under the 5,000-line human-merge threshold.Gates — head
cec2518node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackwith no paths derived 16 families from the tree atcec2518; every one was run and every exit code captured before any pipe.node scripts/check-closing-keyword-parity.mjsnode scripts/check-closing-keyword-parity.mjs --self-testnode scripts/check-comment-mask-corpus.mjsnode scripts/pm/check-harness-current.mjs --self-testpnpm --filter @objectstack/lint run check:doc-formula-expressionspnpm check:agent-test-spellingpnpm check:cross-package-test-inputspnpm check:doc-authoringpnpm check:driver-memory-censuspnpm check:nul-bytespnpm check:pm-governed-mergespnpm check:pm-skill-id-lintpnpm check:pm-skill-ratchetpnpm check:refd-timer-probepnpm check:skill-frame-syncpnpm check:watch-hint-literalReconciliation,
dispatch-gates.mjs --repo objectstack-ai/objectstack --ran:check:doc-formula-expressionsfirst returned exit 3 — PREREQUISITE NOT MET, an unbuilt@objectstack/formulaand@objectstack/lint, nothing measured. It was re-run at exit 0 afterpnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lintunderscripts/pm/os-verify-lock.sh(VERDICT command-exit 0).Two families the derivation flagged rather than cleared were also run:
pnpm check:pm-settings-deny-roster— exit 0; the derivation marks its roster as living under.claude, which one of the changed paths is in, so its silence is evidence in neither direction.node scripts/pm/check-governed-merges.mjs --test— the tier read above.The ratchet's own verdict lines, from
pnpm check:pm-skill-ratchet:and its 120-byte rule, read back through the gate's own
lengthVerdicton the edited tree:Lint: a measured narrowing, not a skipped run
pnpm lint(eslint . --no-inline-config) is CI's repo-wide run. Narrowed here to the one changed path, with the three readings that make the narrowing a measurement:eslint.config.mjsmatches**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}or a subtree of it. No block names.md.--format json—pnpm exec eslint --no-inline-config --format json .claude/skills/pm-dispatch/references/dispatch-runbook.mdexits 0 over 1 file, 0 errors, and the single message isFile ignored because no matching configuration was supplied.Acceptance notes
references/core-rules.md:18 (「开轮互斥四读数:收班简报、开轮标记、本车道同席号最新他会话认领与最新关闭卡认领。」) is the nearest sibling paraphrase and was checked: it NAMES the four readings and spells no population at all, so it is not a narrower restatement and needs no matching edit. Noted, not filed; no queued card carriescore-rules.md..claude/**publishes nothing from any released package. Labelskip-changeset.Generated by Claude Code