Skip to content

Commit 5876b54

Browse files
docs(pm-dispatch): a decision analysis recommends exactly one option (#24520)
Fixes #24444 Clause-②: no ## What Two lines of `.claude/skills/pm-dispatch/references/decision-analysis.md`, nothing else (1 file, +2 / −2): - **line 9** (the director's pre-batch increment): 「推荐/回退/口径」 → 「推荐/口径」, the card's wording verbatim. - **line 26** (the recommendation item of the card-face template): 「推荐 + 回退 + 置信缺口:荐一项、给回退项、明说看不见什么;⛔ 不沿用他席推荐。」 → 「推荐 + 置信缺口:只荐一,余各一句不取理由;盲区明说,⛔ 不因此另荐;⛔ 不沿用他席推荐。」 The four facets, the 自检 line and the 裁后执行 paragraph are untouched; `SKILL.md` is untouched. ## Why The maintainer, 2026-10-19: 「你的决裁总是有一个回退合理吗?是完全不同的开发方向。最终结论应该只有一个吧?是 skills 的问题吗」, then 「同意」 on the card's change. Ruling of record: director ledger comment `6259199455` (on #12708). ## Route A: compressed in place, line count unchanged The card's line-26 text measures 150 bytes; the ratchet's `MAX_LINE_BYTES` is 120 (`scripts/pm/check-skill-line-ratchet.mjs`), and the file sits at 50 lines against its 50-line ceiling (headroom 0). So the ruled wording cannot land verbatim on one line. Route A (compress the wording, keep every clause, add no line) loses no clause, so route B (fold the verbatim text into two lines and raise the ceiling 50 → 51 under the ruling) was not taken and the `CEILINGS` row is unchanged. Clause survival, ruled text → landed fragment: | Ruled clause (card text) | Landed fragment | Change | |---|---|---| | item name 推荐 + 置信缺口 | 推荐 + 置信缺口 | verbatim | | ① 只荐一项 | 只荐一 | measure word 项 dropped | | ② 其余选项各一句不取理由 | 余各一句不取理由 | 其余选项 → 余 (the remaining options, set against 一) | | ③ 看不见什么明说 | 盲区明说 | 看不见什么 → 盲区 (blind spots) | | ④ ⛔ 不因此给第二推荐 | ⛔ 不因此另荐 | 给第二推荐 → 另荐 (recommend another); 因此 and ⛔ kept | | ⑤ ⛔ 不沿用他席推荐 | ⛔ 不沿用他席推荐 | verbatim, byte-identical to the old line's tail | Nothing is added: no new clause, no new term, each clause keeps its own separator and its own ⛔. A shared-⛔ variant that kept 只荐一项 whole (`…盲区明说,⛔ 不因此另荐,不沿用他席推荐。`, 119 B) was weighed and refused, because it lets 因此 read across clause ⑤. ## Line budget | | before | after | ceiling | |---|---|---|---| | file lines | 50 | 50 | 50 | | line 9 bytes | 119 | 112 | 120 | | line 26 bytes | 110 | 120 | 120 | Control: with the card's verbatim text placed at line 26, the gate's own `scanLineLengths` reports `[{"line":26,"bytes":150}]`; on the landed tree it reports `[]`. ## Premise checks on `origin/main` `f4755a68a` - The card's line numbers 13 and 30 are off: the two strings sit at lines 9 and 26. - `git grep -n "回退" f4755a6 -- .claude/skills/pm-dispatch/ .claude/agents/` gives 15 hits. Only these two are decision-analysis uses; the rest (os-dev wording ×4, `SKILL.md` line 249's `??` fallback, `dispatch-runbook.md`, `execution-duties.md`, `lanes/triage.md`, `platform-readings.md` ×3, `reading-discipline.md`) are untouched. - No script, test or doc pins the old wording: `git grep` for 回退/口径, 给回退项 and 推荐 + 回退 finds only the two lines themselves. ## Verification, all at head `ddf97945b` The 17 families `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derives for this diff, each exit code captured before any pipe: | Command | Exit | |---|---| | `node scripts/check-closing-keyword-parity.mjs` | 0 | | `node scripts/check-closing-keyword-parity.mjs --self-test` | 0 | | `node scripts/check-comment-mask-corpus.mjs` | 0 | | `node scripts/pm/check-harness-current.mjs --self-test` | 0 | | `pnpm --filter @objectstack/lint run check:doc-formula-expressions` | 0 (first run 3, PREREQUISITE NOT MET: `@objectstack/formula` and `@objectstack/lint` unbuilt in the fresh worktree; built under the verify lock, rerun 0) | | `pnpm check:agent-test-spelling` | 0 | | `pnpm check:cross-package-test-inputs` | 0 | | `pnpm check:doc-authoring` | 0 | | `pnpm check:driver-memory-census` | 0 | | `pnpm check:gitlink-declared` | 0 | | `pnpm check:nul-bytes` | 0 | | `pnpm check:pm-governed-merges` | 0 | | `pnpm check:pm-skill-id-lint` | 0 | | `pnpm check:pm-skill-ratchet` | 0, `decision-analysis.md is 50 lines (ceiling 50; headroom 0)`, no line-length offender | | `pnpm check:refd-timer-probe` | 0 | | `pnpm check:skill-frame-sync` | 0 | | `pnpm check:watch-hint-literal` | 0 | `dispatch-gates --ran` with the exit-coded record: `17 derived, 17 run, 0 NOT-MEASURED, 0 UNRUN` (a derived zero). Also run: `pnpm check:pm-settings-deny-roster` exit 0 (its roster lives under `.claude`). `node scripts/pm/check-governed-merges.mjs --branch` answers GOVERNED, Tier S (exit 3, the governed code). Text-only change: no tests, no ablation. The type-check lanes, `test:repo` and `pnpm lint` belong to CI. ## Acceptance notes - Tier S (`.claude/**` only). This PR stays a draft; ready and queue belong to the owning seat after an isolated contract-tier review. - No changeset: `.claude/**` publishes nothing; `skip-changeset` is declared with this PR's creation. ## 维护者速读(草稿) - **改了什么:** 决策分析写法删掉「回退项」。总监批前增量从「推荐/回退/口径」改为「推荐/口径」;卡面推荐条改为「推荐 + 置信缺口」:只荐一个方案,其余方案各用一句话说明为何不取,看不见的地方明说,但不因此再给第二个推荐。只动这两行,文件仍是 50 行。 - **为什么改:** 您指出「最终结论应该只有一个」。旧模板要求每次附一个回退项,实际常是另一条完全不同的开发方向,等于把决定又推回给您。 - **风险与代价(含回滚):** 纯文本,不发布,不影响产品运行。第 26 行为了压进每行 120 字节的上限做了措辞压缩(「其余选项」→「余」、「看不见什么」→「盲区」、「给第二推荐」→「另荐」、「只荐一项」→「只荐一」),五个分句全部保留,但不是卡上原文逐字。回滚 = revert 本 PR 的一个提交。 - **席位意见:** - **你要做的:** 无。本 PR 属 Tier S,由席位隔离复核通过后入队落地。 --- _Generated by [Claude Code](https://claude.ai/code/session_01HEdP5tPhqQfzwRmKDxwn85)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent ec16dbe commit 5876b54

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

‎.claude/skills/pm-dispatch/references/decision-analysis.md‎

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

77
- 每批恰好 5 张,末批不足照呈;呈完即停等回批,⛔ 永不一条消息投多批。
88
- 批序:在飞被阻塞 > 运营阻塞 > 用户可见 > 结构性;卡面分析只一层 = 立卡席六项 + 四棱。
9-
- 总监批前卡评论是增量:命令复核前提,逐棱同异,推荐/回退/口径;不同意字母才展开四维。
9+
- 总监批前卡评论是增量:命令复核前提,逐棱同异,推荐/口径;不同意字母才展开四维。
1010
- 回批一行式逐卡对应字母选项;带的附加条件随执行落地,⛔ 不为它另起请示轮。
1111
- 呈递详解 = 逐卡散文按正文六项;⛔ 表格行、判词、栅格不构成详解,压缩批次是违规。
1212
- 受管草稿批例外:一 PR 一行(改了什么/为什么/席位意见/一个动作),⛔ 不套六项;速读住 PR。
@@ -23,7 +23,7 @@
2323
- 业务含义直译:每选项配一句业务上等于什么,允许行业类比。
2424
- 四轴从业务立场论证(含四棱行):论据是客户、产品或事故后果,机制名词只作括号补充。
2525
- 防 AI 犯错轴写清出错时谁看到什么:响亮拒绝,还是静默泄露。
26-
- 推荐 + 回退 + 置信缺口:荐一项、给回退项、明说看不见什么;⛔ 不沿用他席推荐。
26+
- 推荐 + 置信缺口:只荐一,余各一句不取理由;盲区明说,⛔ 不因此另荐;⛔ 不沿用他席推荐。
2727
- 推荐先只按①得出:终态句写两年后该能力的平台样子与主流平台建模,点名参照。
2828
- ②③④ 与工作量只调时序分期 ⛔ 不翻字母;契约迁就实现、分期半量 ⛔ 不作推荐。
2929
- ①读数相近而工作量差 ≥3× 推荐须点名;翻字母只凭维护者卡上另裁,唯④新增门禁例外。

0 commit comments

Comments
 (0)