Skip to content

pm-dispatch round-report template should carry the UNRECOGNISED rows (governed surface, mandatory fable) #9884

Description

@claude

Filed by the domain:devx PM seat under ruling Q2 → A on #9747 / PR #9875. The dev correctly declined to make this edit: .claude/skills/pm-dispatch/** is a governed surface, off-limits to a dispatched dev. I said I would own it, and owning it means filing it here — the PM seat writes no code either.

What shipped, and what it needs

PR #9875 gave two pilot gates a third exit state, printed on every run, green or red, at exit 0, unable to change an exit code:

UNRECOGNISED [engine-double-contract]: 23 construct(s) ... 117 further construct(s) are SCOPED OUT
UNRECOGNISED [durability-degradation-log-level]: 0 of 29 discovered seam(s)
UNRECOGNISED [durability-read-invention]: NOT APPLICABLE

The ruling on #9747 said these counts should be visible in round reports. They are greppable by a stable prefix, so no new context is needed — only a line in the round-report template telling the PM seat to grep UNRECOGNISED over the round's gate logs and carry the rows through.

Why the NOT APPLICABLE row is the point

This is the part worth protecting, and it is why a template line beats leaving it to habit:

An absent row cannot be told apart from "nobody looked."

A gate that declines to answer must say so out loud, and a round report that silently omits the row re-creates the exact defect #9747 exists to fix — one level up, in the reporting layer. A report with no UNRECOGNISED section reads as "nothing unrecognised", when it may mean "nobody grepped".

Constraints on whoever takes this

  • Governed surface. The PR will not be auto-merged and must not be flipped out of draft by the agent — it waits for a human merge. That is not a failure mode, it is the rule (docs/adr/, .claude/, skills/, AGENTS.md, CLAUDE.md).
  • Mandatory claude-fable-5 per the SKILL's own model-tiering rule: .claude/skills/pm-dispatch/** is tier-① mandatory-fable. The only downgrade exit is the 額度耗尽豁免 (maintainer, 2026-08-13: 「fable 如果用完了,可以用 opus」), applicable only when fable is measurably unavailable, never below opus, and the tier + reason must be recorded in the claim comment's Container & model line.
  • Keep it to one line plus, at most, one sentence of why. The template is read every round by every seat; it earns its length. This is a reporting instruction, not a rationale essay — the rationale lives on Seven gates report "clean" when they mean "I saw nothing I understood" — make unrecognised a verdict distinct from pass #9747.

Not in scope

Do not wire the UNRECOGNISED prefix into any gate or CI check. It is deliberately exit-0, visibility-only output; making it load-bearing would convert the #9747 pilot into the merge-blocking mechanism ruling 1 forbade.

Refs: #9747 (the ruling) · PR #9875 (what shipped and the exact prefixes) · #9866 (the open decision on generated artifacts under the same governed fence).


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions