Skip to content
1 change: 1 addition & 0 deletions .claude/skills/pm-dispatch/references/rest-channel.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
- ✓ `origin/main` 合进 PR head:中继 op `pr_update_branch`(`pull` + 40 位 `expected_head_sha`),真合并提交。
- 挂子卡走中继 op `sub_issue_add`/`sub_issue_remove`(`issue` 父号,`sub_issue` 子号),回读父列表。
- 公告经中继 `advisory_create`(首选)等四操作,规则住 `security-findings.md`;发布归维护者。
- 读公告经中继 `advisory_read`:席位进程一次性密钥,密文回传;`--reveal` 才印明文到 stdout。
- ✓ 落地经中继 `node scripts/pm/fleet-write/dispatch.mjs --repo O/N --actions-file F`;`--via dispatch` 同载。
- ✓ 启动 run 走 op `workflow_dispatch`:解锁物是白名单 run 才启;入表只经 workflow 自己的 PR。
- F = `[{"op":"workflow_dispatch","workflow":"release.yml","ref":"main","inputs":{"refresh_version_pr":true}}]`。
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/pm-dispatch/references/security-findings.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

- 私卡 = 受影响仓上一份未发布的安全公告,只有管理员、安全经理与受邀协作者可见。
- 首选中继 `advisory_create` 建草稿公告,再 `advisory_collaborators_add` 带具名账号进公告。
- 读公告只走中继 `advisory_read`(席位账号读被拒):一次性密钥只在席位进程,只回密文。
- `advisory_report` 只留给 App 无公告写权的仓:GitHub 按账号限每日新私报,全队共一个 App。
- ⛔ 席位永不以自身账号私报或写公告:GitHub 写只走中继,以 App 身份;发布归维护者。
- 两操作皆被拒 ⇒ 会话专递(选 A):机制只在会话里交维护者,由其建草稿,⛔ 不换账号重发。
Expand Down
12 changes: 10 additions & 2 deletions scripts/pm/check-skill-line-ratchet.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1195,7 +1195,11 @@ export const CEILINGS = new Map([
// quotes the maintainer verbatim — 「可以,按方案改中继,能发这个操作的账号名单我稍后点名。」 and
// 「你写清楚issue就可以,让车道开发」 — names this file and the one line, and confirms the raise the seat stated in
// its comment 6572738609. Measured delta +1 (80 → 81 lines); landed count, headroom 0.
['.claude/skills/pm-dispatch/references/rest-channel.md', 81],
// 81 → 82 (#29420): one line naming the sealed advisory read, `advisory_read`. The ruling of record is that card's
// body, filed under the maintainer's verbatim 「按一次性密钥立卡」 and 「并派发」, which names this file and "one line
// naming the op, with the ratchet row raised by the measured delta only". Measured delta +1 (81 → 82 lines); landed
// count, headroom 0.
['.claude/skills/pm-dispatch/references/rest-channel.md', 82],
// Lowered 84 → 77 by the rules-only rewrite of the seven core references
// (maintainer ruling: provenance narratives, incident post-mortems and rationale
// tails leave the corpus; one rule per ≤120-byte line, no rule already stated in
Expand Down Expand Up @@ -1300,7 +1304,11 @@ export const CEILINGS = new Map([
// untranslated 「同意方案,选 B,立卡」; the raises below cite it as "#29111".
// A NEW file, so an added row that funds nothing — set at the landed line
// count, headroom 0, same convention as above.
['.claude/skills/pm-dispatch/references/security-findings.md', 55],
// 55 → 56 (#29420): one line pointing a seat's read of an advisory at the sealed relay read, `advisory_read`, where
// §3 had it read under its own account (a cloud seat's account is refused). The ruling of record is that card's
// body, filed under the maintainer's verbatim 「按一次性密钥立卡」 and 「并派发」, which names this file "by the
// measured delta only". Measured delta +1 (55 → 56 lines); landed count, headroom 0.
['.claude/skills/pm-dispatch/references/security-findings.md', 56],
['.claude/skills/pm-dispatch/references/external-contributions.md', 22],
['.claude/skills/pm-dispatch/references/reading-discipline.md', 37],
// Lowered 51 → 47 by #25712 item 4: objectui stopped being a sister repo, so
Expand Down
Loading
Loading