Skip to content

Commit f6ffd72

Browse files
objectstack-fleet[bot]os-steveclaude
authored
docs(pm-dispatch): the director seat takes no patrol routine in any form (#26661)
<!-- claude-projects-attribution: {"github_login":"os-steve"} --> _Requested by **Steve** · [project thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi9AJUWdwsTm21mKPdLivF1uR)_ Fixes #26609 Clause-②: no Metadata-protocol: none The director seat takes no patrol routine in any form, the project-seat form included: no patrol routine, no inbox-scan routine, no daily-digest routine. It wakes on the maintainer's summon and on the PR subscriptions it holds; the daily digest and the inbox scan stay duties run within a summon. Lane seats' hourly patrol and the triage seat's hourly round are untouched. Maintainer ruling (director seat's project thread, 2026-10-27T10:12Z): 「总监不需要巡查 routine,立卡更新 skills」. ## 维护者速读 - 改了什么:pm-dispatch 技能四个文件五行各同行改写,写明总监席不建任何巡查、收件箱扫描或每日摘要 routine,只靠你的召唤与它持有的 PR 订阅唤醒。 - 为什么改:你 10-27 裁定「总监不需要巡查 routine」,而旧文本仍让总监席首次坐席自建每日摘要与每小时收件箱扫描,并可与分诊共用一条 routine。 - 风险与回滚:只动四行协议文本,无代码、无发布面;回滚即 revert 本 PR。 - 先看:`references/project-forms.md` 31–32 行(规则主体),`SKILL.md` 71 行,`references/lanes/director.md` 23 行。 - 两分钟验证:`git grep -n "总监席加每日摘要\|两者可共用一个 routine\|小时轮可与收件箱扫描" .claude/` 应无输出;`pnpm check:pm-skill-ratchet` 绿。 - 需要你做的:无;Tier S(`.claude/**`)draft,等 skills 席位的契约复核记录 PASS 后由席位落地。 ## What changes Five same-line edits in four files under `.claude/skills/pm-dispatch/`. No file gains or loses a line (all four sit at line-ceiling headroom 0 in `check-skill-line-ratchet`), and every edited line stays under that gate's 120-byte line budget. | file:line | before | after | |---|---|---| | `SKILL.md:71` | project-seat wake = PR subscriptions + one self-built patrol routine per project, hourly by default | same with `(总监席除外)`; the `默认每小时` clause moved out to pay for the 17 added bytes (the original line was exactly 120 B). The hourly default survives at `project-forms.md:31` and `seat-post-protocol.md:66`. | | `references/project-forms.md:31–32` | first seating builds the routine; the director adds a daily digest and an hourly inbox scan; director and triage in one project may share one routine | first seating builds the routine, triage adds its hourly bare-card round, the director builds none; the director wakes only on the maintainer's summon and its PR subscriptions, digest and inbox scan run within a summon; pointer to `lanes/director.md`. | | `references/lanes/director.md:16` | the absent-maintainer line (「未回字 = 不在 = 停」) ended with 「例外 = `../project-forms.md` 例行」 | the exception is dropped (second commit, at the seat's call): with project-forms granting the director no routine it named an empty set, and the card's rule is no routine in any form. | | `references/lanes/director.md:23` | triage defaults to the director's project; the hourly round may share the inbox scan | the seat is summon-only in every form with no routine of any kind; the triage pointer stays. | | `references/seat-post-protocol.md:66` | project-seat patrol defaults to hourly; the protocol never copies the current value, the seat post is the current state | adds `(总监席无巡查)`; the trailing `座位贴即现状` folds into the same line's `协议 ⛔ 不复制当前值` (its home stays in every lane file's line 3, 「现值状态恒在座位贴」). | Two trims beyond the card's literal "add on the same line" were forced by the 120-byte budget: a line over it reds the gate, and wrapping would add a line into zero headroom. Each trimmed clause has a surviving home, named above. Not touched: `references/seat-lifecycle.md:69` still routes project-seat health indicators into the director seat's daily digest, which remains a duty run within a summon, so it stays true. ## Tests No test edits and no code; the gates below are the verification. ## Acceptance notes - `git grep -n "总监席加每日摘要\|两者可共用一个 routine\|小时轮可与收件箱扫描" .claude/` prints nothing (exit 1). - Line counts unchanged: SKILL.md 319, project-forms.md 54, director.md 88, seat-post-protocol.md 91. - Edited line widths: 118 B, 112 B and 118 B, 82 B and 113 B, 119 B. - No changeset: the diff is `.claude/**` only and publishes nothing (`skip-changeset` declared on the create). ## Verification (heads df62731 and 25cc350) - `pnpm check:pm-skill-ratchet`: exit 0 (self-test and gate). `pnpm check:pm-skill-id-lint`: exit 0, 104 files clean. - `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derived 20 commands at df62731; all 20 were run with their exit codes recorded, and `--ran` reconciled: 20 derived families accounted for, 20 run, 0 NOT-MEASURED, 0 UNRUN (every exit code 0). - At 25cc350 (the director.md:16 commit, one line in a file already in the set): `pnpm check:pm-skill-ratchet`, `pnpm check:pm-skill-id-lint` and `pnpm check:pm-governed-prose` exit 0, and `dispatch-gates --commands` derives the same 20 commands as at df62731. - `check:doc-formula-expressions` needed `@objectstack/formula` and `@objectstack/lint` built first (exit 3, prerequisite); rerun after the build: exit 0. --- _Generated by [Claude Code](https://claude.ai/code/session_01ADHkmReVogkwua4SJWZkFW)_ --------- Co-authored-by: os-steve <steve@objectstack.ai> Co-authored-by: Claude <noreply@anthropic.com>
1 parent ef48d09 commit f6ffd72

4 files changed

Lines changed: 6 additions & 6 deletions

File tree

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

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

‎.claude/skills/pm-dispatch/references/lanes/director.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
- 裁决记录同笔写明所选字母的工作量,读数取自卡面工作量列。
1414
- 划掉原 ⛔ 不派断言,走 `post-stamped --body --ack-through`;漏此笔 ⇒ 接卡者先读正文退决策箱。
1515
- 入口:维护者说处理决裁或处理 contract-review,或 `/pm-dispatch director`。
16-
- 未回字 = 不在 = 停,⛔ 无巡检、审计、快照、聊天、卡评论;例外 = `../project-forms.md` 例行。
16+
- 未回字 = 不在 = 停,⛔ 无巡检、审计、快照、聊天、卡评论。
1717
- 回来后先补跑审计与重挂复位一次,再只发一行「批 #N 待字;箱内另有 K 张新到未呈」。
1818
- 开场读一次服役档记入会话审计行,读法见 `../platform-readings.md`;⛔ 不因档位拒裁停三职。
1919
- 双射 carve-out:一张 `pm:seat` 座位贴,四段照旧;状态块逐场一行,各记己锚,⛔ 无占席人。
2020
- 不占 `domain:*` 车道,范围按职责标签跨车道跨仓;永不认领 backlog、永不写码。
2121
- 项目内卡线程报 `needs_decision` ⇒ 席位写四维分析加推荐,并入决裁批次呈维护者人工裁。
2222
- 维护者令「必须人工决裁」撤销「有把握自己决定」;⛔ 无裁决线程、代裁、置信门。
23-
- 分诊席默认与本席同项目召唤,小时轮可与收件箱扫描共用一轮;职责见 `triage.md`。
23+
- 本席任何形态都纯召唤制,⛔ 无任何 routine;分诊席默认同项目召唤,职责见 `triage.md`。
2424
- 应用仓召唤本席复核卡的业务理由首触,三出口同分诊;没把握 ⇒ 报该应用的总监(人)裁。
2525

2626
## 基本原则

‎.claude/skills/pm-dispatch/references/project-forms.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
- 项目聊天里的长句(「本账户坐 X;Y 的 PR 由本账户复审」)是等价写法。
2929
- 协调者每次开场把指令行与座位贴对照:逐席按 `seat-post-protocol.md` 坐席或接管。
3030
- 坐席即把本账号写进 🟢 行、每席开一条席位线程;⛔ 无花名册文件。
31-
- 首次坐席自建本项目的 routine:巡逻默认每小时;总监席加每日摘要与每小时收件箱扫描。
32-
- 分诊席加每小时裸卡轮;总监与分诊同在一个项目时两者可共用一个 routine。
31+
- 首次坐席自建本项目的 routine:巡逻默认每小时;分诊席加每小时裸卡轮;总监席不建。
32+
- 总监席只被维护者召唤与 PR 订阅唤醒;摘要与收件箱扫描在召唤内做;见 `lanes/director.md`。
3333
- 并发上限是维护者在该项目定的姿态;⛔ 不是协议常量,本文不写数字。
3434

3535
## 接管不等撞墙账号

‎.claude/skills/pm-dispatch/references/seat-post-protocol.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
- ⛔ 不取会话看起来起来了;零产出即技术性失败。
6464
- 回滚 = `delete_trigger` + 清空座位登记 + 失败注记。
6565
- 档位按职责挑,⛔ 不按重要性挑;Routine 席的档位与 cron 是维护者在 UI 上的可调项。
66-
- 项目席巡查默认每小时,放宽须有理由并写座位贴;协议 ⛔ 不复制当前值,座位贴即现状。
66+
- 项目席巡查默认每小时(总监席无巡查),放宽须有理由并写座位贴;协议 ⛔ 不复制当前值。
6767

6868
## Epic 车道收尾与僵尸回收
6969

0 commit comments

Comments
 (0)