Repository navigation
docs(pm-dispatch): the dispatch-gates freeze admits derivation-truth fixes - #24258
Conversation
…fixes instrument-discipline.md L10 is narrowed in place, no new line: the frozen dispatch-gates.mjs may also be touched when its derivation is untrue. Its output must match what CI actually runs, including deriving an existing gate from that gate's own scan roots; no new gate, derived row, ratchet, --tier mandate or constant. L12 records the narrowing ruling (comment 6243472660, the maintainer's "24171 B", 2026-10-18) beside ruling 208, numbers without a hash prefix. The file stays 12 lines. Claude-Session: https://claude.ai/code/session_01QBcLjVCmcWbZEk6qhYMib2 Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Face: governed rules text ( ① Derived judgments
② Semver level
③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
维护者速读改了什么:仪器纪律文件( 为什么改:执行您 2026-10-18 对 #24171 的裁决 B。两张 p2 卡(24037、24073)要让推导说真话,字面冻结把它们挡住;本周工具两次说了假话(一次 main 红一轮,一次本地 98/98 对账全绿而 CI 红)。 风险与代价(含回滚):只改一份给 agent 读的内部规则,不发布、不动代码与 CI。风险是「推导失真」被宽读成扩张工具的口子,句中四个「不新增」封住。该行 273 字节、比文件其它行长,因裁决要求不加新行;本文件不在行数棘轮内。回滚 = revert 本 PR 一个提交。 席位意见:ACCEPT。席内达档契约复核 PASS(6245800774,head 你要做的:无。若希望把「 席位核对Seat Implemented-by:
Generated by Claude Code |
Fixes #24171
Clause-②: no
Executes term 1 of ruling 6243472660 on the card (letter B, the maintainer's 「24171 B」, 2026-10-18).
.claude/skills/pm-dispatch/references/instrument-discipline.mdL10 is narrowed in place with no new line, and L12 records the narrowing ruling beside ruling 208. One file, +2/−2. The file has 12 lines before and after.What changed
L10, before and after:
L12, before and after:
How each clause of ruling term 1 maps onto the new L10:
--tiermandate or constant": 「⛔ 不新增门禁、推导行、棘轮、--tier强制档或常量」. "Row" is written 推导行 (a derived row, which is the sense of the ruling's terms 2 and 3), so nobody reads it as a text line. "--tiermandate" is written 强制档, meaning theMANDATORY_TIER_GLOB_ROWSrows indispatch-gates.Line width (measured)
CEILINGSrow inscripts/pm/check-skill-line-ratchet.mjs. The 120-byte max-line-length rule binds only files with a row, so it does not read this one.Verification at head 50b11c7
The derivation ran with no paths:
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack. Its change set came from merge base f5ef054 (1 path, +2/−2). It names 16 commands, the same list as the path-derived run at f5ef054. All 16 ran locally, and each exit code was 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:gitlink-declaredpnpm check:nul-bytespnpm check:pm-governed-mergespnpm check:pm-skill-id-lintpnpm check:refd-timer-probepnpm check:skill-frame-syncpnpm check:watch-hint-literalThe
--ranreconciliation used the exit-coded record and printed: "16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero — all 16 recorded an exit code and none of them is 3)".Outside the derivation,
pnpm check:pm-skill-ratchetexited 0. Its output names this file 0 times, which confirms the ratchet does not read it.Card premise re-check after the edit:
grep -c "冻结"gives 1 andgrep -c "工具位"gives 2. The second count was already 2 on origin/main f5ef054, because L3 also contains the word.Not run locally:
check:dev-prereqsandcheck:skill-frame-freshness, the two local-only families. The diff touches neitherpackages/specnor the copy of the decision frame in SKILL.md. Everything outside the 16 runs in CI.No changeset:
.claude/**publishes nothing, andskip-changesetis declared in the same call that creates this PR.Acceptance notes
CEILINGSrow. The dispatch order expectedpnpm check:pm-skill-ratchetin the derived list, but it is not there. It was run anyway and passed.git grep -n "冻结" -- .claude scripts/pmfinds 4 hits. The other 3 (compile-surfaces.md twice, lanes/devx.md once) use the word for something unrelated. No script or text quotes L10. The only file that names this one is reading-discipline.md L26, a pointer line that is still accurate. L12 avoids the word 冻结 so that the card's premise re-check still reads 1.CEILINGSenumeration covers "the pm-dispatch surface (SKILL.md, its references/, the per-lane job descriptions)". Its self-test also callscompile-surfaces.md"the last uncovered pm-dispatch references file". Today, though,references/instrument-discipline.mdandreferences/external-contributions.mdhave no row. The same header says absence is "a fact to check, not an oversight to infer", so this is prose drifting from the map, not a defect.--tier档位表与常量」, which means "do not touch". The ruling record's term 1 reads "No new ...--tiermandate or constant". As the dispatch order requires, this PR follows the ruling record word for word.维护者速读(草稿)
dispatch-gates.mjs冻结那一行原地改写,没有加行,文件仍是 12 行。冻结照旧。原来只有「它喂的 workflow 坏了」时可以动它,现在「推导失真」时也可以:工具说 CI 会跑什么,必须和 CI 实际跑的一致,包括按既有门禁自己的扫描根推导它。同一句明写:不准借此新增门禁、推导行、棘轮、--tier强制档或常量。出处行补记了本次收窄裁决(评论 6243472660,您的「24171 B」)。Generated by Claude Code