Repository navigation
docs(pm-skill,checklist-test): the --tier instruction lines carry --repo so a not-yet-written path derives a tier - #18463
Conversation
…epo so a not-yet-written path derives a tier dispatch-gates.mjs refuses a path absent from the tree unless --repo asserts whose tree it is (exit 3, NOT MEASURED). Two agent-facing instruction lines still spelled the bare `--tier <paths>` form, so a PM claiming a card whose file surface is not written yet got exit 3 and no tier from the prescribed spelling. Both lines now spell `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --tier <paths>`. pm-dispatch/SKILL.md sits at its 812-line ceiling with 120 bytes per line, so the claim-comment tier line is re-keyed in place: the 85-byte command plus 「引当次 … 输出」 and 「⛔ 不凭记忆」 fill the budget exactly, and the subject prefix 「Container & model 行的档位」 is dropped. checklist-test/SKILL.md re-wraps the same bullet across its existing two lines; no line is added to either file. Claude-Session: https://claude.ai/code/session_01HPfcjvF23QBoBj7P47DDxs Co-authored-by: Claude <noreply@anthropic.com>
维护者速读(终稿)skills 席, 改了什么 为什么改 风险与代价(含回滚) 席位意见 你要做的 Generated by Claude Code |
Fixes #18425
Clause-②: no
维护者速读(草稿)
改了什么:两处 agent 指令行里的命令拼写,从
node scripts/pm/dispatch-gates.mjs --tier PATHS改为node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --tier PATHS(占位符在文件里是尖括号拼写,本正文为避开 GitHub sanitizer 写作 PATHS)。只动这两行 —— checklist-test 侧是同一条 bullet 内的两行重新折行 —— 两个文件的行数不变:pm-dispatch SKILL.md 812 / 812,checklist-test SKILL.md 234 / 238。为什么改:
dispatch-gates.mjs对树上不存在的路径,在没有--repo申报时以 exit 3(NOT MEASURED)拒绝 —— 这是 PR #18409 的有意设计,不是本卡的缺陷。PM 认领一张文件面尚未写出的卡(新 reference、新脚本)时照抄这两行,得到 exit 3、拿不到档位。改后的拼写照抄即 exit 0(下方 A7 读数)。风险与代价(含回滚):纯文案,不发布任何东西,不改脚本。代价一处:pm-dispatch SKILL.md 该行 120 B 预算容不下 +34 B —— 命令 85 B + 「引当次 … 输出」15 B + 「⛔ 不凭记忆」16 B + bullet 前缀与两个空格 4 B = 恰 120 B,所以主语「Container & model 行的档位」与逗号被删;保留「档位」的最短写法是 125 B,超预算。派发裁决禁止动该文件其它任何一行,所以「别处删一行换一行」不在本 PR 的选项内。回滚 = revert 这一个 commit。
席位意见:(留空)
你要做的(一个动作):接受去掉主语的写法则给一个 authorized APPROVED;若要保留「档位」,请裁定允许在 SKILL.md 别处删一行来换这条 bullet 的第二行,本 PR 再补一轮。
What changed — each line before / after, in bytes
Byte counts are of the file's spelling, where the placeholder is written in angle brackets (7 B); this body writes it
PATHSbecause the GitHub body sanitizer eats angle-bracket fragments even inside backticks..claude/skills/pm-dispatch/SKILL.md:477 — file 812 / 812 (ceiling),MAX_LINE_BYTES120, no line added:node scripts/pm/dispatch-gates.mjs --tier PATHS输出,⛔ 不凭记忆。」node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --tier PATHS输出⛔ 不凭记忆」.claude/skills/checklist-test/SKILL.md:98–:99 — file 234 / 238, the same bullet re-wrapped across its existing two lines, no line added, the floor / default / ceiling parenthetical untouched:node scripts/pm/dispatch-gates.mjs --tier PATHS的输出、⛔ 不凭记忆(floor」node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --tier PATHS的输出、」Judgment call on the SKILL.md line (for the reviewer)
The dispatch named three load-bearing pieces — the exact command spelling with
--repo objectstack-ai/objectstack --tier PATHS, 「引当次 … 输出」 (quote THIS run's output) and 「⛔ 不凭记忆」 — and a 120 B gate. Those three plus the bullet prefix and two separating spaces measure exactly 120 B, so nothing else fits on the line: the subject prefix 「Container & model 行的档位」 and the comma are gone. The dispatch's own shortest candidate (「- 档位引当次…输出,⛔ 不凭记忆。」) measures 130 B; the shortest wording that keeps 「档位」 at all (「- 档位引当次…输出⛔不凭记忆」) measures 125 B. The bullet still sits in the claim-comment list and--tiernames the tier itself; the claim template line (:808, untouched) keeps 「档位,引当次 --tier 输出」 as the subject. Typography note: a CJK glyph directly before ⛔ (「输出⛔ 不凭记忆」) has zero precedent onorigin/mainSKILL.md; the exact phrase 「⛔ 不凭记忆」 is preserved so a grep for it still hits this line.Self-verification of the instruction (dispatch A7)
The command was extracted verbatim from between the backticks of SKILL.md :477 (
sed, not retyped), the placeholder substituted withpackages/this-repo-has-no-such-package/src/index.ts(absent from the tree,lsconfirms), and run from the worktree; exit codes captured before any pipe:origin/main:477 → exit 3 (NOT MEASURED); output names the two--reporeadings.Gates
Derived from the merge base with
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands(17 commands, merge basee915c190), each run in the foreground with the exit code redirected before any pipe, then reconciled with--ranat7a7f3c22: 「Run reconciliation — 17 derived, 17 run, 0 NOT-MEASURED, 0 UNRUN.」 (exit 0).pnpm check:pm-skill-ratchet(rerun on the committed head7a7f3c22)pnpm check:pm-skill-id-lintpnpm check:skill-frame-syncpnpm check:pm-governed-prosepnpm check:pm-half-statespnpm check:nul-bytespnpm --filter @objectstack/lint run check:doc-formula-expressions@objectstack/formulaand@objectstack/lintunbuilt); built both under the verify lock (VERDICT command-exit 0, 171 s), rerun → 0pnpm check:agent-test-spelling·pnpm check:doc-authoring·pnpm check:driver-memory-census·pnpm check:pm-governed-merges·pnpm check:refd-timer-probe·pnpm check:watch-hint-literalnode scripts/check-closing-keyword-parity.mjs(and--self-test) ·node scripts/check-comment-mask-corpus.mjs·node scripts/pm/check-governed-queue-guard.mjs --self-testNo package is touched, so there is no ① dependency-closure build and no ② package test; the control-character self-scan (
grep -naPover the two files) is clean.Changeset
None; label
skip-changeset. AGENTS.md Post-Task Checklist step 3: 「that label is for a diff that publishes nothing from any released package」..claude/**is in no package'sfiles[]and is os-dev's declared fast lane for exactly this reason; nothing released moves.Acceptance notes
.claude/skills/**): draft PR; the dev never flips ready, never arms auto-merge, never requests review. Landing waits for an authorized APPROVED and the owning seat.scripts/pm/dispatch-gates.mjsis deliberately untouched — its exit-3 refusal is the design landed in PR fix(pm): dispatch-gates refuses an absent path unless --repo asserts whose tree it is #18409, not the defect.引当次 --tier 输出— not a command spelling);references/contract-review.md:17;references/lanes/skills.md:20;references/platform-readings.md:391 「dispatch-gates.mjs --tier PATH逐路径现推」 — a mechanism reference withoutnode scripts/pm/, so not a verbatim-copyable command; noted, not filed. Bearer: whichever skills-seat PR next editsplatform-readings.md.Generated by Claude Code