From 5e548689eac618d5aaa4823f92c8755d30cc18bf Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 16 Oct 2026 00:30:07 +0000 Subject: [PATCH] docs(os-dev): run the scoped platform-checklist check before push on an exported-symbol rename or removal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two rule lines in the dev contract's 〈本地验证范围〉 section, beside the trigger-shaped rules: a diff that renames or removes an exported symbol runs `node scripts/check-platform-checklist.mjs --changed-from origin/main` before push, and the verdict line is recorded verbatim in the report's `gates` field; the run is not a derived family, so `--commands` never lists it and `--ran` reports it as outside the derivation, not an error. The os-dev.md ceiling moves 402 → 404 as an ordinary ruled raise (the ruling of record that orders the text, under the ratchet header's ruled-raise clause); the comment block above the row carries the measurement: the ruled content does not fit one 120-byte line (tightest one-line spelling 125 B), and the two lines land at 119 B and 119 B. Co-authored-by: Claude Claude-Session: https://claude.ai/code/session_01VqGhCg9wdsBXPz54uAEWg7 --- .claude/agents/os-dev.md | 2 ++ scripts/pm/check-skill-line-ratchet.mjs | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.claude/agents/os-dev.md b/.claude/agents/os-dev.md index 366a8202b0e..370e2685460 100644 --- a/.claude/agents/os-dev.md +++ b/.claude/agents/os-dev.md @@ -139,6 +139,8 @@ model: opus - 仅 diff 改该项目测试或派生清单点名它时本地跑,否则 `deviations` 写明;席位 ACCEPT 读其 CI。 - ③ 读到改动文件的门禁族 = `--commands` 派生清单(按 diff 收窄);派发词清单与全农场归 CI。 - 新 fake engine ⇒ `check:engine-double-contract`;新错误码 ⇒ `check:error-code-casing`。 +- 改名或删除导出符号 ⇒ push 前跑 `node scripts/check-platform-checklist.mjs --changed-from origin/main`。 +- 判定行原样记 `gates`;它非派生族,不在 `--commands` 清单,`--ran` 只把它列为派生外、不报错。 - ④ 报告 `gates`:CI 跑的每族引 PR check-runs(名+结论),⛔ 不本地重跑;`--ran` 只对账本地子集。 - 推导用 `node scripts/pm/dispatch-gates.mjs --commands` 不传路径,脚本自己从 merge-base 取变更集。 - 变更集含未提交与未跟踪;跑完把已跑清单交给 `--ran ` 对账,未跑的本地族它会点名。 diff --git a/scripts/pm/check-skill-line-ratchet.mjs b/scripts/pm/check-skill-line-ratchet.mjs index 86eba3bf456..e63bec91df6 100644 --- a/scripts/pm/check-skill-line-ratchet.mjs +++ b/scripts/pm/check-skill-line-ratchet.mjs @@ -1432,7 +1432,27 @@ export const CEILINGS = new Map([ // convention (lowering is always legitimate). Lowered 403 → 402 when the // retired contract-review label's reporting line left (ruling record // 5770886272 on #19061). - ['.claude/agents/os-dev.md', 402], + // Raised 402 → 404 by the scoped-checklist ruling — an ORDINARY raise, ⛔ not + // a cross-file move (card #23665). The text is two rule lines beside the + // trigger-shaped rules in 〈本地验证范围〉: a PR that renames or removes an + // exported symbol runs the scoped platform-checklist check on its changed + // files before push (`node scripts/check-platform-checklist.mjs + // --changed-from origin/main`, the mode's own spelling) and records the + // verdict line verbatim in its report's `gates` field; the run is not a + // derived family — `--commands` never lists it, and `--ran` reports it as + // outside the derivation, not an error. Ordered by ruling record 6190922830 + // on #23653 (letter C, item 3); maintainer, 2026-10-15, verbatim and + // untranslated: 「C (推荐)」. The ruling sized the text as one line; measured, + // the ruled content does not fit one under the 120-byte cap: the command + // alone is 70 B in its code span, the tightest one-line spelling carrying + // trigger, command and the `gates` clause is 125 B, and the two lines land + // at 119 B and 119 B. Authorized under ruling record 6184799323 on #23606 + // (letter B, item 1; maintainer 「同意」): a ruling of record that orders text + // into a ratcheted file raises that file's ceiling by the measured lines the + // text needs, the ruling id and the delta quoted in the raising PR's body. + // Not a CROSS_FILE_MOVES destination, so no `ruledRaises` record applies. + // Landed count, headroom 0, same convention. + ['.claude/agents/os-dev.md', 404], // #9473: the other four `.claude/skills/` are read in full by the sessions // that use them too — the erosion mechanism the ratchet exists to stop // isn't specific to the pm-dispatch surface. Set at current counts on