Skip to content

Commit e735b79

Browse files
docs(pm-dispatch): one patrol routine per seat, not per project (#28739)
<!-- claude-projects-attribution: {"github_login":"marchtian"} --> _Requested by **田騏** · [project thread](https://claude.ai/code/project/chan_01VmuUhXU9SSUzqJYyXSmYSi?thread=cmsg_01VmuUhXU9SSUzqJYyXSmYSiHXKqxUqDPJKZyNHP7BoqTb)_ Fixes #28699 Clause-②: no Metadata-protocol: none ## 维护者速读 - 改了什么:pm-dispatch `SKILL.md` 第 72 行把项目席巡查 routine 的单位从「每项目一个」改成「每席一个」,其余一字不动,净行数 0。 - 为什么改:`SKILL.md` 与 `seat-lifecycle.md`、`project-forms.md` 自相矛盾;一个项目坐多条车道时,实际做法是每个席位线程各绑一个巡查,因为每席是各自的会话。 - 风险与回滚:只改规则文字,无代码;不改的风险是读者照旧句只给项目建一个巡查,其它席位醒不来。回滚 = revert 本 commit。 - 先看:`.claude/skills/pm-dispatch/SKILL.md` 第 72 行(唯一改动)。 - 两分钟验证:`git grep -n 每项目一个 -- .claude/skills` 预期零命中,`pnpm check:pm-skill-ratchet` 预期绿。 - 需要你做的:用授权账号批准本 PR(受管面上的规则改动),随后由席位落地。 ## What changes `.claude/skills/pm-dispatch/SKILL.md` line 72, the project-seat wake line, now names the seat as the unit of the self-bound patrol routine: 「每项目一个」 becomes 「每席一个」. The director-seat exception and the rest of the line are unchanged. `SKILL.md` stays at 319 lines (net 0). This matches the references on `main` after #28687: `references/seat-lifecycle.md` (taking a seat creates the routine and records `Patrol:` on that seat's stub) and `references/project-forms.md` (「坐席即建巡查 routine」, one seat thread per seat). ## Tests No code changed, so there are no unit tests. Verification is the gate families derived from the diff (below). ## Acceptance notes - Wording: the card asks for "one routine per seat thread". 「每席位线程一个」 would put the line at 124 bytes, over the 120-byte cap that `pnpm check:pm-skill-ratchet` enforces. 「每席一个」 is 115 bytes and reads unambiguously, because the line before it defines a project seat as a project thread (「会话是车队项目的线程」). It also matches `project-forms.md`'s 「每席开一条席位线程」. - No other file restates this unit: `git grep -n 每项目一个` exits 1 on this head (control: `git grep -n 自建自绑巡查` finds line 72). - Governed surface (`.claude/**`): this PR stays draft and waits for its tier's record. ## Verification Head `ba301e3691`. Gate list from `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` (20 families, 1 path, +1/-1). Exit codes were captured before any pipe. <details><summary>Derived gates: 20/20 exit 0</summary> ``` 0 node scripts/check-closing-keyword-parity.mjs 0 node scripts/check-closing-keyword-parity.mjs --self-test 0 node scripts/check-comment-mask-corpus.mjs 0 node scripts/pm/check-governed-queue-guard.mjs --self-test 0 node scripts/pm/check-harness-current.mjs --self-test 0 pnpm --filter @objectstack/lint run check:doc-formula-expressions (first run exit 3 PREREQUISITE NOT MET; rerun after building formula+lint) 0 pnpm check:agent-test-spelling 0 pnpm check:cross-package-test-inputs 0 pnpm check:doc-authoring 0 pnpm check:driver-memory-census 0 pnpm check:gitlink-declared 0 pnpm check:nul-bytes 0 pnpm check:pm-expected-skips 0 pnpm check:pm-governed-merges 0 pnpm check:pm-governed-prose 0 pnpm check:pm-skill-id-lint 0 pnpm check:pm-skill-ratchet 0 pnpm check:refd-timer-probe 0 pnpm check:skill-frame-sync 0 pnpm check:watch-hint-literal ``` `dispatch-gates --ran`: "20 derived famil(ies) accounted for — 20 run, 0 NOT-MEASURED (a DERIVED zero — all 20 recorded an exit code and none of them is 3)". </details> <details><summary>Named gate verdict lines</summary> ``` ✓ check-governed-prose: 2 instruction surface(s) name all 13 registered governed surfaces that govern objectstack ... and claim no others. ✓ check-skill-id-lint: 106 file(s) clean (pattern /#[0-9]{3,}/g). ✓ check-skill-line-ratchet: declared cross-file moves: 3, total ceilings down 494 lines. ✓ check-skill-frame-sync: the one declared copy of the decision frame is internally coherent (.claude/skills/pm-dispatch/SKILL.md; ...) ``` </details> Session: `session_017ihL2g7RyXa8ErM6GAkHyc` (seat `domain:skills#2`). --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
1 parent db357f6 commit e735b79

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎.claude/skills/pm-dispatch/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
6969
- 批 = 一个上下文里读完的 ≤5 张同族卡,是质量单位,⛔ 不是预算。
7070
- 班 = 一个会话的任期,只以交接或惰性回收结束。
7171
- 席位两形:Routine 席与项目席(会话是车队项目的线程);细则见 `references/seat-lifecycle.md`。
72-
- 项目席唤醒 = PR 订阅 + 每项目一个自建自绑巡查 routine(总监席除外);⛔ 无 `send_later` 链。
72+
- 项目席唤醒 = PR 订阅 + 每席一个自建自绑巡查 routine(总监席除外);⛔ 无 `send_later` 链。
7373
- 探针先行:fire 的第一动作是一次最便宜的车道盘点查询,⛔ 在它之前不读任何长文本。
7474
- 队列空 + 无在飞 + 无待复核 + 决策箱无新答复 ⇒ 自退。
7575
- 分诊席与车道席常驻,断粮即换账号重开该席与信箱;分诊席默认判断档;裁决归总监席。

0 commit comments

Comments
 (0)