Skip to content

Commit 1685cd5

Browse files
pm-dispatch filing-gate: a protocol change's consumer follow-up is p1 only when its absence breaks users, and rides the consumer's first-release card; ceiling 61 → 64 by ruling (#23465)
Fixes #23431 Clause-②: no This is the second half of the protocol-first grading rule. It adds the consumer-follow-up principle from the maintainer's scope amendment (comment 6164667370, item 2, 「同意 A + C」) to the same 〈定级判据〉 rule that the first half (#23449, `Part of`, now on `main` as `08ea7e368e`) opened. The ceiling it needs is ruled. Related cards, none of them ended by this PR: #6015 (the triage rule records), #23396 and #23417 (the first relay leg on this file), #23449 (this card's first half), #23423 and #23445 (sibling skills-lane cards on neighbouring text). ## What changes - `.claude/skills/pm-dispatch/references/filing-gate.md`, section 〈定级判据(北极星「优先级」的执行说明)〉: three lines directly after the release-side line (N4), new L40–L42. 61 → 64 lines. Nothing else in the file moves. - `scripts/pm/check-skill-line-ratchet.mjs`: the `CEILINGS` row for that file, 61 → 64, with the ruling recorded beside it. No other row and no logic changes. ## The rulings, verbatim - The order (filing gate ③, quoted on the card): 「spec 车道待办任务中,哪些是会导致元数据协议变更的,这一类应该提高优先级」 · 「我的意思是元数据的协议变更应该优先处理,避免每个版本应用都要做复杂的升级」 · 「协议变更还经常会影响 objectui 项目的开发,相关任务经常等 spec 发版本」 · 「所有元数据协议变更一律 p1,是否建议修改分诊skills」 · 「立卡,规则扩到所有车道,REST 收窄也算」 - First ceiling raise, 58 → 61, which landed with #23449: 「23431 同意。」 (maintainer, live chat, 2026-10-14). Ruling record: comment 6164802336 on the card. - Second ceiling raise, 61 → 64, this PR. The ratchet header requires the maintainer's ruling quoted in the raising PR: 「23431 同意」 (maintainer, live chat, 2026-10-14), adopting letter A. The principle is written into the same rule, funded by an ordinary raise. Ruling record: comment 6166489573 on the card. - The scope amendment (comment 6164667370): item 1, 「原则不要写具体的版本号,比如后面我们要开发 v19的时候还得改原则」, is honoured. The three lines say 「新大版」 and name no version. Item 2, 「同意 A + C」, is what this PR writes. ## Before / after — `filing-gate.md` Before (N4, then the first checklist-triad line, adjacent on `08ea7e368e`): ```text - 分诊轮的维护者清单点名等下个 `next.N` 的 objectui 卡数,堆积即请切版。 - 清单项三态 ①:项会 fail ⇒ 断,继承其 `priority`;⛔「有人在等」不是定级判据。 ``` After: the three lines sit between them (bytes against the 120-byte cap): ```text - 分诊轮的维护者清单点名等下个 `next.N` 的 objectui 卡数,堆积即请切版。 - 此类的消费方跟进卡(objectui 类型镜像、渲染器、Studio)缺它即坏用户才 p1,余者守本档。 - 坏用户 = 设计器系统性写出协议拒收的元数据,或协议声明的块/键渲染为空;纯镜像不算。 - 此类的跟进卡全部列入消费方新大版的首发卡,赶在该版发布前落地。 - 清单项三态 ①:项会 fail ⇒ 断,继承其 `priority`;⛔「有人在等」不是定级判据。 ``` (116 / 119 / 93 B.) Content map: - Option A, the p1 criterion and the rest keeping their grade: the first line. - The two "breaks users" conditions, as the amendment words them (the designer systematically writes metadata the protocol refuses; a protocol-declared block or key renders nothing): the second line. - Option C, every follow-up listed on the consumer's first-release card for the new major: the third line. The amendment's two examples of a follow-up that keeps its grade (a pure mirror, a type gap) do not both fit. The second line carries 「纯镜像不算」, which ties back to the first line's 「类型镜像」; with both examples the line measures 128–134 B. No two-line spelling exists: 328 B of rule content against two lines' 240. ## The ceiling row — `scripts/pm/check-skill-line-ratchet.mjs` ```diff @@ -1251,7 +1251,17 @@ export const CEILINGS = new Map([ // rule beside it), so +4 −1 leaves +3. This file is not a CROSS_FILE_MOVES // destination, so no `ruledRaises` record applies. Landed count, headroom 0, // same convention. - ['.claude/skills/pm-dispatch/references/filing-gate.md', 61], + // Raised 61 → 64 by the same rule's second half — an ORDINARY raise + // (maintainer, 2026-10-14, live chat, verbatim and untranslated: 「23431 同意」, + // adopting letter A on the consumer-follow-up principle; ruling record + // 6166489573 on #23431). A consumer repo's follow-up card of a protocol change + // is p1 only when its absence breaks users, and every such follow-up is listed + // on the consumer's first-release card for the new major: three rule lines at + // their measured floor (116/119/93 bytes; no two-line spelling fits the + // 120-byte cap), with no restatement left in the section to pay with. Not a + // CROSS_FILE_MOVES destination, so no `ruledRaises` record applies. Landed + // count, headroom 0, same convention. + ['.claude/skills/pm-dispatch/references/filing-gate.md', 64], // The app-vs-platform boundary — the deciding question (could this be written // from the metadata alone, with no knowledge of this company?), the publication // test (one consumer is a use, two is a contract) and the two anti-patterns. ``` An ordinary raise, recorded as a comment beside the row in the map's "Raised X → Y" convention, the same reading as the 58 → 61 raise. `ruledRaises` records belong to a `CROSS_FILE_MOVES` destination, and `filing-gate.md` is not one. No other row moves. ## Merge reading This branch was cut fresh from `main` `08ea7e368e`, which carries #23449, so no merge was needed. The diff is the three lines and the one row; it touches no line in 〈立卡门〉 or any line that #23449 landed. ## Gates — exit codes captured before any pipe - Derived: `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` on this tree, which is current with `main` (no stale-tree warning). 36 commands, the same list as the first half. - 35 run in the foreground, exit 0 each: `check-ci-filter-parity`; `check-closing-keyword-parity`; `check-closing-keyword-parity --self-test`; `check-comment-mask-corpus`; `check-declaration-mirrors`; `check-declaration-mirrors --self-test`; `check-scripts-symbol-anchors`; `check-scripts-symbol-anchors --self-test`; `check-self-test-wired`; `check-self-test-wired --self-test`; `check-self-test-workflow-commands`; `check-self-test-workflow-commands --self-test`; `check-whole-set-label-write`; `check-whole-set-label-write --self-test`; `pm/bare-root-worklist --self-test`; `pm/check-harness-current --self-test`; `--filter @objectstack/lint run check:doc-formula-expressions`; `check:agent-test-spelling`; `check:bash32-floor`; `check:cli-command-ids`; `check:cross-package-test-inputs`; `check:doc-authoring`; `check:driver-memory-census`; `check:entry-guard`; `check:gitlink-declared`; `check:nul-bytes`; `check:parse-guard`; `check:pm-governed-merges`; `check:pm-skill-id-lint`; `check:pm-skill-ratchet`; `check:pnpm-filter-targets`; `check:ratchet-remedy-authority`; `check:refd-timer-probe`; `check:skill-frame-sync`; `check:watch-hint-literal`. - `check:doc-formula-expressions` ran after its prerequisite build under `os-verify-lock` (VERDICT command-exit 0). - `check:pm-skill-ratchet` printed `filing-gate.md is 64 lines (ceiling 64; headroom 0)`; its self-test passed 157 cases. - `check:pm-dispatch-gates` (the battery) ran detached and was read after it exited: exit 0, fast tier 1841 cases. - `--ran` reconciliation: 36 derived, 36 run, 0 NOT-MEASURED. The zero is derived: every exit was recorded, and none is 3. - Acceptance-named, individually: `pnpm -s check:pm-skill-ratchet` exit 0 (64/64); `node scripts/pm/check-skill-line-ratchet.mjs --self-test` exit 0; `check:pm-skill-id-lint` exit 0; `check:pm-governed-prose` exit 0. - The edited script's readers by name: `check:merged-result` 0, `check-published-list-mirrors` 0, `check-skills-token-ratchet` 0. No `*.test.*` names the script. - Scans over the diff found no control bytes, no model identifiers and no version number. - No ablation: text and a data row. ## Acceptance notes - Four other texts can still cap the class. They are outside this card's surface, noted under #23449 and not filed (carrier: `domain:skills` seat): `triage-duties.md` L90–L92 (the binary `target:` criterion), `docs/NORTH-STAR.md` 〈阶段姿态〉 (migration windows default p3), `triage-duties.md` 「无则关」, and `SKILL.md` L213. - CI check-runs are read by the seat at landing. This body was written before CI concluded. ## 维护者速读(草稿) **改了什么**:在分诊定级手册「定级判据」一节,上次加的四行规则后面再加三行。协议变更引出的消费方跟进卡(objectui 的类型镜像、渲染器、Studio)只有「缺了它用户就坏」时才 p1:设计器会成批写出协议拒收的元数据,或协议声明的块/键渲染为空。纯镜像之类的跟进卡保持原档。所有跟进卡都挂到消费方新大版的首发卡上,赶在那一版发布前落地。手册行数上限按你的第二个「23431 同意」从 61 抬到 64。 **为什么改**:你同意了 A + C。协议改了以后,objectui 等消费方的跟进不能一律抢 p1,只有真会坏用户的才抢;其余的也不能掉队,要随新大版首发一起落地。这样规则一处写全。上半部分(四行)已随上一个 PR 合入,这次补齐,合并后这张卡关闭。 **风险与代价(含回滚)**:只改给 agent 读的内部手册和一行行数上限,不碰产品代码与对外契约。代价是手册再多 3 行,每次分诊定级都要读。回滚就是撤销本 PR,上限回到 61,上半部分不受影响。 **席位意见**: **你要做的**:看一眼这三行是否符合你「同意 A + C」的原意,尤其是「纯镜像不算」这个例子是否够用(另一个例子「类型缺口」放不进 120 字节一行)。 --- _Generated by [Claude Code](https://claude.ai/code/session_013zGKMG1cRedVzWtqGGGZW9)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent b60eb78 commit 1685cd5

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

‎.claude/skills/pm-dispatch/references/filing-gate.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
- REST/数据门收窄亦算;措辞、文档、账本、CLI 旗、lint/verify 导出、门不变的服务行为不算。
3838
- 此类任何车道皆 p1 + 在研大版 `target:`,可退役键的条件卡同档;维护者裁决,本节余条不压。
3939
- 分诊轮的维护者清单点名等下个 `next.N` 的 objectui 卡数,堆积即请切版。
40+
- 此类的消费方跟进卡(objectui 类型镜像、渲染器、Studio)缺它即坏用户才 p1,余者守本档。
41+
- 坏用户 = 设计器系统性写出协议拒收的元数据,或协议声明的块/键渲染为空;纯镜像不算。
42+
- 此类的跟进卡全部列入消费方新大版的首发卡,赶在该版发布前落地。
4043
- 清单项三态 ①:项会 fail ⇒ 断,继承其 `priority`;⛔「有人在等」不是定级判据。
4144
- ② 项的标题/场景断言该能力而 steps 到不了那条路径 ⇒ 补步骤并继承该项档 ⛔ 不降 p3。
4245
- ③ 无项断言该能力 ⇒ 缺项补账本、北极星第 2 条 p3;②最常见,`area:*` 继承后成规模。

‎scripts/pm/check-skill-line-ratchet.mjs‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1251,7 +1251,17 @@ export const CEILINGS = new Map([
12511251
// rule beside it), so +4 −1 leaves +3. This file is not a CROSS_FILE_MOVES
12521252
// destination, so no `ruledRaises` record applies. Landed count, headroom 0,
12531253
// same convention.
1254-
['.claude/skills/pm-dispatch/references/filing-gate.md', 61],
1254+
// Raised 61 → 64 by the same rule's second half — an ORDINARY raise
1255+
// (maintainer, 2026-10-14, live chat, verbatim and untranslated: 「23431 同意」,
1256+
// adopting letter A on the consumer-follow-up principle; ruling record
1257+
// 6166489573 on #23431). A consumer repo's follow-up card of a protocol change
1258+
// is p1 only when its absence breaks users, and every such follow-up is listed
1259+
// on the consumer's first-release card for the new major: three rule lines at
1260+
// their measured floor (116/119/93 bytes; no two-line spelling fits the
1261+
// 120-byte cap), with no restatement left in the section to pay with. Not a
1262+
// CROSS_FILE_MOVES destination, so no `ruledRaises` record applies. Landed
1263+
// count, headroom 0, same convention.
1264+
['.claude/skills/pm-dispatch/references/filing-gate.md', 64],
12551265
// The app-vs-platform boundary — the deciding question (could this be written
12561266
// from the metadata alone, with no knowledge of this company?), the publication
12571267
// test (one consumer is a use, two is a contract) and the two anti-patterns.

0 commit comments

Comments
 (0)