Skip to content

Commit e15870f

Browse files
os-elon-muskclaude
andauthored
skills(pm-dispatch): key the clause-② contract review by lane — spec and skills owe it on every round, other lanes owe none (#18903)
Fixes #18536 Clause-②: no ## What this lands The maintainer's lane rule, restated by the director record on the card (comment 5717169811), quoted verbatim and untranslated: > 「曾经要求只有 spec 和 skills 需要 fable,其他 opus 就够了,理论上其他车道不需要契约复审」「即使项目经理跑在 opus 上,也可以支持起 fable 子 agent 复审,这样最快。除非子 agent 用 fable 启动失败,也就是没有 fable」 carried into the governed text and the two machine readers: 1. **Spec and skills lanes** — every delivered round gets the contract review at `CONTRACT_REVIEW_TIER`: in-seat when the seat's served tier is that tier, otherwise by the at-tier review subagent the seat spawns (the 09-17 route stays). The record is the same-shape comment with `Served-tier:`, on the PR or the card. 2. **Every other lane** — no contract review. The clause-② limbs (path `packages/spec/src/**`, declaration `Clause-②: yes`) survive unchanged and now answer the LANE question: a limb hit is spec-lane work and moves there; a `Clause-②: no` PR outside the contract surface lands on the three pre-checks and the gates. No default-tier self-review record is demanded, and no other lane spawns the at-tier subagent. 3. **Tier unavailable** (the at-tier subagent cannot start) — the review cannot be produced: the PR stays draft and out of the queue, and the maintainer's own review is the only bypass, by their word each time. The lane key is the 2026-09-10 key restored (PR #17294) with the 2026-09-17 subagent route kept (PR #18511); the 2026-09-16 tier key (PR #18363) is superseded. Not a byte-revert: both spec AND skills owe the review, and 「余席默认档自审加门禁」 is gone — other lanes owe nothing. ## Charter (commit 1) — net 0 lines per file | file | before → after | ratchet ceiling | |:--|:--|:--| | `.claude/skills/pm-dispatch/SKILL.md` | 812 → 812 | 812 | | `references/contract-review.md` | 60 → 60 | 60 | | `references/core-rules.md` | 151 → 151 | 151 | Every edited line is at most 120 bytes; `check:pm-skill-ratchet` is green on `bc0c2ec41`. Rule text carries no issue numbers (`check:pm-skill-id-lint` green); the four-axis frame block is untouched (`check:skill-frame-sync` / `-freshness` green). **SKILL.md** — five in-place rewrites, one added line, one retired line: - :512 强制条款② — 「达档复核归派发席席内」 → 「命中即 spec 车道的活」. - :522 席位档策略 — 「按实测档:达档席内审;未达档席 ⛔ 不自审,起隔离达档子代理转录核档采信」 → 「按车道:spec 与 skills 席达档席内审;未达档 ⛔ 不自审,起隔离达档子代理」 (the transcript-verified tier of the subagent stays stated in contract-review.md :54). - :636 入队闸门 — 「无席内条款②复核 PASS 在案」 → 「无达档条款②复核 PASS 在案」; the limbs at :637 / :638 are untouched. - :639 交付后复核 — 「归派发席:达档席内审,未达档循保险丝起子代理;记录 = 同形评论落 PR 或卡」 → 「只 spec 与 skills 车道欠,每轮达档:席内审或起子代理;双肢命中即 spec 车道」 (the record's shape lives in contract-review.md :27–:29). - :640 ADDED (rule 3, where the enqueue gate lives) — 「子代理起不来 ⇒ 复核缺席,PR 留 draft 队列外等档;唯一旁路是维护者亲审,逐次为准。」 - :646 pointer — 「席内复核的适用面」 → 「契约复核的适用面」. - RETIRED, paying for :640 — the former :672 「报告席记条款②默认档 FAIL 率入复审清单;超改制前达档史值 ⇒ 决策卡交维护者定回退。」 Reason: it meters the FAIL rate of DEFAULT-TIER clause-② reviews, and under rules 1–2 no lane performs one (spec and skills review at tier; other lanes review nothing), so the metric's population is empty. It sits outside the claim's declared SKILL.md bands; it is the one tier-keyed line in the file the ruling empties, and paying in-file required it. Re-wrap is not currency: no line was re-flowed. **contract-review.md** — thirteen in-place rewrites: - Title and :23 — 「(席内)」 → 「(按车道)」. - :9, :11, :12, :14 — 「席内契约复核 / 席内复核」 → 「达档契约复核 / 达档复核」: the review is at tier wherever it happens, and "in-seat" was the 09-16 key. - :25 — 「交付后收集复核当轮席内完成;借复核不移卡,新 spec 工作恒归 spec 席」 → 「交付后收集复核当轮完成;只 spec 与 skills 车道欠,新 spec 工作恒归 spec 席」. The "borrow the isolated review" route is what rule 2 closes for other lanes. - :26 — 「按档位:达档席内审契约增量;未达档 ⛔ 不自审,走保险丝路;豁免仅独立性件与保险丝」 → 「按车道:spec 与 skills 席审契约增量;达档席内审,未达档 ⛔ 不自审,起达档子代理」. - :27 — 「达档与默认档同形」 → 「席内与子代理同形」: there is no default-tier record any more; one shape holds between in-seat and subagent (the two scripts' quotations of this line are updated in the same PR). - :32 — the independence case → 「独立性件(契约真分叉、dev 挂旗)与保险丝只免席内审,不免复核:起隔离达档子代理」. This is the 「豁免仅独立性件与保险丝」 rewrite the ruling asked for: the independence case and the fuse exempt the seat from IN-SEAT review only, never from the review's existence. The former third trigger 「派发后的跨车道面(含 spec)」 is lane routing now (:25). - :40 landing pre-check ① — 「席内条款②复核 PASS 在案 …(档位按实测)」 → 「达档条款②复核 PASS 在案 …(spec、skills 每轮)」. - :50 the fuse — 「管每个出条款②裁决的席 … 未达档 ⛔ 不自审」 → 「只管 spec 与 skills 席的条款②复核」 (the 不自审 clause stays at :26). - :52 — 「至席内复核完成」 → 「至达档复核完成」. - :53 — 「标签原样留置,队列外等待是安全态」 → 「起不来即无复核,标签原样、队列外等档」 (rule 3 on the fuse side). **core-rules.md** — one rewrite: :112 「契约卡达档复核归派发席」 → 「契约复核只 spec、skills 欠」. Trace by REST `GET /pulls/N/files`: PR #18363 (09-16) touched SKILL.md, contract-review.md and platform-readings.md only, so the 09-16 re-key never landed in core-rules.md; :112's tier key came with PR #18511 (09-17), replacing PR #17294's 「归 spec 席」. :122 「`references/` 席内达档复核后入队」 is left as the mirror of SKILL.md :625 (see acceptance notes). ## Machine side **commit 2 — `scripts/pm/dispatch-gates.mjs`.** The clause-② note and the suspect tail that `--tier` prints (quoted into claim comments) said 「spec seat; default-tier build」 and 「in the spec seat」 — the 09-10 seat key, which PR #18363 never re-keyed. They now name the spec and skills lanes, the in-seat-or-subagent route, and 「a hit outside those lanes is spec-lane work and moves there」; the docblock above `MANDATORY_TIER_GLOBS` carries the rule. Four self-test pins hold both renderings to the lane key and refuse the two retired spellings. `--self-test`: 1852 cases pass (baseline on `0b31d90`: 1848). **commit 3 — `scripts/pm/check-clause2-carriers.mjs`.** `needsRecordRead` — C6's population gate and the sweep's read budget — owed a record only in the completed state (a cleared `yes`), so a spec-lane `Clause-②: no` round read 0 with no record on its head: exactly PRs #18530 / #18529, the card's measured pair. Now: - `LANES_OWING_REVIEW` (`domain:spec`, `domain:skills`, frozen) and `laneOwesReview(pair)`, read off the CARD's `domain:*` labels; unreadable labels stay UNJUDGED through the existing labels gap. - Population: the completed state (unchanged) OR a declared `no` on a spec/skills card (new). A `no` anywhere else still owes nothing — pinned. - C6's row on a spec/skills `no` round with no record: exit 4; remedy = the lane's review at tier (in-seat or by the at-tier subagent), with the unavailable-tier state and its one bypass named. - A cleared `yes` OUTSIDE the two lanes keeps its row and its exit 4 (the `yes` is a limb hit, and limb-hit work is owed), but its remedy is lane ROUTING: re-lane the item to `domain:spec` (`pm:retriage`, or split the contract work to a spec-lane card or PR per 「新 `packages/spec` 工作恒由 `domain:spec` 席收口」), or correct a false `yes` with a `Clause-②-correction:` comment — never a default-tier self-review, never an at-tier subagent from that lane. - The C6-RECORD note prescribes the clear-citation only where a clear exists; on a spec/skills `no` round with its record it says the lane owes the record and it exists. - New floored battery, 34 cases (floor 30); roster floor 32 → 33. `--self-test`: 977 cases pass (baseline 941). Deviation from the dispatch's suggested case (c) — a `yes` pair on a `domain:cli` card as 「not owed as a record, plus a note」 at exit 0 — implemented instead as owed at exit 4 with the routing remedy. Reasons: contract-review.md :42 promises 「0 = … head 上有记录」; a cli seat clearing a `yes` pair and landing it from that lane is never a legal workflow under rule 2 (the work 「moves there」), so an exit-0 note would be the 0-with-a-message the file's own header bans; and the row's exit is unchanged from today (only the remedy text moves), so no legal workflow is re-blocked. The four-axis reading is in the report's `open_questions`; the PR is draft for the maintainer's word either way. ## Gates (run on `bc0c2ec41`, the final commit) `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derived 46 families. 45 ran with exit 0 (each captured redirect-then-`$?`), among them `check:pm-skill-ratchet`, `check:pm-skill-id-lint`, `check:skill-frame-sync`, `check:pm-governed-prose`, `check:pm-clause2-carriers`, `check:declared-population-live`, `check:pm-half-states`, `check:nul-bytes`. `check:doc-formula-expressions` first exited 3 — PREREQUISITE NOT MET (`@objectstack/formula` / `@objectstack/lint` not built; nothing measured) — and reruns green after `turbo run build --filter=@objectstack/formula --filter=@objectstack/lint` under the verify lock (22 + 9 + 14 examples judged clean). `check:pm-dispatch-gates` (430–450 s) was still running detached when this body was written; its verdict and the `--ran` reconciliation are in the `os-dev-report` comment on #18536. Both edited scripts' own `--self-test` pass (above). The four package tests that mention `dispatch-gates.mjs` do so in docblocks only and read nothing from it, so they are not owed. The derivation printed a STALE TREE warning (the tree is behind an `origin/main` that moved during the run); the PM's re-derivation after the report reads the true list. `skip-changeset`: nothing published moves — `.claude/**` and `scripts/pm/**` ship in no package's `files[]`. ## Acceptance notes Lines outside this card's declared file surface that carry seat or tier wording — reported, not edited (承接者: the skills seat's next SKILL.md round; the hot-file queue behind this card holds #18743 · #18755 · #18665 · #18469 PR-B · #18489): - SKILL.md :231 「派发后发现的跨车道面(含 spec)不移卡,认领席借契约复审档隔离复核」 and core-rules.md :62 (its mirror). The "borrow the isolated at-tier review" route is what rule 2 closes for other lanes (no other lane spawns the at-tier subagent). The ruling's 「moves there」 and SKILL.md :234 「已派发卡 ⛔ 不因触 spec 转席」 reconcile as "the contract WORK moves to the spec lane; the card is not re-seated", which is how contract-review.md :25 now reads. Suggested rewrite of :231, same byte budget: 「认领即跟到 MERGED:派发后发现的跨车道面(含 spec)不移卡,契约面工作交 spec 车道达档复核。」 - SKILL.md :608 「技能面 hunk 须由契约复审档的席复核,档外席先交 skills 席」, :623 「由本席按达档自审」, :625 「经席内达档复核后 ready → 入队」 and core-rules.md :122 「`references/` 席内达档复核后入队」: consistent with rule 1 read as "the skills lane's review at tier, in-seat or by subagent"; the word 席内 there is the 09-16 spelling and could be read as in-seat-only. - `references/lanes/spec.md` :19–:33 and `references/lanes/skills.md`: no contradiction found; `lanes/skills.md` :13 「契约复核归派发席席内」 is ownership wording (the seat owns the record it adopts) and stays true. - The follow-up the ruling assigns to the lane seats after this lands, not to this card: re-read the `needs:contract-review` carriers hung outside the spec/skills lanes (the director's ledger ⑫) and re-lane or strip each. - Sweep-mode cost: `check-clause2-carriers.mjs` without `--pair` now buys the PR thread for every spec/skills-lane `no` pair too (one read per PR, cached per PR); the budget paragraph in the file's header is unchanged in shape. ## 维护者速读(草稿) **改了什么**:把契约复核的归属重新按「车道」写回章程:只有 spec 与 skills 两条车道的每一轮交付都要过契约复审档的复核——席位达档就席内审,不达档就起达档子代理;其余车道零契约复核,条款②命中即 spec 车道的活;达档子代理起不来时 PR 留 draft、队列外等档,唯一旁路是您亲审。三份章程文本行数不变(812 / 60 / 151),两个机读脚本(`--tier` 的提示行、`--pair` 的复核记录人口)同步改成按车道判。 **为什么改**:9-16 那次把「只在 spec 席」改成了「按席位实测档」,席位名单没了,于是同一张 `Clause-②: no` 的 spec 车道 PR 在两条细则下答案相反(#18536 的两种读法),而账号级 429 让「等档位」在两种读法里含义完全不同。您 9-17 的裁决把车道规则说回来了,本 PR 只是把它落到文本和脚本上。 **风险与代价(含回滚)**:`--pair` 从此对 spec/skills 车道的 `no` 轮也要求 head 上有复核记录,没有就退 4——这正是 #18530 / #18529 该有的读数,但意味着这两条车道的 `no` 轮在记录落下前都不能入队;其它车道不受影响,`yes` 挂在别的车道上的旧读数(退 4)不变,只是补救措施从「自审」改成「改道 spec」。回滚 = revert 这三个 commit,文本与脚本一起回到 `0b31d90`。 **席位意见**:(留空) **你要做的**:确认本 PR 是否如实落了您的车道规则,是则合并;合并后各车道席按裁决去清理挂在 spec/skills 之外的 `needs:contract-review` 载体。 --- _Generated by [Claude Code](https://claude.ai/code/session_01BTeBejoPUvRHN8WdAJC6oF)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 554e928 commit e15870f

5 files changed

Lines changed: 280 additions & 76 deletions

File tree

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
509509
- 发布的 `skills/**` 整根随 `npx skills add` 发运,⛔ 无一行级豁免,逐行判机械不作数。
510510
- 纯机械一行 PM 酌定可至下限档;降档施工的补偿控制 = 复核席跑契约复审档。
511511
- 降档施工只经契约复审档复核到达维护者,⛔ 不新增标签不新增链。
512-
- 强制条款②:放宽接受集或扩大公开面的卡默认判断档施工;达档复核归派发席席内。
512+
- 强制条款②:放宽接受集或扩大公开面的卡默认判断档施工;命中即 spec 车道的活。
513513
- 条款②判据即代裁的机械边界测试与 `references/lanes/spec.md` 席内分派判据,⛔ 不另抄。
514514
- 负边界:运行时权限/安全行为变更不是条款②,归人工地板安全/权限边界类。
515515
- 条款②只指已发布契约面,拉回已声明契约不触它;卡面复述仍是条款②。
@@ -519,7 +519,7 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
519519
- 机械放宽判别门禁落地前,入队前的席内契约复核是方向自述的补偿控制。
520520
- 豁免够不到的地板只有维护者裁决能设。
521521
- 席位档策略:skills 车道外的执行席与分诊席默认判断档会话。
522-
- 条款②复核按实测档:达档席内审;未达档席 ⛔ 不自审,起隔离达档子代理转录核档采信。
522+
- 条款②复核按车道:spec 与 skills 席达档席内审;未达档 ⛔ 不自审,起隔离达档子代理。
523523
- 降档出口两条:额度耗尽豁免,与主动预降(余量吃紧可预先降档)。
524524
- 额度耗尽豁免仅当契约复审档实测不可用才落默认判断档,⛔ 不再往下。
525525
- 降档的档位与理由记入认领评论 Container & model 行;档位逐次派发显式传参,永不省略。
@@ -633,17 +633,18 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
633633

634634
- 细则见 `references/landing-operations.md`,落地窗口查阅。
635635
- 条款②入队闸门:翻 ready / 入队前先取 PR 实际 diff;diff 是事实,卡片语义是预测。
636-
- `--tier` 嫌疑行是提示非裁定;双肢命中任一 ⇒ 无席内条款②复核 PASS 在案 ⛔ 禁止入队。
636+
- `--tier` 嫌疑行是提示非裁定;双肢命中任一 ⇒ 无达档条款②复核 PASS 在案 ⛔ 禁止入队。
637637
- 路径肢 = diff 触及契约面 `packages/spec/src/**`,含 error-code-ledger 与 `*.zod.ts` 契约 schema。
638638
- 声明肢 = 认领评论声明 `Clause-②: yes`,与路径无关;错误的 `no` 是可审计的假申报。
639-
- 交付后复核归派发席:达档席内审,未达档循保险丝起子代理;记录 = 同形评论落 PR 或卡。
639+
- 交付后复核只 spec 与 skills 车道欠,每轮达档:席内审或起子代理;双肢命中即 spec 车道。
640+
- 子代理起不来 ⇒ 复核缺席,PR 留 draft 队列外等档;唯一旁路是维护者亲审,逐次为准。
640641
- PASS ⇒ 同席剥标并引记录、ready、auto-merge;FAIL ⇒ 补丁轮;⛔ 免复核不放行。
641642
- 真正设计分叉照旧进决策箱,席内复核 ⛔ 不替代维护者裁定。
642643
- 外部评审链降为可选事后审计,非放行前提。
643644
- `needs:contract-review`(恒英文)由席位同笔挂:PR 一现即挂 PR;报告先到则先挂卡。
644645
- `Clause-②: yes` 认领同笔卡上挂标;开 PR `PM_SWEEP_REPO=仓 check-clause2-carriers --pair N` 0 才请审。
645646
- 挂标后复核完成前短暂停靠;⛔ 不前瞻预挂。
646-
- 席内复核的适用面、载体纪律、资格与归属、降档保险丝见 `references/contract-review.md`。
647+
- 契约复核的适用面、载体纪律、资格与归属、降档保险丝见 `references/contract-review.md`。
647648
- 碰生成物的 PR 入队前先同步 + 整体重生成:四步序 `bash scripts/pm/os-regen-merge.sh`。
648649
- os-regen 的陷阱与锚点禁令见 landing-operations A。
649650
- 跟到 MERGED 为止,入队后的看护归车道 PM 的落地窗口:每轮同时读队列分支与 `origin/main`。
@@ -669,7 +670,6 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
669670

670671
- 每轮向维护者打中文轮次报告(chat 通道):issue → 判决 → PR 链接 → 备注的表。
671672
- 报告加升级项、代裁清单(分诊)、awaiting a human merge 项、governed 合并审计清单。
672-
- 报告席记条款②默认档 FAIL 率入复审清单;超改制前达档史值 ⇒ 决策卡交维护者定回退。
673673
- 审计清单实跑 `node scripts/pm/check-governed-merges.mjs --since <上轮>`,⛔ 不凭记忆汇总。
674674
- 车道审计是早警;权威合并窗口与认定/回滚处置归总监席,见 `references/lanes/director.md`。
675675
- 报告含 `UNRECOGNISED` 行:对本轮门禁日志 grep `UNRECOGNISED` 逐行照录,`NOT APPLICABLE` 行也在内。

‎.claude/skills/pm-dispatch/references/contract-review.md‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# 契约复核细则(席内)
1+
# 契约复核细则(按车道)
22

33
见 SKILL.md 〈入队与落地〉的条款②闸门;本文只放载体纪律、归属资格与降档保险丝。
44

55
## 载体纪律(挂与清)
66

77
- 内容肢及于 published `skills/**`:作可证伪的算子或契约语义主张的改动挂标走本复核。
88
- ⛔ 判据不是提到契约:纯算子清单、拼写、格式不触发。
9-
- `Clause-②: yes | no` 按设计临时:只定是否必过席内契约复核的保守方向,⛔ 非终审。
9+
- `Clause-②: yes | no` 按设计临时:只定是否必过达档契约复核的保守方向,⛔ 非终审。
1010
- 删误拒的 `Clause-②: no` 附 `Contract-text:` 引已发布契约文本,双载体同载;缺引即缺申报。
11-
- 真闸门在 PR 或报告时点的席内复核;声明被复核推翻 ⛔ 不作席位过失。
12-
- 机械地板 claim 时可查树:新导出符号或已发布载荷上的新键恒 `yes`,锁席内契约复核。
11+
- 真闸门在 PR 或报告时点的达档复核;声明被复核推翻 ⛔ 不作席位过失。
12+
- 机械地板 claim 时可查树:新导出符号或已发布载荷上的新键恒 `yes`,锁达档契约复核。
1313
- conformance 类 ⛔ 不机械化:填充已声明字段、在两个已发布码之间重选输入类都需判断。
14-
- claim 拿不准 ⇒ 按 `yes` 挂标走席内契约复核;⛔ 不建全量分类学与 claim 时决策程序。
14+
- claim 拿不准 ⇒ 按 `yes` 挂标走达档契约复核;⛔ 不建全量分类学与 claim 时决策程序。
1515
- PR 与卡双载体同笔挂:PR 一存在即挂;报告先于 PR 到达则先挂卡侧,ACCEPT 时补齐 PR 侧。
1616
- 同笔在卡上记一行条款②认定;停靠只防误入队,⛔ 无等外部席位的无限期状态。
1717
- 前瞻的条款②事实住卡上裁决与分诊评论、`Clause-②` 申报和 `--tier` 输出。
@@ -20,24 +20,24 @@
2020
- 重挂前先查裁决:闸门标签缺失 ⇒ 先 grep 卡评论找复审结论;`get_reviews` 读空 ≠ 未复审。
2121
- PASS + 无标 + head 未动 = 已清标不是被剥;head 后移或无结论才重挂;清标缺引记录即半态。
2222

23-
## 复核归属与资格(席内)
23+
## 复核归属与资格(按车道)
2424

25-
- 归属该卡派发席,交付后收集复核当轮席内完成;借复核不移卡,新 spec 工作恒归 spec 席。
26-
- 按档位:达档席内审契约增量;未达档 ⛔ 不自审,走保险丝路;豁免仅独立性件与保险丝。
27-
- 复核记录 = 一条评论落 PR 或卡,达档与默认档同形;散文、dev 自评、`os-dev-report` 恒不算。
25+
- 归属派发席,交付后收集复核当轮完成;只 spec 与 skills 车道欠,新 spec 工作恒归 spec 席。
26+
- 按车道:spec 与 skills 席审契约增量;达档席内审,未达档 ⛔ 不自审,起达档子代理。
27+
- 复核记录 = 一条评论落 PR 或卡,席内与子代理同形;散文、dev 自评、`os-dev-report` 恒不算。
2828
- 同形 = `## Contract review` 题头、所审 head sha 独占码段、①②③ 逐项、独立性对、PASS/FAIL。
2929
- 同形含首行 `Served-tier:`:值写常量名 `CONTRACT_REVIEW_TIER`;无此行不成裁决,模板见 `--template`。
3030
- ① derived judgments 逐项:diff 引出的接受集与公开面变化逐条点名判对错。
3131
- ② semver 定级与 changeset 声明一致;③ 边界旗:dev 挂旗与 `open_questions` 逐旗答复或升级。
32-
- 独立性件:契约真分叉、dev 挂旗或派发后的跨车道面(含 spec)⇒ 起隔离的达档复核子代理。
32+
- 独立性件(契约真分叉、dev 挂旗)与保险丝只免席内审,不免复核:起隔离达档子代理。
3333
- 只喂卡片、既有裁决与 PR 本体,⛔ 不喂派发令与派发席自己的结论;简报写成对抗性。
3434
- 隔离复核子代理暂存全写按所审 PR 命名的 `<scratchpad>/pr-<n>/`,⛔ 不读非本轮自写的暂存。
3535
- 独立性对(机读):`Implemented-by:` 写产 diff 者身份;`mode:subagent` 记分支,`mode:remote` 记 session id。
3636
- `Reviewed-by:` 写渲染或采纳裁决的席位 session;隔离复核子代理无 session,记采纳它的席位。
3737
- 两者同 session ⇒ 报 SELF-REVIEW;只 `mode:remote` 可达,`mode:subagent` 席内审是设计;值紧跟冒号。
3838
- 清标即落地:PASS ⇒ 同席同笔剥双载体;清标同笔落 PR provenance 评论,引记录 id 与所判 head。
3939
- 轮次报告设复审清单专节,形状与代裁清单同为强制审计。
40-
- 落地前检三条:① 席内条款②复核 PASS 在案,即 PR 或卡上同形的复核记录(档位按实测)。
40+
- 落地前检三条:① 达档条款②复核 PASS 在案,即 PR 或卡上同形复核记录(spec、skills 每轮)。
4141
- ② 双载体已清,逐对机读 `PM_SWEEP_REPO=仓 node scripts/pm/check-clause2-carriers.mjs --pair N`。
4242
- 0 = 双肢一致、无放宽 tell、head 上有记录;4 = 任一不成立;3 = 环境答不了,⛔ 不作干净。
4343
- 放宽 tell 由 `scripts/pm/check-widening-tells.mjs` 判,`no` 撞新键/成员/导出/登记即拒,附 file:line。
@@ -47,10 +47,10 @@
4747

4848
## 降档保险丝(机读)
4949

50-
- 保险丝管每个出条款②裁决的席:每场前必读服役档(`platform-readings.md`),未达档 ⛔ 不自审。
50+
- 保险丝只管 spec 与 skills 席的条款②复核:每场前必读服役档(`platform-readings.md`)。
5151
- 总监席裁决非达档裁决,⛔ 不受本丝;总监席档位由维护者逐场定。
52-
- ⛔ 自述档位与传参皆非读数;条款②的 `mode:subagent` 派发恒保留标至席内复核完成。
53-
- 读数不达档 ⇒ 改走转录核验的达档复核子代理;标签原样留置,队列外等待是安全态。
52+
- ⛔ 自述档位与传参皆非读数;条款②的 `mode:subagent` 派发恒保留标至达档复核完成。
53+
- 读数不达档 ⇒ 改走转录核验达档复核子代理;起不来即无复核,标签原样、队列外等档。
5454
- 子代理档只取其转录 harness 逐请求 `model` 盖章;`get_session` 量的是派发会话,⛔ 不作互证。
5555
- 清标前 `--pair`:`Served-tier:` ≠ 常量名 ⇒ exit 4,点名 PR、评论、读数;型号串按 `AGENTS.md` 拒。
5656
- 施工档只取 harness `model` 盖章或认领 Container & model 行;`Co-Authored-By` = 署名常量 ⛔ 非证据。

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
- 认领原子对:一次标签写入完成认领与状态对调,随后留 `Claim:` 开头的评论并重读全线程。
110110
- 更早的他会话认领即让行并交出已诊断的一切;认领逾一天且无合并证据即疑死。
111111
- dev 自死不等于维护者中止,需显式信号;回收前先救工作树,有提交的活分支 ⛔ 永不回收。
112-
- 一单一次派发,档位逐卡显式传参;语义面卡恒契约复审档施工,契约卡达档复核归派发席。
112+
- 一单一次派发,档位逐卡显式传参;语义面卡恒契约复审档施工,契约复核只 spec、skills 欠。
113113
- 派发词 ⛔ 不整段粘贴 issue 正文,只带增量,并要求子代理自查正文完整性。
114114
- 派发词分三区:裁决不可重裁、机制假设须实测、建议路线可换,⛔ 不把假设写成裁决。
115115
- 标准非协商条款 ⛔ 不抄进派发词,清单、路径与行号在派发那一刻从树上取。

0 commit comments

Comments
 (0)