Repository navigation
Commit 0b6f8e1
docs(pm): landing pre-check ③ points at the by-design-red clause (#18450)
Fixes #18404
Landing pre-check ③ in
`.claude/skills/pm-dispatch/references/contract-review.md` listed
exactly one exception and carried no pointer to the three-condition
「按设计而红」 clause that `SKILL.md` and `references/core-rules.md` already
state. This re-keys that one row in place so it names the clause by
pointer. The clause's single home is unchanged — this PR does **not**
restate its three conditions, and does **not** touch `SKILL.md` or
`core-rules.md`.
The card's central premise ("no such exception exists in the protocol")
was refuted in triage comment 5695296976: the clause exists, spelled
「按设计而红」, which the card's 「按设计红」 / `by-design` probe missed. What
survived — and what this PR implements — is the smaller, real defect: ③
carried no pointer to it, so the two 细则 disagreed on their face.
## The row, before and after
Before (`contract-review.md:45`, **110 bytes**):
```text
- ③ PR 全部 check 全绿,⛔ 非 required 子集;例外:merge-base 上同名同失败签名的红不计。
```
After (**118 bytes**, cap 120):
```text
- ③ PR check 全绿,⛔ 非 required 子集;例外:merge-base 同签名的红不计、按设计而红见 SKILL.md。
```
Paid by deletion inside the row, per the ratchet (60 / 60, headroom 0):
- 「全部」 drops — 「全绿」 already carries the quantifier, and `SKILL.md`
states the enqueue bar in full (「入队资格 = 每个 check 为 success 或预期 skip …⛔
不是 required 子集」).
- 「上同名同失败签名」 narrows to 「同签名」 — the very next row of the same file
defines it: 「签名 = 失败步 + 首错行,读 base check runs 的 API ⛔ 不凭口述」.
- Both exceptions and the 「⛔ 非 required 子集」 discipline remain readable
in the row. Neither is weakened.
The PM's suggested wording measured 139 bytes and the nearest variants
that kept 「全部」 measured 125 bytes, both over the 120-byte cap; 118 bytes
is the widest spelling found that keeps the merge-base exception with
its 「红」 intact.
## 维护者速读(草稿)
**改了什么** — PM 技能事实层一行:落地前检 ③ 原来只写了一条例外(merge-base 上同签名的红不计),现在加一个指针,指向
`SKILL.md` 里已经存在的「按设计而红」三条款,作为 ③ 的第二条例外。三条款本身不复述,仍然只住在 `SKILL.md` +
`core-rules.md`。整个 PR 只动这一行。
**为什么改** — `scripts/check-empty-changeset.mjs`
会**故意**制造永久红(它自己写着「staying red is what puts the decision in front of a
person instead of routing around it」),所以「带一条按设计红 +
维护者确认」是个会反复出现的形态。协议里本来就有处置它的三条款,但读 ③ 的人看不到指针:要么误以为 ③
有个通用逃生口,要么把一个已被正确确认的 PR 卡住。这次把两条细则对齐。
**风险与代价(含回滚)** — 风险低:纯文本,不发布任何东西,不改任何门禁行为。唯一的实质取舍是为了塞进 120
字节上限做的两处删减(「全部」与「上同名同失败签名」),两处的语义都在同文件下一行或 `SKILL.md` 里逐字保留。回滚 = revert
这一个 commit,文件回到 110 字节的原行,行数不变(60 / 60)。
**席位意见** — (留空,待席位复核填写)
**你要做的** — 读一遍上面 before / after 两行,确认 118 字节的新拼写没有削弱 ③ 的 「⛔ 非 required
子集」 纪律,也没有把三条款搬出 `SKILL.md`。
## Acceptance notes
- Scope: one row of one file. ⛔ No other row of `contract-review.md`; ⛔
no change to `SKILL.md`, `core-rules.md` or `review-checklist.md` (the
last already says 「第三种情形见 SKILL.md」).
- Pointer is by NAME (the clause's own term 「按设计而红」 plus the file), ⛔
not by line number — line numbers are readings that drift.
- Ratchet: `pnpm check:pm-skill-ratchet` ✓
「.claude/skills/pm-dispatch/references/contract-review.md is 60 lines
(ceiling 60; headroom 0)」. Row 118 bytes against the 120-byte per-line
cap.
- Changeset: `skip-changeset`. AGENTS.md Post-Task Checklist step 3,
verbatim: 「⛔ **never** `skip-changeset`: that label is for a diff that
publishes nothing from any released package.」 `.claude/**` is not
shipped by any package's `files[]`, so this diff publishes nothing and
the label is exactly what step 3 permits.
- Gates: all 15 families derived by `node scripts/pm/dispatch-gates.mjs
--commands` were run in the foreground at head `d8636f54`; 15 / 15 exit
0, reconciled with `--ran` (「15 derived famil(ies) accounted for — 15
run, 0 NOT-MEASURED (a DERIVED zero)」). `pnpm check:pm-governed-prose`
also run: exit 0. `pnpm check:doc-formula-expressions` first exited 3
(PREREQUISITE NOT MET — unbuilt workspace packages, the gate's own
words: 「Nothing was measured」); after `turbo run build
--filter=@objectstack/formula --filter=@objectstack/lint` it exits 0.
- CI convergence is the reviewing seat's reading, not this PR's claim.
---
_Generated by [Claude
Code](https://claude.ai/code/session_01HPfcjvF23QBoBj7P47DDxs)_
Co-authored-by: Claude <noreply@anthropic.com>1 parent c2815a2 commit 0b6f8e1
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
0 commit comments