docs(pm-dispatch): carry UNRECOGNISED gate rows into the round report - #10837
docs(pm-dispatch): carry UNRECOGNISED gate rows into the round report#10837os-zhuang wants to merge 1 commit into
Conversation
The round-report template now instructs the PM seat to grep UNRECOGNISED over the round's gate logs and carry the rows through verbatim, NOT APPLICABLE rows included — an absent row cannot be told apart from "nobody looked" (#9747 ruling, shipped by PR #9875). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DdCnBGcHeufjrq7drTD3wt
|
Fixes #9884
What
Adds one item to the pm-dispatch round-report template (
.claude/skills/pm-dispatch/SKILL.md, section 轮次报告与节奏): the PM seat grepsUNRECOGNISEDover the round's gate logs and carries the rows through verbatim —NOT APPLICABLErows included — with one clause of why: an absent row cannot be told apart from "nobody looked". The full rationale lives on #9747 (the ruling) and PR #9875 (which shipped the stable, exit-0UNRECOGNISEDprefix); this PR deliberately does not restate it. #9747 remains open and is not addressed here.Deliberately not wired into any gate or CI check: the prefix is visibility-only output by design, and making it load-bearing is explicitly out of this card's scope.
Shape of the diff
.claude/skills/pm-dispatch/SKILL.md. Nothing else is touched.pnpm check:pm-skill-ratchet) pins this file at a 682-line ceiling with zero headroom, raising a ceiling requires a maintainer ruling quoted in the PR, and the ratchet script is outside this card's allowed file surface — so the file stays at exactly 682 lines. Long lines are precedented in this file (up to 1384 chars).Governed surface
.claude/**is a governed surface (AGENTS.md Prime Directive 14). This PR stays draft, is never armed, and waits for a human merge — that is the rule working, not the task stalling.Gates — all run at
5d391775e9(this PR's head), union derived withnode scripts/pm/dispatch-gates.mjs(no paths passed; 7 matched families) pluscheck:nul-bytespnpm check:nul-bytescheck-nul-bytes: OK (scanned 6254 text file(s) -- 6254 tracked, 0 untracked-not-ignored; skipped 5 binary; no raw ASCII control bytes).pnpm check:doc-authoring✓ doc authoring guard: 389 files clean — no bare metadata literals.pnpm --filter @objectstack/lint run check:doc-formula-expressions✓ check:doc-formula-expressions: 22 record-scoped formula example(s) across 416 files / 1443 TS blocks judged clean by @objectstack/formula.pnpm check:pm-governed-merges✓ check-governed-merges --self-test: 90 assertions (…)pnpm check:pm-governed-prose✓ check-governed-prose: 2 instruction surface(s) name all 5 registered governed surfaces (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md) and claim no others.pnpm check:pm-skill-id-lint✓ check-skill-id-lint: 17 file(s) clean (pattern /#[0-9]{3,}/g).pnpm check:pm-skill-ratchet✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 682 lines (ceiling 682; headroom 0).pnpm check:skill-frame-sync✓ check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 filesAn earlier draft of this change added the item as two wrapped lines;
check:pm-skill-ratchetwent red at 684/682, which is what forced the single-line form above. Exit codes were captured with redirect-then-capture, never through a pipe.Changeset
skip-changeset: this PR edits internal agent tooling under.claude/only — nothing underpackages/**changes, nothing publishes to npm.Generated by Claude Code