From 46b7bd6a464a21406556ff297350cb0410fb5381 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 17 Sep 2026 22:05:34 +0000 Subject: [PATCH 1/2] docs(pm): extend the reading discipline from a ZERO to a load-bearing NON-ZERO The discipline makes exactly one mechanical demand of an instrument (core-rules :45) and it guards a zero only. Eight measured instances in one shift -- six on the card, two more the triage seat measured on itself -- were readings that were NON-ZERO, or zero-and-true, and every one of them had already reached a card, a handover brief or a dispatch where another agent acted on it. New row, beside the zero rule it generalises: a reading another agent will act on owes its UNIT and an answer to "what would have made it NOT this value"; a reading handed to a dev as a lead is marked as a lead, not an answer. Scoped by construction -- a seat's own use-and-discard probe owes nothing, which is the boundary the card and the triage both drew. Paid in file, ratchet 151 -> 151: row :51 is retired. Its third clause ("triage dedupe zero needs a control word") repeated :45's general zero rule; its two live clauses merge into :80 (the filer/triage division of labour) and :111 (reading a dead dev before reclaiming a claim). Claude-Session: https://claude.ai/code/session_01Gqi43smmqjJ5sUrhfoPeKu Co-authored-by: Claude --- .claude/skills/pm-dispatch/references/core-rules.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/core-rules.md b/.claude/skills/pm-dispatch/references/core-rules.md index 1f8832eb8c1..de1117229f6 100644 --- a/.claude/skills/pm-dispatch/references/core-rules.md +++ b/.claude/skills/pm-dispatch/references/core-rules.md @@ -43,12 +43,12 @@ - 判据取命令输出,⛔ 不取 API 字段字面值、不取本地工作树、不取看着相邻的日志。 - 核验 main 用 fetch 后的 `origin/main`,⛔ 不用共享检出树;仓不可达 ⛔ 不当查过且干净。 - 零命中须配同主体必中词,否则该零作废;同仪器的控制词双零是仪器坏,⛔ 不读作缺席。 +- 他人据以行动的读数须带单位并答什么本来会让它不是这个值;递 dev 的恒标线索非答案。 - 板面、树与队列读数一律自带 UTC 取数时刻,无时间戳的读数按未取处理。 - 失效修法按序取:先删掉容许出错的构造,再让正确形态成为唯一拼写,最后才加检查。 - 自设定时器的文本以先重读状态开头,只写关键判据,⛔ 不写可直接执行的祈使句。 - PM 写进 GitHub 的文本 ⛔ 不用尖括号占位符,携带易损片段的评论发出后回读。 - 放行认承载门禁族的 job 结论 ⛔ 不认聚合读数,advisory 红着进 main 即止血并立单。 -- 子代理自死不等于维护者中止,需显式信号;立卡者只附查重词,分诊查重零命中须控制词。 - 默认读序 git、payload、REST、MCP;REST 可达性逐会话探一次;派发前读配额不够就减批。 ## 多仓协调 - 依赖方向固定:objectstack 提供唯一契约,objectui 与 cloud 消费它。 @@ -77,7 +77,7 @@ - 换班报告默认零建议,只收原则错缺、可机械化项与平台事实变化三类。 - 交接按收尾清单走完;强制接管 ⛔ 不取在飞卡,由原认领者跟完;归档自派会话不可移交。 ## 分诊座位职责 -- 执行席 ⛔ 跳过分诊动作,读到标签当既成事实。 +- 执行席 ⛔ 跳过分诊动作,读到标签当既成事实;立卡者不查重、只附查重词。 - 两级盘点是小时轮读增量加每日全量对账,枚举须比对总数、不等即报不完整并点名缺口。 - sweep 扫全裸卡、队列卡缺域或缺定级、域卡缺 pm 状态,排除跟踪、停放与协议载体卡。 - 首触定级跑到清空 ⛔ 无总量预算、未跑完断点续跑;清得空最新优先,否则最老优先。 @@ -108,7 +108,7 @@ - 取卡全序:插队卡、有下游依赖者的卡、板上项、p1、p2、p3、无级;同级缺陷卡先再卡龄。 - 认领原子对:一次标签写入完成认领与状态对调,随后留 `Claim:` 开头的评论并重读全线程。 - 更早的他会话认领即让行并交出已诊断的一切;认领逾一天且无合并证据即疑死。 -- 回收前先救工作树,有提交的活分支 ⛔ 永不回收。 +- dev 自死不等于维护者中止,需显式信号;回收前先救工作树,有提交的活分支 ⛔ 永不回收。 - 一单一次派发,档位逐卡显式传参;语义面卡恒契约复审档施工,契约卡达档复核归派发席。 - 派发词 ⛔ 不整段粘贴 issue 正文,只带增量,并要求子代理自查正文完整性。 - 派发词分三区:裁决不可重裁、机制假设须实测、建议路线可换,⛔ 不把假设写成裁决。 From e81a7ed60c5d6f77c9f8265138744e7490c0cdc4 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 17 Sep 2026 22:35:05 +0000 Subject: [PATCH 2/2] docs(pm): SKILL.md carries the twin of the non-zero reading rule Round 1 landed the rule in references/core-rules.md :46 only. The protocol's own text makes core-rules a subset of SKILL.md (:43) and requires a rule changed in one to change in the other in the same PR (:44), so the digest was stating a rule the skill did not. This commit adds the twin to the reading-discipline block, directly under the zero rule it generalises (:163-:164), byte-identical to core-rules :46: a reading another agent will act on carries its unit and answers what would have made it not this value; a reading handed to a dev as a lead is marked a lead, never an answer. A second line under it carries the two clauses round 1's one-row budget cut: the negative boundary (a probe a seat uses and discards owes nothing) and the discharge form of the counter-question (the answer is a verbatim artefact or a named counterexample). It is a refinement of the twin, so it has no core-rules counterpart to owe. Paid in file, ratchet 812 -> 812, no re-wrap, no rule deleted: - the claim-section line "file surface declared to area level, every dispatch; branch name carries the issue number" is retired -- the first clause is the parallel-discipline line verbatim, and the claim template's fixed File surface / Branch lines already spell the other two; - the collect-section line "a replay is not re-accepted; a notification's arrival does not read as alive nor its absence as dead" is retired -- the replay rule above it already ends on the replay being logged, and the probe line already states that a completion notification is unreliable and its absence proves nothing. Neither retired line has a counterpart in core-rules, so the subset relation holds in both directions after this commit. Claude-Session: https://claude.ai/code/session_01Gqi43smmqjJ5sUrhfoPeKu Co-authored-by: Claude --- .claude/skills/pm-dispatch/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/skills/pm-dispatch/SKILL.md b/.claude/skills/pm-dispatch/SKILL.md index 5112f2589c7..4d715da09d4 100644 --- a/.claude/skills/pm-dispatch/SKILL.md +++ b/.claude/skills/pm-dispatch/SKILL.md @@ -162,6 +162,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - ⛔ 不用共享检出的工作树核验 main,它的 HEAD 由别的 agent 摆布。 - 零命中须配同主体必中词,否则该零作废;同主体 = 同语料/路径形/包界/引法/失效形态。 - 同仪器的控制词双零是仪器坏,⛔ 不读作缺席:换法重画再报;哑火仪器与干净结果同值。 +- 他人据以行动的读数须带单位并答什么本来会让它不是这个值;递 dev 的恒标线索非答案。 +- ⛔ 自用即弃的探针不欠此税;「不是这个值」的答案取逐字工件或具名反例。 - 仓不可达 ⛔ 不当查过了干净:在 issue 上贴出给对应座位的现成命令,等读数回贴再派。 - 板面/树/队列读数恒带 UTC 取数时刻;认领、派发令、复核、轮报与座位贴皆同。 - 时间戳形如 `YYYY-MM-DDThh:mmZ`,树读数另带 ref 或 tip;无时间戳的读数按未取处理。 @@ -477,7 +479,6 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 引当次 `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --tier ` 输出⛔ 不凭记忆 - 末行 Serial constraints cleared 是落在评论里的读数,同包在飞单不点名等于没查。 - 本卡 pin 断言兄弟卡在改的行为 ⇒ 派发令注明,并在用例内预登记翻转触发词,⛔ 不修绿。 -- 文件面申报到区域级,每单必填;分支名必须带 issue 号。 - 家族派发的折叠认领:共享分支按链首卡命名;每张成员卡各留认领评论并点名该分支。 - 折叠的一 PR 正文多行 `Fixes #` 每成员一行、逐卡 commit;完整串行约束检查落链首认领。 - 限流不拆原子对:发不出评论就撤 assign 或不开始;配额尽则整对排队,永不留半个。 @@ -580,7 +581,6 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报 - 停摆 ⇒ 立刻 SendMessage 附前台执行姿态句,⛔ 不等任何静默阈值(阈值是给没有回答的)。 - 复位走梯度,每次比上一次更具体;第三次停摆判 unreliable,按接手协议重派。 - 通知重放先算身份再读内容:与已验收那份同身份 ⇒ 记重放即结束。 -- 重放 ⛔ 不重新验收、不重复 ACCEPT;通知到达不读作还活着,不到达也不读作已死。 - 直接验收兜底:(a) draft PR 在且 CI 全绿 + (b) 探活确认已死或 ≥2h 无推送 + (c) 报告未达。 - 三条件全立 ⇒ 直接按 PR 验收,复核判据不减;先探活后翻 ready。 - 舰队级死因(全账号断粮)下取 (a)+(c) 照常收口,PR body 就是报告。