docs(pm-dispatch): the batch #62 skill folds — file-surface batch independence, priority in the selection order, the readings-ledger ceiling exception, the suite-event head re-read, the director carve-out - #16486
Conversation
…e selection order, the readings-ledger ceiling exception, the suite-event head re-read, the director carve-out Five rules-only folds under unchanged line pins (SKILL.md 811, core-rules.md 150, seat-post-protocol.md 91); every addition is paid by a same-file fold that deletes a superseded, dead or duplicated line. The ratchet map's director-charter comment no longer claims a quotation the charter file stopped carrying. Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox Co-authored-by: Claude <noreply@anthropic.com>
…batim One more rules-only line in the dispatch-brief rules, paid by folding the two brief lines that state one rule (the dev reads the whole card and self-checks its completeness), as the core-rules digest already holds them. SKILL.md stays at its pin. Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox Co-authored-by: Claude <noreply@anthropic.com>
Verdict: ACCEPT (governed — to the approvers)Implemented-by: os-dev flight Z (fable), branch What was checked
Rulings
LandingGoverned surface: reviewers Generated by Claude Code |
维护者速读(skills 席,2026-09-07T04:1xZ)事情:导演席批 #62 / #65 的五条裁决(您已「同意」)折进 SKILL.md、core-rules、seat-post-protocol 三个受管文件,+28/−25,行数钉子 811 / 150 / 91 一个不动:① 账本 为什么:五条都是您批过的裁决,之前只存在于评论里;写进规则文本后席位不再各读各的。 风险:低——只改规则文本,门禁(棘轮、frame-sync、clause-② 载体、id-lint)全绿。devx 席的 PR #16271 与本 PR 在「候选与批次」区域重叠,它已是 要您做什么:合并或退回一个决定。审批人 os-zhuang / hotlong 已被请求复审。 席位意见:建议合并。它同时解锁下一批:第六批读数增量(8 张停车卡)可按新例外直接出手。 Generated by Claude Code |
Fixes #16386
Fixes #15803
Fixes #16352
Fixes #16372
Fixes #16343
Refs #15647
Five governed cards of decision batch #62 (plus one rider from batch #65), folded into one rules-only PR on
.claude/skills/pm-dispatch/. Every line pin is unchanged —SKILL.md811/811,references/core-rules.md150/150,references/seat-post-protocol.md91/91 — and every added line is paid by a same-file fold that deletes a superseded, dead or duplicated line (never a re-wrap of two distinct rules). No issue numbers or comment ids in the corpus text; the rulings are cited here.Rulings executed (quoted, not paraphrased — the maintainer's word on every batch #62 item is 「同意」):
platform-readings.mdraises the ceiling to the landed line count without a per-increment decision card, provided the seat's acceptance comment on the PR shows: every candidate fact verified by the seat, deduplicated against the ledger (candidates / landed / already-present / declined counts), one line per fact, no re-wrapping counted as currency. The raise is recorded inruledRaisesciting this standing ruling. Every other file's ratchet keeps the human floor unchanged."priority:p1/p2/p3— an older p3 outranks a newer p2 inside 「其余」; write priority into 取卡全序 #16352 — the card's rule to land: 「取卡全序:priority:p0插队 >pm:blocking>target:板上项 >priority:p1>p2>p3> 无级;同级内 typeBug先,再按卡龄。」 (no separate grading comment carries an order; the body's "rule to land" is the ruled text).check_suite.completedevent — the event can name a stale SHA (#15803 section B2) #16372 — the card: "before trusting any suite or check event, re-read the PR object and take the head from it; a check reading is bound to that head, never to the event's SHA."domain:*seats; seat-post-protocol.md gains a status-word form for a multi-summon seat …, and the ratchet map's comment quoting the old authorization sentence is refreshed."platform-readings.mdwith docs(pm-skill): reconcile platform-readings.md lines 26–28 (merge-tree "does not apply the driver ⇒ under-reports") with the measured 349–350 (driver applied when registered; the hazard is a deferred content judgement) #16457, so this PR onlyRefsthat card.Folds, per card (old line → new line → the fold that paid)
Line numbers are
origin/mainat245c6a23cd(the flight's base).1 · #16386 乙 — the human-floor exception (
SKILL.md)Added after 391 (the third human-floor line):
"Every other file's floor is unchanged" is carried by 唯一例外 (the one exception) rather than by a third line.
platform-readings.mdis the bare spelling SKILL.md already uses at 621.Paid by two deletions:
- \premise_still_valid: false` + 无 PR 是合法且常常有价值的交付。— a duplicate of 776 (报告契约:- `premise_still_valid: false` + `pr: null` 是合法终报,当再分诊输入复核,永不当失败派发。`), which is the fuller statement; 597 keeps the dev-corrects-PM half.- 分诊席跑普通直连会话、默认判断档。/- 代裁与契约复审等达档职责改派显式传 \model` 的契约复审档子代理。) → one line- 分诊席跑普通直连会话、默认判断档;达档职责改派显式传 `model` 的契约复审档子代理。` — one rule, exactly as core-rules.md line 18 already digests the pair into one line.core-rules.mdline 97 (the digest's 「门禁削弱」 category) is left as is: the exception is a one-file 细则 and the digest's category still holds; no ≤120-byte spelling of 97 fits the exception, and the ruling scopes the write to "SKILL.md's human-floor row". Flagged in the report as an open question for the seat.2 · #15803 §A (c) — batch independence by file surface (
SKILL.md,core-rules.md)- 并行度以 \batch` 封顶,同批按构造文件面不相交;`priority:p0` 插队可超 `batch`。→- 并行度以 `batch` 封顶;同批独立性按文件面不相交判,⛔ 不按包;`priority:p0` 可超 `batch`。`- 批次独立性:一批内任两单不得可能碰同一个包/registry/barrel/spec schema;拿不准就串行。→ deleted (the package criterion is superseded by 434; 「拿不准就串行」 moves to the ① discipline line).- 维护者明示豁免同文件串行时,替代纪律四条:① 文件面申报到区域级。→- 并行纪律四条(常规,非豁免):① 认领申报文件面到区域级,拿不准就串行。(445, the ②③④ line, unchanged).- 豁免不外溢。→ dead under the ruling (the exemption IS the rule); its line carries the CI sentence:- 文件面不相交只保证文本可合并;跨文件语义耦合由队列 CI 逮住,⛔ 不读作不可能冲突。- 文件面对跨域例外单必填、普通单建议;分支名必须带 issue 号。→- 文件面申报到区域级,每单必填;分支名必须带 issue 号。- 一批内任两单不得碰同一个包、注册表、barrel 或 spec schema;同文件的单跨轮硬串行。→- 同批独立性按文件面不相交判,⛔ 不按包;同文件硬串行,冲突交合并队列仲裁 ⛔ 不手排。(the two merge-mainsteps stay in SKILL.md 445; the digest carries the criterion, the serial rule and the arbiter).Net: +1 (CI sentence) −1 (435) in SKILL.md; core-rules in place.
3 · #16352 — priority in the selection order (
SKILL.md,core-rules.md)- 取卡全序:\priority:p0` 插队 > `pm:blocking` > `target:` 板上项 > type `Bug` > 其余;同级按卡龄。→- 取卡全序:`priority:p0` > `pm:blocking` > `target:` 板上项 > p1 > p2 > p3 > 无级;同级先 `Bug` 再卡龄。(119 bytes; the ruled sentence verbatim is 153 bytes, so 插队 — already stated at 434 and in the state table'spriority:p0row — and the wordtype` are the only drops).- 全序每级取既有信号现读/现算,零逐卡维护;优先是排序不是豁免。→… ;无级卡轮报记分诊缺口。(the card's "ungraded is named in the round report as a triage gap"; 120 bytes exactly).- 取卡全序:插队卡、有下游依赖者的卡、发版板上项、缺陷卡、其余,同级按卡龄。→- 取卡全序:插队卡、有下游依赖者的卡、板上项、p1、p2、p3、无级;同级缺陷卡先再卡龄。Line-neutral, no fold needed.
references/dispatch-runbook.mdline 7 (the level rationale, which names p0 / blocking / bug / age and states no order) is outside this flight's declared file surface and is untouched — noted in the report.4 · #16372 — re-read the PR head before trusting a suite event (
SKILL.md)Added after 659 (the subscription line in 入队与落地):
Paid by folding 656 + 657 (
- 合并后工作流不在任何 PR 的检查清单上,读 PR 检查的规则对它全盲。/- 该类仓的部署工作流按独立检查类登记,与 PR 检查分开读。) — one fact and its own restatement — into- 合并后工作流不在 PR 检查清单上,读 PR 检查的规则对它全盲;按独立检查类登记分开读。5 · #16343 — the director carve-out (
SKILL.md,core-rules.md,seat-post-protocol.md, ratchet map comment)- 总监席多场并行、无在任者:读数一、二与自退对它不成立;\domain:*` 席互斥照旧。` — paid by the 75+76 fold above (the four SKILL.md inserts are paid by 435, 551, 75+76 and 656+657 as a set; 446 is in-place).- 未收班活动任一未满一个轮次即自退;有收班简报可直接坐席,坐席后先写开轮标记。→- 未收班活动任一未满一轮即自退,总监席除外;有收班简报即坐席,坐席后先写开轮标记。(the digest of the same rule, changed in step per SKILL.md 优先级 line 44).- 多场席(总监):\🟢` 后写召唤账号,状态块逐场一行(会话 ID + 锚);无在任者、无接管。— paid by folding 8 + 10 (- 标题即状态板,固定格式 …/- `label:pm:seat` 的列表页因此就是全舰队状态板。) into- 标题即状态板,固定格式 `[PM seat] <座位名> — <状态>`;`label:pm:seat` 列表页即舰队状态板。The status-word form deliberately reuses the existing🟢 〈github-login〉word with the summoning account, rather than adding a fifth word:check-half-statesH5 reads any🟢 WORDas a login that must be an assignee (onlyRoutineis special-cased) and reports any other glyph asunrecognized status word, so a new word would create a phantom H5 finding on the director post; and the live post (#12708,🟢 os-zhuang(第 15 场 …)`) already carries exactly this form with the per-summon detail in the body. Line 9's vocabulary and line 38's 「标题词表不扩」 therefore stay as written. (Angle brackets are spelled full-width 〈〉 in this body; the file uses ASCII.)scripts/pm/check-skill-line-ratchet.mjsdirector row comment: it claimed the charter file carried the 2026-08-27 authorization sentence "verbatim in the file" and called the seat "owning the contract-review chain"; the charter now carries the ruling as a rule line (授权面 = 人工定期召唤 …) and holds the after-audit, not the chain. The comment keeps the maintainer's quotation, says the file carries it as a rule line, and names the four duties and the concurrent-summons shape. Comment only; no ceiling moves.32e57e5abe, merged into this branch); no map comment says "eight", so nothing else to refresh.6 · #15647 §2 item 1 (rider) — quote, never paraphrase (
SKILL.md)Added after 526 (the 「派发词只带增量」 pointer) in the dispatch-brief rules:
Paid by folding 524 + 525 (
- 派发词 ⛔ 默认不整段粘贴 issue 正文:让 dev 自己读 GitHub 全文与全部评论。/- 派发词必须要求 dev 自查正文完整性。) — one rule, as core-rules.md line 114 already digests them — into- 派发词 ⛔ 默认不整段粘贴 issue 正文:让 dev 自己读全文与全部评论并自查正文完整性。Serial
mergeable_state: dirty) edits 候选与批次 and 入口与角色 too and owes the re-fold; this branch took no proof against that head. Lines of this PR inside its hunk regions: the director carve-out after 84 (its hunk 78–88), the 乙 lines after 391 (its hunk 385–391 context), 434/435 and 444–446 (its hunks 432–437 and 441–449). Whichever merges second re-folds.mainas32e57e5abewhile this flight was in review;origin/main(a9d25d842f) is merged in (93907021e7), andgit merge-tree --write-tree 2c9c1a5282 HEADhad been proved clean twice before that (identical trees both runs). The director-row comment sits ~1,100 lines above T's self-test region.Verification (final head
93907021e7)node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(change set derived from git: 4 paths vs merge basea9d25d842) → 38 commands, each run with its exit captured to its own log before any pipe: 38/38 exit 0 on93907021e7. The same 38 ran green on1c069352bd; on95765ceea6the doc-formula gate first answered exit 3 PREREQUISITE NOT MET (@objectstack/formula/@objectstack/lintunbuilt — NOT MEASURED, not a finding) and went green afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lintunder the verify lock. Reconciliation verdict line: 「✓ dispatch-gates --ran: 38 derived famil(ies) accounted for — 38 run, 0 NOT-MEASURED.」check-skill-line-ratchet.mjs --self-test「✓ check-skill-line-ratchet self-test: 157 cases pass.」 (T's directory-derived lane roster); live run exit 0 — 「SKILL.md is 811 lines (ceiling 811; headroom 0)」 · 「core-rules.md is 150 lines (ceiling 150; headroom 0)」 · 「seat-post-protocol.md is 91 lines (ceiling 91; headroom 0)」; every edited line ≤ 120 bytes (widest new line: 120 B, SKILL.md 456).check:skill-frame-syncexit 0 (binding sentence present in all 2 copies, 75 markdown files scanned for undeclared copies) ·check-clause2-carriers.mjs --self-test「190 cases pass」 exit 0 ·check:pm-skill-id-lint「26 file(s) clean」 exit 0 ·check:pm-governed-proseexit 0 ·check:nul-bytesexit 0, plus an unpiped control-byte grep over the four files (grep exit 1 = zero hits).check-governed-merges.mjs --teston the four paths: exit 3 — 「⛔ GOVERNED — a human merge is the review record for this PR」, 3 of 4 paths on the register (.claude/**×3; the ratchet script is not on it).pnpm lint(eslint . --no-inline-config) throughbash scripts/pm/os-verify-lock.sh -c 'pnpm lint', slotissue-16386, one acquisition per run: 「VERDICT command-exit 0 · held the lock 137s」 on93907021e7(exit 0 on1c069352bdand95765ceea6as well; shared-box seconds, not idle-box figures).git merge-tree --write-tree 2c9c1a5282 HEADclean twice on1c069352bd(exit 0, identical tree4aebcdfb9b…both runs) before T landed; after mergingorigin/main,git merge-tree --write-tree origin/main HEADexit 0 atorigin/main00d54940eb..claude/**,scripts/pm/**): no changeset;skip-changesetis applied through the additive labels endpoint with a comparison read-back (recorded in the report comment).维护者速读(草稿)
事情:五张已裁的 skills 卡合成一个 PR,全是规则行改写:批次独立性改按「文件面」判、取卡全序读 p1/p2/p3、平台读数账本抬上限的唯一例外写进人工地板、信 suite 事件前先重读 PR head、总监席不入开轮互斥;外加一条「派发词逐字引用卡片断言」。三份文件行数钉死不变,每加一行删一行。
为什么:五条都是您在决裁批 #62 / #65 答「同意」的裁决,本 PR 只是把裁决落到文本。
风险:文字面改动,零代码;与 devx 席在途 PR #16271 同段落相交,后合者重折。
要您做什么:受管面,人工合并;席位意见另附。
Generated by Claude Code