Skip to content

Commit 3b46855

Browse files
docs(pm-dispatch): name axis 4's new-gate clause as the one exception to the decision template's never-flip-the-letter rule (#23675)
Fixes #23662 Clause-②: no ## What changed One file, `.claude/skills/pm-dispatch/references/decision-analysis.md`, two lines of 〈落卡分析模板〉. 50 → 50 lines; the `CEILINGS` row (50) does not move. ```diff -- 工作量恒逐选项列;①读数相近而工作量差 ≥3× 推荐须点名;翻字母只凭维护者卡上另裁。 -- 自检行「只看①选 X;②③④ 是否翻转:否 / 是(理由)」,答是不改字母。 +- ①读数相近而工作量差 ≥3× 推荐须点名;翻字母只凭维护者卡上另裁,唯④新增门禁例外。 +- 自检行「只看①选 X;②③④ 是否翻转:否 / 是(理由)」,答是不改字母,唯④新增门禁例外。 ``` The seat's scope decision (the first of the card's two shapes) is carried out: the template names axis ④'s gate clause as the one exception to the rule that ②③④ never flip the letter. `SKILL.md` is not touched; its four-axis block md5 is `abff5f852c8fd09b79ec0623439aa4f0` before and after. ## Why On #23653 axis ① picked a new derived check. The template's self-check said the letter stays (「答是不改字母」). `SKILL.md` axis ④ said the opposite: 「**新增门禁默认否**:门禁是只减不增的零件,例外只有维护者点名;荐新增门禁须引其点名原话,否则荐「不加」。」 (L254–255 at this head). The seat acted on the stricter line under 「两条细则冲突 ⇒ 按更严的一条行动并立卡」. After this change the template agrees with that line. ## How the exception reads against L32, L33 and L34 - **What 「④新增门禁」 points at.** The template numbers the axes in 〈四棱卡面块固定形状〉, where ④ is 创业阶段不扩散. That is `SKILL.md`'s axis 创业阶段不扩散需求, and 「新增门禁」 is its bold clause 「新增门禁默认否」. That clause already states the condition (no maintainer naming quote) and the outcome (「不加」). The template refers to it and does not restate it, so the frame keeps one source. - **L32**, 「②③④ 与工作量只调时序分期 ⛔ 不翻字母;…」, is unedited and stays the general rule. Its one exception is stated on the next line. - **L33** says what alone may flip the letter (「翻字母只凭维护者卡上另裁」). It now names the one exception, so its 「只」 is true. - **L34** is the self-check. A 「是」 still leaves the letter, except for ④'s new-gate clause. In the #23653 case the line reads 「是(④新增门禁无点名原话)」, and the letter becomes 「不加」. - **Why L32 gets no copy of its own (measured).** L32 is 113 B, and the shortest qualifier, 「,唯④新增门禁例外」, is 25 B, which makes 138 B. The only restatement inside L32 that could be deleted is its own 「⛔ 不翻字母」 (17 B), and deleting it would drop the ⛔ marker. That is a loss, so it was not done. ## Payment: net 0 lines, in place, no re-wrap - **Extending L34 alone, as the dispatch suggested, does not fit.** 「…,答是不改字母;唯一例外:①选出的新增门禁无维护者点名原话 ⇒ 荐「不加」(轴④)。」 measures 184 B, and the cap is 120 B. - **Splitting the line and paying for the new one elsewhere is not possible without losing a rule.** - Every bullet in the file is a single line, so a line can be freed only by deleting a whole bullet, or by shrinking the one two-line paragraph (the 〈落卡分析模板〉 skeleton, L21–22, 207 B). - That paragraph would need at least 87 B cut. Its only restatement, 「带 re-check 命令的」, is 22 B; `SKILL.md` already has 「卡上每条前提行自带一条 re-check 命令」. - No whole bullet is fully restated elsewhere. For example, 〈四棱卡面块〉's first bullet carries 「四棱各一行」, which no other file states. - Folding adjacent bullets is re-wrap funding, so it was not used. - **So the exception is said in place, inside each line's own 120 B:** - **L33, 120 → 120 B:** the added 25 B, 「,唯④新增门禁例外」, are paid for by deleting the line's leading restatement 「工作量恒逐选项列;」 (25 B). Nothing is lost: - the options-table bullet two lines above already requires a workload column for every option (「选项 × 真实代价 × 工作量表:每选项一行,做什么 + 客户可感知后果 + 工作量;实测注明。」, L25); - so does `SKILL.md` 〈升级与决策〉: 「决策卡带选项、推荐、证据、四棱块与工作量列;…」 (L269). - The clause was added in the same commit (`5e231a08b`) that put that column into the table line, and it restated it. - **L34, 94 → 119 B:** the added 25 B fit in the line's own 26 B of slack. - **Whole file:** 50 → 50 lines, 3,488 → 3,513 bytes, widest line 120 B before and after, no line over the cap. ## Ratchet readings, `node scripts/pm/check-skill-line-ratchet.mjs` Before, at `94924e01c`, and after, at `3eccd21a7`, the two lines for this file are identical: ```text ✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/decision-analysis.md: widest table row is 0 bytes (pin 0; headroom 0). ✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/decision-analysis.md is 50 lines (ceiling 50; headroom 0). ``` ## Gates: local subset at `3eccd21a7`, exit codes captured before any pipe The list comes from `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack`, run with no paths after the final commit. It reports 1 path, +2/−2, and 17 commands, the same 17 as the dispatch. | 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, see below) | | `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 | | `pnpm check:refd-timer-probe` | 0 | | `pnpm check:skill-frame-sync` | 0 | | `pnpm check:watch-hint-literal` | 0 | - **The doc-formula gate's first run measured nothing.** It exited 3, PREREQUISITE NOT MET, because `@objectstack/formula` and `@objectstack/lint` were not built. Both were built under `os-verify-lock` (`VERDICT command-exit 0`, served from the turbo cache), and the re-run exited 0. - **`--ran` reconciliation exited 0:** 17 derived, 17 run, 0 NOT-MEASURED, 0 UNRUN. - **Two runs beyond the derivation:** - `pnpm check:pm-settings-deny-roster`: 0. Its roster lives under `.claude`. - `pnpm check:skill-frame-freshness`: 0. This family runs only locally: 1/1 frame files are byte-identical to origin/main. - CI runs the full farm; its check-runs are the verdict for every family it runs. ## Acceptance notes - **The same never-flip rule also appears in `SKILL.md`, unedited here.** 〈升级与决策〉 L265 reads 「长远合理性权重恒 ≥50%:推荐以长远的读数领起,四轴冲突时其余各轴合起来投不翻它。」 and names no exception. The next line, L266, 「权重只排推荐不授权:读缩小特例与契约增生,⛔ 不背书投机扩张、不放行人工地板事。」, is the reading under which it agrees with this exception. `SKILL.md` is outside this card's file surface, so it is not edited. This is a read-only inference with no carrier: noted, not filed. - **The branch merged origin/main once before the PR opened** (`3eccd21a7`). The diff against main is this one file, +2/−2. - **No changeset.** `.claude/**` publishes nothing; the PR carries the `skip-changeset` label. ## 维护者速读(草稿) **改了什么**:决策分析模板(`decision-analysis.md`)有一条规则:②③④ 不翻推荐字母。现在点名它的唯一例外。如果①选出的方案是新增门禁,而卡上没有您点名的原话,就按轴④「新增门禁默认否」推荐「不加」。只改两行,文件行数不变(50 → 50),上限不动。 **为什么改**:同一情形下,两段章程文字给出相反的推荐。模板说②③④ 不改推荐字母;SKILL.md 轴④说没有您点名就荐「不加」。#23653 实测撞上过一次,当时席位按「两条冲突取更严」临场处理。改后文本本身一致,下一位写决策分析的席位不会再掉进这个坑。 **风险与代价(含回滚)**:纯内部文字,不发布,不碰运行时。为腾出字节,删了一句与选项表重复的「工作量恒逐选项列」;「每个选项都列工作量」的要求仍在选项表那一行和 SKILL.md 的决策卡行里。SKILL.md 里还有一句「其余各轴合起来投不翻它」没有点名例外,本 PR 未改它,靠它下一行的「⛔ 不背书投机扩张」可以读通。回滚 = revert 本 PR。 **席位意见**:(留空) **你要做的**:无需操作。这是 Tier S 改动,席位达档复核 PASS 后由席位入队落地。如果不同意这个例外的说法,在卡上回一句即可。 --- _Generated by [Claude Code](https://claude.ai/code/session_01VqGhCg9wdsBXPz54uAEWg7)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1b9e526 commit 3b46855

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
@@ -30,8 +30,8 @@
3030
- 推荐 + 回退 + 置信缺口:荐一项、给回退项、明说看不见什么;⛔ 不沿用他席推荐。
3131
- 推荐先只按①得出:终态句写两年后该能力的平台样子与主流平台建模,点名参照。
3232
- ②③④ 与工作量只调时序分期 ⛔ 不翻字母;契约迁就实现、分期半量 ⛔ 不作推荐。
33-
- 工作量恒逐选项列;①读数相近而工作量差 ≥3× 推荐须点名;翻字母只凭维护者卡上另裁。
34-
- 自检行「只看①选 X;②③④ 是否翻转:否 / 是(理由)」,答是不改字母。
33+
- ①读数相近而工作量差 ≥3× 推荐须点名;翻字母只凭维护者卡上另裁,唯④新增门禁例外。
34+
- 自检行「只看①选 X;②③④ 是否翻转:否 / 是(理由)」,答是不改字母,唯④新增门禁例外。
3535
- 裁后执行段:写明裁定之后怎么执行,让维护者只裁方向不背执行。
3636

3737
## 四棱卡面块固定形状

0 commit comments

Comments
 (0)