Skip to content

docs(pm-dispatch): write the two ruled main-red incident conventions into the protocol text - #12406

Merged
os-steve merged 1 commit into
mainfrom
claude/issue-12212-main-red-conventions
Aug 26, 2026
Merged

docs(pm-dispatch): write the two ruled main-red incident conventions into the protocol text#12406
os-steve merged 1 commit into
mainfrom
claude/issue-12212-main-red-conventions

Conversation

@os-steve

Copy link
Copy Markdown
Collaborator

Fixes#12212

What

Writes the two maintainer-ruled main-red incident conventions (2026-08-25, verbatim 「同意」) into the PM dispatch protocol text:

  1. p0 fix-forward queue-jump — a fix-forward PR for a main-red gate (p0, mechanical, verified root cause) may jump the merge queue (GitHub's queue supports jump-the-queue) or go to the maintainer for a break-glass one-line direct merge; waiting behind the queue the outage itself clogged is the named anti-pattern. Exception for MAIN-RED REPAIR ONLY — the queue-only landing rule is untouched for everything else.
  2. One anchor card per failing check — a main-red incident is anchored on ONE card named by the failing check; first filer wins, later discoverers comment their readings on the anchor instead of filing.

Where

  • .claude/skills/pm-dispatch/references/landing-operations.md §B gains the two-convention paragraph — the landing window owns 红/踢出处置, so the incident conventions sit next to those details. Each convention carries the ruling's date + verbatim 「同意」 per the skill's provenance discipline.
  • .claude/skills/pm-dispatch/SKILL.md — two line-level pointers at zero net lines, so both reader paths find the conventions: the queue-only landing paragraph (whose incident anecdote already ends at fix-forward) and the stop-bleed-and-file line (the one that previously instructed every discovering lane to file — exactly the duplicate-cards mode convention 2 retires) now point at landing-operations B.

Ratchet payment (zero headroom on both files)

Live readings hold: SKILL.md 1005/1005, landing-operations.md 80/80; table-row pins unchanged (no new table rows; all new/edited lines ≤120 bytes). The addition is paid by cutting genuinely redundant content — not by re-wrap alone — and every cut keeps another home:

cut (landing-operations.md)surviving home
os-regen driver "exit 0, silently drops one side" sentenceSKILL.md's own pointing bullet + AGENTS.md §11
four-step enumeration ①–④scripts/pm/os-regen-merge.sh (the named in-repo authority) + AGENTS.md §11; the ⛔ 禁 rebase / force-push clause stays in file
MERGE-state trap mechanism parenthetical (HEAD is the pre-merge tip / anchor stays authentic)os-dev.md 标准条款 packages/spec clause; the consequence (且全部门放行) and the 先-commit rule stay in file
job-conclusion parenthetical (completed: success)SKILL.md 放行认门禁 job 的结论 row
timer-discipline parenthetical (幂等开头、只写判据)SKILL.md 定时器文本纪律 row (the pointer 定点文本照定时器写法纪律 stays in file)
ready/auto-merge order sentence (draft-flip drops both)platform-readings draft-flip row + AGENTS.md §7; the green path 绿即转 ready + 挂 auto-merge stays in file
unknown lazy-read clause + enable-auto-merge verification detailplatform-readings mergeable_state row and the enable/quota/verification-sequence rows; pointers kept in file
§C context sentence + restated rationale (「几条测试会红」不够用)§C's own title + SKILL.md's 签名级预期红清单 summary row; the operative 逐条失败测试名 + 报错签名 stays in file

Net bytes: SKILL.md +136 (two pointers within existing line-length slack), landing-operations.md −100 — content volume flat-to-down while both conventions land.

Gates (run at cf1760c, the final commit)

  • pnpm check:pm-skill-ratchet — ✓ ".claude/skills/pm-dispatch/SKILL.md is 1005 lines (ceiling 1005; headroom 0)" · ✓ ".claude/skills/pm-dispatch/references/landing-operations.md is 80 lines (ceiling 80; headroom 0)"
  • pnpm check:pm-skill-id-lint — ✓ "22 file(s) clean (pattern /#[0-9]{3,}/g)" (the outage anecdote's card numbers stay on the card, not in the skill)
  • pnpm check:skill-frame-sync — ✓ "binding sentence present in all 4; 4 count mention(s) agree"
  • pnpm check:agent-test-spelling — ✓ 0 violations · pnpm check:doc-authoring — ✓ "390 files clean" · pnpm check:nul-bytes — ✓ · pnpm check:pm-governed-prose — ✓ "2 instruction surface(s) name all 5 registered governed surfaces" · pnpm check:pm-governed-merges — ✓ (self-test 159 assertions) · pnpm --filter @objectstack/lint run check:doc-formula-expressions — ✓ (after building its declared prerequisites @objectstack/formula and @objectstack/lint)
  • node scripts/pm/check-governed-queue-guard.mjs — NOT MEASURED locally (it reads GITHUB_EVENT_PATH; workflow-context only) — CI runs it with a real event
  • Gate list derived from the actual diff, not recalled: node scripts/pm/dispatch-gates.mjs (no paths) — 9 matched families, all covered above

Scope

Generated by Claude Code


Generated by Claude Code

…into the protocol text
Encodes the maintainer ruling (2026-08-25, verbatim 「同意」): a p0
fix-forward PR for a main-red gate may jump the merge queue (GitHub's queue
supports jump-the-queue) or go to the maintainer for a break-glass one-line
direct merge — an exception for MAIN-RED REPAIR ONLY, loosening nothing else;
and a main-red incident is anchored on ONE card named by the failing check —
first filer wins, later discoverers comment their readings on the anchor
instead of filing.
landing-operations.md §B gains the two-convention paragraph, each convention
carrying the ruling's date + verbatim quote. SKILL.md gains two line-level
pointers at zero net lines: the queue-only landing paragraph (whose incident
anecdote already named fix-forward) and the stop-bleed-and-file line both now
point at landing-operations B.
Both files sit at a shrink-only line ceiling with zero headroom (1005/1005,
80/80). The addition is paid by cutting genuinely redundant content, each cut
keeping another home: the os-regen driver's silent-drop sentence (home:
SKILL.md's own pointing bullet + AGENTS.md #11), the four-step enumeration
(home: os-regen-merge.sh, the named in-repo authority, + AGENTS.md #11), the
MERGE-state trap's mechanism parenthetical (home: os-dev.md standard terms),
the job-conclusion and timer-discipline parentheticals (homes: SKILL.md's own
rows), the ready/auto-merge order sentence (homes: platform-readings +
AGENTS.md #7), the mergeable_state lazy-read and enable-verification detail
(home: platform-readings rows), and section C's context sentence + restated
rationale (home: SKILL.md's signature-level summary row). Net bytes: SKILL.md
+136, landing-operations.md -100.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JANH3y7qe3MD8aLaLXci8N
@claudeclaudeBot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 26, 2026
@github-actionsgithub-actionsBot added size/s documentation Improvements or additions to documentation labels Aug 26, 2026
@os-steve
os-steve marked this pull request as ready for review August 26, 2026 02:05
@os-steve
os-steve added this pull request to the merge queueAug 26, 2026
Merged via the queue into main with commit babffa4Aug 26, 2026
29 checks passed
@os-steve
os-steve deleted the claude/issue-12212-main-red-conventions branch August 26, 2026 02:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/sskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants

@os-steve@claude