Skip to content

Commit 2c523d0

Browse files
docs(pm-dispatch): seat liveness, release and the main-repo release board name the director seat, and lane findings take triage's first touch (#25658)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} --> _Requested by **Elon** · [project thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9DMMchS2pMx7VafJmdzGaxFv)_ Fixes #25490 Clause-②: no Metadata-protocol: none ## 维护者速读(草稿) - **改了什么**:分诊瘦身(#25422)和「所有卡都分诊」(#25552)之后,有五行规则文字还把已经移走的职责写在分诊席名下:座位贴活性巡查、在飞卡敲门与释放、主仓发版板,这三样现归总监席摘要;skills 车道的 finding 也不再由本车道自分诊。五行就地改正,另把 `check-half-states.mjs` 提示语里引的「四仓全量对账」改成 runbook 现在的「两仓全量对账」。 - **为什么改**:文字和现行规则不一致,读到旧行的席位会去做不属于自己的事。 - **风险与代价(含回滚)**:纯文字,行数不变,无上限变动;一次 revert 可回。 - **你要做的(一个动作)**:无。按您 14:14Z 的长期授权,复核通过、CI 全绿由席位落地。 ## What changed | File | Before | After | |:--|:--|:--| | `references/seat-post-protocol.md` L28 | 「常设半边是分诊轮的座位贴活性巡查」 | 「常设半边是总监席摘要的座位贴活性巡查」 (`dispatch-runbook.md` L41, `lanes/director.md` L74) | | `references/seat-post-protocol.md` L80 | 「生产者:主仓归分诊座位」 | 「生产者:主仓归总监席」 (`lanes/director.md` 职责四 「发版板 `target:<major>` 主仓归本席」) | | `references/seat-lifecycle.md` L38 | 「活性由分诊轮判定」 | 「活性归总监席摘要」 (`triage-duties.md` L5 「活性复查同归」) | | `references/seat-lifecycle.md` L39 | 「由分诊一笔中继释放」 | 「由总监席一笔中继释放」 | | `references/seat-lifecycle.md` L47 | 「三类以 `finding` 入 skills 车道由该席分诊」 | 「三类以 `finding` 入 skills 车道,首触归分诊席」 (#25552: 每张卡欠一次分诊首触,车道 ⛔ 不自分诊) | | `scripts/pm/check-half-states.mjs` (3 spots) | 「每日层(当日首 fire)= 四仓全量对账 …」 | 「… 两仓全量对账 …」, the runbook's current text (`dispatch-runbook.md` L69) | ## Gates On this head: `pnpm check:pm-skill-ratchet` ✓, `pnpm check:pm-skill-id-lint` ✓, `pnpm check:skill-frame-sync` ✓, `pnpm check:skill-frame-freshness` ✓, `pnpm check:pm-governed-prose` ✓, `node scripts/pm/check-half-states.mjs --self-test` ✓ (4941 cases), `node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD` ✓. Widest edited line 118 bytes. No package moves: `skip-changeset`. ## Acceptance notes - Scope as re-read in comment 6377494099: `seat-lifecycle.md` L76 and `cross-repo-coordination.md` L7 are moot after #25552 and are untouched. - **Not done here:** the `Premise:` line in the `SKILL.md` claim template. `SKILL.md` is at its 318-line ceiling and no adjacent pair merges under 120 bytes, so the line needs a ruled raise or a payable line; the format is named at `dispatch-runbook.md` L154 meanwhile. - **Not done here:** the same prescription in `check-half-states.mjs` also quotes 「选层按 fire 时刻,⛔ 不用计数器;简报写明本轮跑的层」 under a 〈分诊座位职责〉 heading; `triage-duties.md` L10 now words it 「选层按 fire 时刻 ⛔ 不用计数器,简报写明层」 and has no such heading. Outside the card's quoted surface; left for the next edit of that prescription. - Governed surface `.claude/**` (Tier S); `scripts/pm/check-half-states.mjs` is off the register. - Opened through the fleet-write relay `pr_create`; every later write goes through the relay too. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01REMuzhz6MWRjg8uohedMnM Co-authored-by: Claude <noreply@anthropic.com>
1 parent baae6ed commit 2c523d0

3 files changed

Lines changed: 8 additions & 8 deletions

File tree

‎.claude/skills/pm-dispatch/references/seat-lifecycle.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@
3535
- 读侧只读贴正文 + 晚于正文最后编辑的评论;刷新前读完评论、回执未读敲门,再刷。
3636
- 热文件串行队是正文具名段:区域写不清就只能整文件串行。
3737
- 座位贴每仓登记合并是否对外发布及其验证层;登记缺失视为未验证。
38-
- 无心跳,活性由分诊轮判定:逾一天无自有产出 ⇒ 座位贴当场降级,静默认领同钟先敲门。
39-
- 敲门后满 `RECLAIM_AFTER_HOURS` 无答复即由分诊一笔中继释放,细则 `triage-duties.md`。
38+
- 无心跳,活性归总监席摘要:逾一天无自有产出 ⇒ 座位贴当场降级,静默认领同钟先敲门。
39+
- 敲门后满 `RECLAIM_AFTER_HOURS` 无答复即由总监席一笔中继释放,细则 `triage-duties.md`。
4040
- ⛔ 永不从贴的 `updated_at` 或标题推死活;活性只认在任者自己的产出。
4141
- 竞态三招:动手前重 fetch 正文、审计评论时间戳先到先得、写后回读。
4242
- 收班 = 状态 flush + 在飞显式安置,不是在飞归零;派发口径失效,简报 ⛔ 不列作继承裁决。
4343
- 离任留守只写简报点名的项,⛔ 不读队列、不新派发、不碰未点名卡。
4444
- 换班报告默认零建议,只收三类:原则错/缺、可机械化项、平台事实变化。
4545
- 原则错/缺 → skills 席专题;可机械化项 → 门禁/脚本卡,⛔ 不是散文。
4646
- 平台事实变化 → references 事实表改一行。
47-
- 三类以 `finding` 入 skills 车道由该席分诊;三类之外默认关 not planned。
47+
- 三类以 `finding` 入 skills 车道,首触归分诊席;三类之外默认关 not planned。
4848
- 接管/移交 = 改正文 + 审计评论(只作审计);收尾清单等细则见 `references/seat-post-protocol.md`。
4949
- epic 委托不入座位贴体系;新 `packages/spec` 工作恒归 spec 座位。
5050

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
- 活性惰性半边在接管冲突时评估一次:Routine 座位查调度器 `last_fired` 与 `next_run`。
2727
- 会话座位查最近一条产出评论的时间戳;回收 = 改正文 + 审计评论。
28-
- 常设半边是分诊轮的座位贴活性巡查,同一判据,细则见 `dispatch-runbook.md`。
28+
- 常设半边是总监席摘要的座位贴活性巡查,同一判据,细则见 `dispatch-runbook.md`。
2929
- 可跑读法:本车道 `pm:dispatched` 卡按 `updated_at` 降序一搜,或读最近一条认领评论。
3030
- 写侧刷新三时刻:派发、收班、暂停或交接前;时间戳恒取自 `scripts/pm/post-stamped.mjs`。
3131
- 刷新前回执敲门;`--body` 拦截:评论晚于末次戳 ⇒ `--ack-through=ID`;空座欠账无卡号 ⇒ 拒写。
@@ -77,7 +77,7 @@
7777

7878
## 发版板运维(`target:<major>`)
7979

80-
- 生产者:主仓归分诊座位,objectui 与 cloud 归各自整仓座位。
80+
- 生产者:主仓归总监席,objectui 与 cloud 归各自整仓座位。
8181
- 其余座位不打不摘,误判走上报;⛔ 三个生产者各扫各的 backlog。
8282
- 消费者:维护者的发版清单 = 三仓三条查询 `label:target:<major> is:open`。
8383
- 等价的 org 级搜索仅是备用写法;归零 = 可发版指三张板都空,单看主仓归零不是。

‎scripts/pm/check-half-states.mjs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15233,7 +15233,7 @@ export function h64ExposureClause(counts = {}, cap = H64_LOGIN_ROSTER_CAP) {
1523315233
// inventory two-tiered and closes the rule with a forcing function: 「选层按
1523415234
// fire 时刻,⛔ 不用计数器;简报写明本轮跑的层」. The SELECTOR itself is pinned
1523515235
// one hop away in `.claude/skills/pm-dispatch/references/dispatch-runbook.md`
15236-
// 〈分诊两级盘点细则〉 — 「每日层(当日首 fire)= 四仓全量对账 + 归集本就日频的
15236+
// 〈分诊两级盘点细则〉 — 「每日层(当日首 fire)= 两仓全量对账 + 归集本就日频的
1523715237
// 职责」, the hourly tier reading a `since` window — and neither text is
1523815238
// ambiguous. What had no reader is the LAST clause. The filing card's grep for
1523915239
// it across `scripts/pm/` and `.claude/skills/pm-dispatch/`, excluding the two
@@ -15307,7 +15307,7 @@ export function h64ExposureClause(counts = {}, cap = H64_LOGIN_ROSTER_CAP) {
1530715307
//
1530815308
// · the KEY is closed — 「层」 plus a colon (ASCII or full-width), nothing else;
1530915309
// · the WORD SET is closed — 「小时层」/「每日层」, the runbook's own two names
15310-
// (〈分诊两级盘点细则〉「每日层(当日首 fire)= 四仓全量对账 …」). Any other
15310+
// (〈分诊两级盘点细则〉「每日层(当日首 fire)= 两仓全量对账 …」). Any other
1531115311
// word after the key is `unknown-tier`, exactly as `Tier: full` is;
1531215312
// · it must sit in a DECLARATION SLOT, never mid-sentence: the start of a
1531315313
// line, or immediately after a 「·」 field separator, which is the marker
@@ -15656,7 +15656,7 @@ export function h65TierlessRoundArtefactRow(hit, comment, total = 1) {
1565615656
`${H65_TIER_EXAMPLES_CN} at the start of a line or as a 「·」-delimited field of the ` +
1565715657
'headline — with the selector ' +
1565815658
'read from `.claude/skills/pm-dispatch/references/dispatch-runbook.md` 〈分诊两级盘点细则〉 ' +
15659-
'(「每日层(当日首 fire)= 四仓全量对账 + 归集本就日频的职责」). ⛔ This row does NOT judge ' +
15659+
'(「每日层(当日首 fire)= 两仓全量对账 + 归集本就日频的职责」). ⛔ This row does NOT judge ' +
1566015660
'whether the tier chosen was the RIGHT one — that reading is the seat\'s and is pinned in the ' +
1566115661
'runbook; this one only refuses the silence. Report-only: patrol input, never a gate verdict.' +
1566215662
more

0 commit comments

Comments
 (0)