Skip to content

Commit a2665ce

Browse files
os-steveclaude
andcommitted
docs(pm-dispatch): land the maintainer's filing/merging directive — items 1 2 3 4 5 8 — as in-place charter deltas
Filing threshold inverted (three classes qualified: reachable today, named producer; observation/dormant/zero-pull findings not filed, no digest, no quota); devs do not file — report entries carry `class: a|b|c` + evidence or `carrier:`, the seat disposes each entry in one ACCEPT line; triage merges at first grading (same file + same mechanism), same family is linked and batched, in-flight never merged, execution seats raise `pm:retriage` with the reading; same-assignee duplicates closed by the holding seat; an escalated card names which half it carries; a ruled card re-enters the decision box only with `Prior rulings on this card:`; the director presents the first batch after the first five same-family cards, class-1 screening per batch, cheap-scan ordering, verifiable criterion. Net 0 lines in every ratcheted file: each new rule paid by retiring a second pointer to the same reference file or a line restated verbatim in a sibling. Every line at or under 120 bytes. state-machine.md untouched (no `needs-user-decision` section; the intake duty's home is SKILL.md). Claude-Session: https://claude.ai/code/session_017ETYWqMQD4qMtZzAGovWNi Co-authored-by: Claude <noreply@anthropic.com>
1 parent 23f1de0 commit a2665ce

4 files changed

Lines changed: 24 additions & 24 deletions

File tree

‎.claude/agents/os-dev.md‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ model: opus
4242
- (a) 可复现缺陷(复现或失败探针具名);(b) 违背已声明契约(引契约原文,带 `Seam:` 行);
4343
- `Seam: spec:<键或符号> → runtime:<调用点> | renderer:<组件>`,无消费者写 `consumer: none`。
4444
- (c) 让 AI 写出运行时拒收或静默丢弃的元数据的陷阱;三类内 ⛔ 不因看着小揣着不报。
45-
- (a) 分错误与不完整,不分文档与代码:示例照抄即失败是 (a),漏列成员不是。
46-
- (c) 元数据 = 由写它的人以外的人存储并再作者化的键:React prop 不是,存储视图配置是。
45+
- (a) 须今天可达,分错误与不完整,不分文档与代码:示例照抄即失败是 (a),漏列成员不是。
46+
- (c) 元数据 = 他人存储并再作者化的键,须具名生产者:React prop 不是,存储视图配置是。
4747
- 把作者引向运行时会兑现却让事情更糟的元数据的警告不在 (c) 内,记为边界不扩类。
48-
- 其余 ⛔ 不立卡:观察、死代码、未演练漂移、抛光、风格、文档 nit、命名。
49-
- 它们进 PR `## Acceptance notes`,报告 `out_of_scope_findings` 记 `noted, not filed: …`,席位 ACCEPT 读。
50-
- 写 `noted, not filed` 前先答哪一个 PR 或人会碰到这个文件;答不出就写明「承接者:无」。
48+
- 其余 ⛔ 不立卡:观察、休眠、零拉动、死代码、未演练漂移、抛光、风格、nit、命名。
49+
- 它们进 PR `## Acceptance notes`;报告 `out_of_scope_findings` 逐条带 `class: a|b|c`+证据或 `carrier:`。
50+
- `carrier:` = 将碰该文件的 PR 或人,答不出写「承接者:无」;皆无 ⇒ 只进 Acceptance notes。
5151
- 立卡者不查重,只在卡面附 3–5 个查重词;查重归分诊席,⛔ 不扫 open issues、不拉板。
5252
- GitHub 写一律走 REST 代理(`curl` 带 `GITHUB_TOKEN`);归属 = 文本里的 session ID,非 `user.login`。
5353
- 写预算四笔:`git push`、一次 `POST /pulls`(draft)、`POST /issues/{n}/labels`、`os-dev-report` 评论。
@@ -57,12 +57,12 @@ model: opus
5757
- 通道对照表见 `.claude/skills/pm-dispatch/references/rest-channel.md`,其 ✓ 按座位实测。
5858
- 报告记 `api_writes`(次数 + 端点清单)与 `mcp_calls`;越界真写了的照列注明缘由,⛔ 不漏记。
5959
- PM 的去重读数随派发词下发,当既有事实用,只复核其后增量,⛔ 不重跑。
60-
- 归挂不散落:落在已排队 issue 完成范围内的发现,立成它的 sub-issue(自动进派发池)。
61-
- 只是依赖它的,独立立单带一行 `Blocked-by:`;立在修复落地的仓,带回链。
60+
- 归挂不散落:落在已排队 issue 范围内的发现,报告点名为它的 sub-issue(自动进派发池)。
61+
- 只是依赖它的,报告点名独立单带 `Blocked-by:` 行;立在修复落地的仓,带回链;席位代立。
6262
- 有界就地修豁免,四条全立才就地修:① 与本卡同一缺陷类;② 机械修且形态已被钉死。
6363
- ③ 该文件无其他认领持有;④ 同一批门禁族,不新增验证面。
6464
- 就地修欠两样:认领申报的文件面同轮增补;PR 正文点名该修复并附证据。
65-
- 优先扩展一个守卫关掉整个类;任一条不成立 ⇒ 回默认:无 assignee 立单、列出、不碰。
65+
- 优先扩展一个守卫关掉整个类;任一条不成立 ⇒ 回默认:报告列出交席位立单、不碰。
6666
- 本轮改动令其变假或触碰的已发布缺陷必修;其余立卡并记明已发布面,PR 照常落地。
6767
4. ⛔ 永不推 `main`、合并任何 PR、在代码 PR 里改 `content/docs/releases/`;改错另开 docs-only PR。
6868
- force-push 按落地仓 AGENTS.md:objectui/cloud 绝对禁;objectstack §3 五条全立才 `--force-with-lease`。
@@ -373,7 +373,7 @@ model: opus
373373
"open_questions": [
374374
{ "question": "…", "options": ["A …", "B …"], "recommendation": "A, because …" }
375375
],
376-
"out_of_scope_findings": ["to file (3 classes, dedupe words): one-liner", "noted, not filed: one-liner"]
376+
"out_of_scope_findings": ["class: a|b|c · evidence · dedupe words", "carrier: PR or person · noted, not filed"]
377377
}
378378
```
379379

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,6 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
318318
- 选层按 fire 时刻,⛔ 不用计数器;简报写明本轮跑的层。
319319
- 从不更新的卡不入窗;老化欠账归半状态巡查不归小时轮。
320320
- 每条枚举比对返回数与 `totalCount`,不等 ⇒ 报 `sweep INCOMPLETE` 点名缺口,⛔ 永不报干净。
321-
- `since` 读法与成本对价见 `references/dispatch-runbook.md`。
322321
- Backlog sweep 是常设职责,每 fire 扫任一析取命中的卡。
323322
- 析取 ①:全裸(无 `pm:*`、无 `needs-user-decision`、无 `domain:*`)。
324323
- 析取 ②:有 `pm:queue` 无 `domain:*`(仅多车道仓);析取 ③:有 `domain:*` 无 pm-state。
@@ -349,12 +348,14 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
349348
- (a) 的分界是不完整 vs 错误,不是文档 vs 代码:示例照抄即失败是 (a),漏列成员不是。
350349
- (c) 元数据 = 由写它的人以外的人存储并再作者化的键:React prop 不是,存储的视图配置是。
351350
- 把作者引向运行时会兑现却让事情更糟的元数据的警告不在 (c) 内;记为边界,⛔ 不扩类。
351+
- (a) 须今天可达,(c) 须具名生产者;观察、休眠、零拉动 ⛔ 不立卡、不进汇总卡、无配额。
352352
- 判「进 Acceptance notes」前先问:哪一个 PR 会碰到这个文件?说得出具体 PR 或人 ⇒ 写进去。
353353
- ⛔ 说不出(`.changeset/*`、无人在改的文档页、生成物、已扫完的批次)⇒ 兜底不成立。
354354
- 仍然关,但关闭理由必须写明「承接者:无」。
355355
- 先修复:正文被 sanitizer 截断的卡不可派发,评论修复指令后跳过。
356356
- 停摆指令判据必须比其它分类更硬(双读取),事后证伪同处公开作废。
357-
- 决策箱勤务:落卡入箱时校验/补全四棱块与速读;存量卡低频子轮回填,语言按不变量。
357+
- 决策箱勤务:入箱校验/补全四棱块、速读与 `Prior rulings on this card:` 行;存量卡低频回填。
358+
- 线程有 `Ruling:`/RULED 的卡再入箱,该行逐 id 各一句变化;缺行 ⇒ 拒入,`pm:retriage` 回立卡者。
358359
- `type`(Bug/Feature/Task)是分诊固定产出,分诊席唯一权威生产;立单者可预填,分诊校正。
359360
- 判据:违背已声明契约 ⇒ `Bug`,扩大接受集/公开面越出已声明 ⇒ `Feature`,其余 ⇒ `Task`。
360361
- `Bug` 无具名落点或复现路径不入 `pm:queue`(标记补复现)。
@@ -364,8 +365,9 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
364365
- 父单已有子结构的:父单队列标签即可,分诊逐个展开路由、补 `Blocked-by:` 排序。
365366
- 每张留一条英文审计评论(`Triage: lands in …; rationale: …`),可选带 `Size/model suggestion:` 行。
366367
- 查重/shadow 检查先按文件/机制查本仓与姊妹仓 open 卡(含 `pm:dispatched`),再跟引用与关键词。
367-
- 同文件同缺陷 = 同一发现,不分车道:证据搬到先卡,后卡关 `duplicate_of`,⛔ 不并排派发。
368-
- 其余在飞 ⇒ `Blocked-by:` 不派;open 未认领 ⇒ 先并成一个派发入口;已完成 ⇒ 卡可能过期。
368+
- 同文件同机制 = 同一发现,不分车道,首触定级即并:证据搬先卡,后卡关 `duplicate_of`。
369+
- 同族异缺陷 ⛔ 不并:互链排同批;在飞(assignee/open PR)永不并,`Blocked-by:` 不派;完工查过期。
370+
- 执行席 ⛔ 不并卡,疑重复挂 `pm:retriage` 写明哪两张同文件同机制;同 assignee 者自关后卡。
369371
- 生产者在哪是常设分诊问题:declared ≠ enforced 形状的卡先问谁在写这个字段。
370372
- 派发前按生产者的答案改卡的范围与域标签。
371373
- 发现分诊轮:`finding` 恒 = 待首次定级、定级即离标;hold 重验只在 `Restart-when:` 命中时发生。
@@ -453,6 +455,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
453455
- 派发后一单前用该回答重读它的选项与成本,⛔ 不沿用立单时那份。
454456
- 在飞卡衍生三分:不修它验收过不过;in-scope ⇒ 父卡 sub-issue,认领席自有、优先级继承。
455457
- 该 sub-issue 带父卡域与优先级直接派发,唯一绕过分诊;sweep 事后扫,重复关 `duplicate`。
458+
- 自在飞派发升级出的卡首行一句:本卡承哪一半、父卡留哪一半;缺此行不入队不入箱。
456459
- 阻塞项无主 ⇒ 被挡席认领做掉,不限大小;在该卡走完整认领、尊重其热文件串行队。
457460
- 阻塞项在飞 ⇒ 等:`pm:blocking` 在其车道排最前、等待者写该卡;p0/p1 优先级沿链传递。
458461
- 取卡前置 = `docs/NORTH-STAR.md`「优先级」第 3 条:产品仓开放 P0/P1 每次取卡现读。
@@ -557,7 +560,6 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
557560
- 一次性云卡用 `create_session`,⛔ 不用 create_trigger+fire;trigger 流只留给定时/重复型。
558561
- 云会话 `SendMessage` not-reachable 是设计非故障,⛔ 不复测。
559562
- 接手中断的 dev:先试 SendMessage 复活,不可用才走接手协议,⛔ 不重跑原派发词。
560-
- 云卡四课与接手协议增量见 `references/dispatch-runbook.md`。
561563

562564
### 收集
563565

@@ -647,14 +649,12 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
647649
- 挂标后复核完成前短暂停靠;⛔ 不前瞻预挂。
648650
- 契约复核的适用面、载体纪律、资格与归属、降档保险丝见 `references/contract-review.md`。
649651
- 碰生成物的 PR 入队前先同步 + 整体重生成:四步序 `bash scripts/pm/os-regen-merge.sh`。
650-
- os-regen 的陷阱与锚点禁令见 landing-operations A。
651652
- 跟到 MERGED 为止,入队后的看护归车道 PM 的落地窗口:每轮同时读队列分支与 `origin/main`。
652653
- 默认分支 push 即触发对外部署的仓,只在验证层存在时才合并;无验证层 ⛔ 不合并。
653654
- 验证层 = 部署以 CI 为闸、发布后探测线上面、失败自动回滚并立卡。
654655
- 该类仓的落地判据是已发布且探测通过,⛔ 不是 MERGED;跟到发布为止。
655656
- 合并后工作流不在 PR 检查清单上,读 PR 检查的规则对它全盲;按独立检查类登记分开读。
656657
- 人闸不是验证层的替代:答不了会不会坏的人闸只买延迟,⛔ 不以人闸代替探测。
657-
- 首次入队 flip 定点、MERGED 两读数、关键 PR 订阅与退订/归档细则见 landing-operations B。
658658
- 信任 suite/check 事件前先重读 PR 对象取 head:检查读数绑定该 head,⛔ 不绑事件带的 SHA。
659659
- 落地记账:座位贴落地清单即账本,逐轮即时记;确需全仓核对时首选 `head:claude/` 精确过滤。
660660
- 红/踢出处置在同一落地窗口内做:机器输入是 merge-queue triage workflow 的分诊评论。
@@ -768,15 +768,15 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
768768
- 每场召唤把带席内 ACCEPT 的受管草稿呈为一批 ≤5 行决裁;批准与合并仍是维护者的点击。
769769
- 总监席档位由维护者按项目人工定,每场记入摘要台账;⛔ 无档位硬门、无免档整理态。
770770
- 总监席是唯一裁决者:决策箱、代裁与一类自裁只出自本席,⛔ 无子代理无自述。
771-
- 总监席不占 `domain:*`,永不认领 backlog、永不写码;章程见 `references/lanes/director.md`。
772771

773772
## 报告契约
774773

775774
- 终报 JSON 的权威形状住 `.claude/agents/os-dev.md` 终报消息节,⛔ 本文不抄第二份。
776775
- `premise_still_valid: false` + `pr: null` 是合法终报,当再分诊输入复核,永不当失败派发。
777776
- `status: needs_decision` 时 `open_questions` 必须非空。
778-
- `out_of_scope_findings` 只列三类立卡与 `noted, not filed`;立卡附查重词、归挂、立在修复仓。
779-
- 席位在 ACCEPT 读 PR `## Acceptance notes`,实属三类的由席位补立;三类外已立的卡关 not planned。
777+
- `out_of_scope_findings` 每条 `class: a|b|c`+证据,或 `carrier:`(承接者);皆无 ⇒ Acceptance notes。
778+
- dev 不立卡;ACCEPT 逐条一行 `filed #N`/`Acceptance notes`/`dropped — 因`;三类由席位立在修复仓。
779+
- 席位读 PR `## Acceptance notes`,实属三类的补立、归挂、附查重词;三类外已立卡关 not planned。
780780
- PM 核验它们存在,并把同轮并行报告互相对读:两个 dev 同一小时审相邻代码会立出孪生卡。
781781

782782
## 机械守卫索引

‎.claude/skills/pm-dispatch/references/core-rules.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
- 裸卡超过十五张则下一轮改域分批集中模式,每批不超过五张同族卡。
8585
- 有落点或可复现的缺陷、范围明确的工具修复与实现未被裁错的说明书脱节进 `pm:queue`。
8686
- 设计卡、契约形状提案、碰迁移形状或删已发布能力的进决策箱;无出处说明书脱节不进。
87-
- 立卡限三类:可复现缺陷、契约违背、元数据陷阱;截断卡先发修复指令再跳过,不可派发。
87+
- 立卡限三类:今日可达可复现缺陷、契约违背、具名生产者陷阱;截断卡发修复指令不派。
8888
- 三类边界:缺陷问错不问缺、文档同判;元数据须他人再作者化;引向更糟的警告在类外。
8989
- 类型字段由分诊席唯一生产,违背已声明契约是缺陷、扩出已声明是功能、其余是任务。
9090
- 缺陷卡无具名落点或复现路径不入队列 ⛔ 不回填存量;每张卡留一条英文审计评论。
@@ -148,4 +148,4 @@
148148
## 报告契约
149149
- 终报 JSON 的权威形状住 `.claude/agents/os-dev.md`,⛔ 本协议不另存第二份。
150150
- 前提被证伪且无 PR 是合法终报,当再分诊输入复核,⛔ 永不当失败派发。
151-
- needs_decision 必带 open_questions;范围外发现三类立卡、其余 noted not filed,核验对读同轮报告。
151+
- needs_decision 必带 open_questions;范围外逐条 `class:`/`carrier:`,dev 不立卡,席位处置、对读同轮。

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@
3737

3838
## 职责二:决裁勤务
3939

40-
- 第一步:逐卡过一类自裁三判据;全立者录裁转工作态、只入收班追认表,⛔ 不呈批。
40+
- 首批读完前 ≤5 张同族卡即呈;一类自裁按批过,⛔ 不先扫全箱,自裁者由下一候选补位。
41+
- 取下五张只用便宜扫描:标签、assignee、PR 引用、速读首行;全文只读手上五张。
42+
- 判据:开场标记→首批 ≤ 读五张;全立者录裁转工作态、只入收班追认表,⛔ 不呈批。
4143
- 决策收件箱 `needs-user-decision` 跨仓勤务,按基本原则批呈;⛔ 不复活已退役的汇总 issue。
42-
- 一行回批即全链执行,裁后四件原子执行不再请示。
4344
- 一次只开一批:维护者对批 N 回字(一字即可)后,新到才合成批 N+1;续批至清零才收工。
4445
- 受管草稿批:两仓 `is:pr is:open is:draft label:needs-user-decision` 对照等人合清单,差集点名。
4546
- 有席内 ACCEPT 者呈一批 ≤5 行,写法见 `../decision-analysis.md`;四件缺一者列缺口不呈。
@@ -48,7 +49,6 @@
4849
- 以协议为准:消费面对齐协议 ⇒ 一类自裁,协议没有的能力删,⛔ 不立卡问协议。
4950
- 协议是否正确由本席按①读协议原文与主流平台自判,有误即裁改动而非立卡提问。
5051
- ADR 条目被协议取代 ⇒ 条目下加带日期注记点名 spec 符号,⛔ 不改写原文、不沉默。
51-
- 代裁通道的置信门与人工地板见 SKILL.md 分诊座位职责,⛔ 不另抄。
5252

5353
## 职责三:维护者动作台账
5454

0 commit comments

Comments
 (0)