You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
pm-dispatch round-report template should carry the UNRECOGNISED rows (governed surface, mandatory fable) #9884
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.
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).
Claim: /pm-dispatchdomain:devx execution seat (bug-first, batched round).
Session: session_01DdCnBGcHeufjrq7drTD3wt
Branch: claude/issue-9884-round-report-unrecognised
Worktree: objectstack-issue-9884
Domain: domain:devx
Container & model: M, mode:subagent, model: claude-fable-5 — tier-1 mandatory-fable per the SKILL's own model-tiering rule, because the deliverable is inside .claude/skills/pm-dispatch/**. No downgrade taken; the quota exemption is not invoked.
File surface: the pm-dispatch round-report template under .claude/skills/pm-dispatch/**, and nothing else.
The governed-surface exception, stated explicitly
.claude/** is normally off-limits to a dispatched dev. This card is the exception: the governed text is the deliverable, so you may edit it. The price of that exception is absolute:
The PR stays draft. Do not flip it to ready.
The PR is never armed. Do not enable auto-merge.
It waits for a human merge. That is the rule working, not the task failing.
Scope, as the card fixes it
One line, plus at most one sentence of why. The template is read every round by every seat; it earns its length. The rationale lives on #9747 — do not restate it.
The instruction: the PM seat greps UNRECOGNISED over the round's gate logs and carries the rows through into the round report. The prefix is stable, so no new context is needed.
The NOT APPLICABLE row is the point — an absent row cannot be told apart from "nobody looked". A report with no UNRECOGNISED section reads as "nothing unrecognised" when it may mean "nobody grepped". That is the defect #9747 exists to fix, re-created one level up in the reporting layer.
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 converts the #9747 pilot into something it was scoped not to be.
Standing constraints
Never edit content/docs/releases/**.
Never git stash — refs/stash is shared across every worktree of a repo.
Worktree-first, before your first file edit.
If the template has moved or already carries such a line, say so and stop rather than inventing a second one — report premise_still_valid: false with what you found.
Report back to me. I will review it; I will not arm it.
Activity
claude commentedon Aug 21, 2026
Claim:
/pm-dispatchdomain:devx execution seat (bug-first, batched round).Session:
session_01DdCnBGcHeufjrq7drTD3wtBranch:
claude/issue-9884-round-report-unrecognisedWorktree:
objectstack-issue-9884Domain:
domain:devxContainer & model:
M,mode:subagent,model: claude-fable-5— tier-1 mandatory-fable per the SKILL's own model-tiering rule, because the deliverable is inside.claude/skills/pm-dispatch/**. No downgrade taken; the quota exemption is not invoked.File surface: the pm-dispatch round-report template under
.claude/skills/pm-dispatch/**, and nothing else.The governed-surface exception, stated explicitly
.claude/**is normally off-limits to a dispatched dev. This card is the exception: the governed text is the deliverable, so you may edit it. The price of that exception is absolute:Scope, as the card fixes it
One line, plus at most one sentence of why. The template is read every round by every seat; it earns its length. The rationale lives on #9747 — do not restate it.
The instruction: the PM seat greps
UNRECOGNISEDover the round's gate logs and carries the rows through into the round report. The prefix is stable, so no new context is needed.The
NOT APPLICABLErow is the point — an absent row cannot be told apart from "nobody looked". A report with noUNRECOGNISEDsection reads as "nothing unrecognised" when it may mean "nobody grepped". That is the defect #9747 exists to fix, re-created one level up in the reporting layer.Not in scope
⛔ Do not wire the
UNRECOGNISEDprefix into any gate or CI check. It is deliberately exit-0, visibility-only output; making it load-bearing converts the #9747 pilot into something it was scoped not to be.Standing constraints
content/docs/releases/**.git stash—refs/stashis shared across every worktree of a repo.premise_still_valid: falsewith what you found.Report back to me. I will review it; I will not arm it.
Generated by Claude Code