diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index 248b89e576..a6adba8814 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -89,13 +89,12 @@ fire 附带一次: ## 分诊两级盘点细则(维护者 2026-08-20) -出处(逐字,未译):「每次都需要 四仓全量 open issue 盘点 … 吗?建议分诊多久执行一次」 -→「立卡」。实测全量四仓 ~50k token/轮,`since` 等价 ~8k。小时层三读法:sweep 析取①②③ = -`list_issues` + `since`(标签变更刷新 `updated_at`,半标注照样入窗);解锁扫描反演 = 逐仓 -`state=CLOSED` + `since` 与 `Blocked-by:` 反向索引求交,命中走既有回队双查;健康指标 = 逐 -标签 `perPage: 1` 只读 `totalCount`。每日层(当日首 fire)= 四仓全量对账 + 归集本就日频的 -职责(finding 集中轮、`Restart-when:` 判据批扫、决策箱回填)。成本靶:干活轮 ≤50k,空转轮 -守既有探针预算(契约复审的常设承担归项目总监席人工召唤,见 `contract-review.md`)。每条枚举 +出处原话逐字住主文件「两级盘点」条。实测全量四仓 ~50k token/轮,`since` 等价 ~8k。小时层 +三读法:sweep 析取①②③ = `list_issues` + `since`(标签变更刷新 `updated_at`,半标注照样入窗);解锁 +扫描反演 = 逐仓 `state=CLOSED` + `since` 与 `Blocked-by:` 反向索引求交,命中走既有回队双查;健康 +指标 = 逐标签 `perPage: 1` 只读 `totalCount`。每日层(当日首 fire)= 四仓全量对账 + 归集本就日频 +的职责(finding 集中轮、`Restart-when:` 判据批扫、决策箱回填)。成本靶:干活轮 ≤50k,空转轮守 +既有探针预算。每条枚举 都比对返回数与 `totalCount`:不等 ⇒ 本轮没读完,报 `sweep INCOMPLETE` 点名缺口,⛔ 永不报干 净(同 `check-governed-merges.mjs` 对未审计仓的标准);分页只治当次,治不了下次涨过页宽,故一个 谓词、⛔ 不加第二条代码路径。 @@ -130,8 +129,7 @@ fire 附带一次: - **无权执行 ⇒ 点名有权者,并当轮把状态搬进对方收件箱**(换标进对方的收件箱视图/决策 箱), ⛔ 不许只留一条评论等人路过 —— 评论不是任何人的收件箱,标签才是。 -- **机械半边**:「交付 PR 已合并而卡仍挂 `pm:dispatched`」由半状态巡查的 report-only 项浮 - 出(细节以脚本头为权威);旗标是兜底,当轮执行才是修法。 +- **机械半边**:旗标由半状态巡查 report-only 浮出(判据以脚本头为权威);当轮执行才是修法。 ## 云卡(`mode:cloud`)四课 @@ -221,11 +219,9 @@ os-dev 定义。 原则(⛔ 默认不整段粘贴 issue 正文;dev 自查正文完整性是「自己读」截断风险的对价)在主文 件;本节是条款原文与增量: -- **三分区条款原文**:「裁决(不可重裁)」—— dev 执行,不重 - 开;「PM 机制假设(须实测,鼓励证伪)」—— dev 动手前验证,证 - 伪照实报告并按裁决意图换实现路径,⛔ 不许为顺从假设硬 - 做;「PM 建议的路线(可选,实测优先)」—— dev 有更好的就 - 换,⛔ 不得因「派发令写了」照做。 +- **三分区各自的 dev 义务**(三个区名逐字住主文件「三分区」条):裁决区 dev 执行不重开;机 + 制假设区动手前验证,证伪照实报告并按裁决意图换实现路径,⛔ 不许为顺从假设硬做;建议 + 路线区有更好的就换,⛔ 不得因「派发令写了」照做。 - **兄弟 dev 报告里的成本/形状估计一律落「机制假设」区并注明须复测**,⛔ 不得穿裁决的衣服转述:被当事实搬运的「两行 改动」照字面落地把双字面量的方向循环写成 `desc → desc → null`,度量列永远升不了序而天真测试照绿 —— 错在搬运的派发词。 - **前提含「spec 有这个槽位」⇒ 派发前先读安装包内的活性账 @@ -266,9 +262,17 @@ os-dev 定义。 抄进派发令**(⛔ 不 凭记忆),并带:「每一面都必须在 PR 正文有一个结论:已改 / 本就合规(证据)/ 明确不在范围(理由);⛔ 静默略过 —— 评审把没提到的面读作漏掉的面」。防的不是做错,是做对了一部分然后以为做完了。 - - 改动触及**已发布包**(`package.json` 的 `private` 不为 true)⇒ 「用户可见行为改动**必须**带 - `.changeset/*.md`;判据是包的发布状态,不是改动大小 —— 缺了则合进 main 却永不发布,看起来像修好了,比不合更 - 糟」(ACCEPT 侧对账在复核清单)。 - **测量先行卡**(修复由测量结果**有条件授权**)⇒ 派发令写 明「⛔ 测量存在之前不写修复」—— 测量姿态让 dev 看得见 卡面没列的探针,实现姿态只看得见要交的 diff。 + +## security-object 无判决枚举(座位贴常设 ⑦)的方法与校准 + +- **表面半边(⛔ 不比总数)**:`git diff <基线ref> origin/main -- '<两插件>/src/objects/*.object.ts'` 过 + `grep -E "^[+-] [a-z_][a-z0-9_]*: Field\."`;零命中 = 成员级同一,必记基线 ref(2026-08-26 `b000ab59`)。 +- **读者半边**:`git grep -I -n -w "<键>" -- . ':(exclude)<声明该列的 *.object.ts>' ':(exclude).claude'`(⛔ + 缺后者会命中本节),逐命中行计一次:① `*.generated.ts` 不是读者;② `packages/spec` 契约声 + 明**算**读点;③ 裸字面量 `key:` 拼写**算**。 +- **正对照恒先跑**:`sys_share_link.email_allowlist` = **3**(2026-08-26 记;漏 ① 得 7,多减 ② 得 2)—— + 跑不出 3 即仪器坏了,⛔ 记下任何零之前停;⛔ 无对照的零记「没读到」不记 0(`name` 这类 + 列名到处匹配,未校准的仪器平凡地回 0)。 diff --git a/scripts/pm/check-skill-line-ratchet.mjs b/scripts/pm/check-skill-line-ratchet.mjs index b338a898db..4cf0bcbcbf 100644 --- a/scripts/pm/check-skill-line-ratchet.mjs +++ b/scripts/pm/check-skill-line-ratchet.mjs @@ -205,7 +205,11 @@ export const CEILINGS = new Map([ // to the reference file below (lowering is always legitimate). // Lowered 243 → 242 by the restructuring round: the stale hourly-fire // rationale clause collapsed into a pointer at contract-review.md. - ['.claude/skills/pm-dispatch/references/dispatch-runbook.md', 274], + // 274 -> 278 (maintainer ruling, 2026-08-29, PM chat, verbatim: 「12813 同意」 — option A): + // one ruling sized to the merged end-state of the three stacked PRs on this file. The +4 is + // the measured residual of the ⑦-method section after compression to its reasoned floor and + // real-deletion cuts were exhausted; re-wrap funding was refused per the 2026-08-17 rule. + ['.claude/skills/pm-dispatch/references/dispatch-runbook.md', 278], // Whole-text restructuring round (maintainer ruling 2026-08-23, Q1 = A): // mechanism detail extracted from SKILL.md — the four long state-table rows // (state-machine.md) and the clause-② review-chain operational detail