TRG-1 — the triage prompt mirror still names the OWNER as the gate-holder and omits the new dismissed/ sweep duty, four days before that sweep is the mechanism discharging three separate handovers
status: dismissed 2026-10-08 (panel run 37) · class: prompt rot (the class CLAUDE.md warns about by name) · effort ~0.1 pd but not executable by anyone in the loop · raised and killed in the same run
Plain-language summary. Each cloud routine has a prompt stored outside the repository (on claude.ai), and the repository keeps a copy — a "mirror" — so drift between the two is visible. On 2026-10-07 the owner delegated both of his gates to a new agent, the steward, and rewrote the triage routine's procedure file to match. The triage prompt was not rewritten. It still calls the research-queue approval "THE OWNER'S", still describes the owner's gate as the thing to keep cheap, and — the part that actually matters — its list of "the work" does not mention the new duty to sweep the dismissed items for reopen conditions. We looked hard at this and concluded it is not worth a queue slot.
Why it is not a defect of substance
The one dangerous leg is mitigated in CODE, not prose. The stale prompt
still says "Push message.md to branch outbox/triage — the relay mails it to
the operator", while the owner's instruction is that nothing but the Friday
digest is mailed. That cannot cause an unwanted email: the gate is in
scripts/outbox_backlog.py:71-72,147-166 (DEFAULT_EMAIL_POLICY = "weekly_digest_only", withheld with a printed notice), and
.github/workflows/routine-outbox.yml's header states the design intent
verbatim — the policy is "loaded from origin/main at run time — so it governs
every outbox branch, including those still running an older copy of THIS
file." That is defensive design working exactly as intended, and it is the
strongest reason this row dies.
The prompt's own first instruction routes past its stale body.
ops/prompts/triage.md:25 reads "Read ops/QUEUE_TRIAGE.md FIRST and follow
it exactly", and that file carries both the global redirect
(ops/QUEUE_TRIAGE.md:9: "Wherever this file says the owner approves, merges
or decides a queue item, read the steward") and the new sweep itself
(:94-102). The prompt header also states "If live and mirror disagree, the
MIRROR's rails win and the disagreement is a finding" — so an obedient triage
reaches the current text regardless. The actor drift (owner → steward) is
therefore covered; only the sweep is an omission rather than a
contradiction, because a routine following an inlined enumeration has nothing
to redirect.
And the fix is unreachable from inside the loop. The live prompt lives in
the claude.ai control plane. ops/STEWARD.md §0 limit 9 forbids the steward
from creating, editing, running or deleting any routine, its own included;
^ops/ is in scripts/automerge_guard.py DENY_PATTERNS, so the mirror edit
needs a human merge too. Only the owner or an interactive session can land
this. Spending a queue slot (and, at 12/12, an eviction) on something nobody
in the loop can execute is implementation fantasy — the adversarial
reviewer's wording, and it is right.
What we are NOT claiming
That the omission is harmless in principle. The 14-day dismissed sweep added at
ops/QUEUE_TRIAGE.md:94-102 is the mechanism that discharges three separate
run-36 handovers at once (gap-1 maturing 2026-10-19; cut-1's legs (a)/(d) at
2026-10-16 and 10-19/20; and HIRE-1's previously actor-less auto-reopen). If
the one duty absent from the prompt is the duty that does all that work, the
mirror convention has failed in the exact way CLAUDE.md warns about — "an
inlined prompt rots invisibly, and two already did." We are claiming only that
the canonical file is read first by instruction, so the probability of the
omission biting is low, and the remedy is owner-side either way.
Reopen condition (dated, and it is a real tripwire)
Reopen if EITHER leg fires:
- (a) any triage run from 2026-10-12 onward produces an outbox report
(
outbox/triagemessage.md) with nodismissed/reopen-condition section — i.e. the omission demonstrably propagated into behaviour; or - (b) a dismissed item's written reopen condition fires and goes unlisted by the next triage run.
On either, mint the row and route the prompt edit to the owner as a
NEEDS-OWNER: line. First evaluation is the 2026-10-12 report, which must
list hire-1 if frontier-cadence counter (c) fires on that date. If the
2026-10-12 and 2026-10-19 reports both carry the sweep, this dismissal becomes
permanent and prompt-vs-procedure omissions of this shape are closed as a
class.
Prior art checked: no slug covering ops/prompts/ rot exists anywhere in
research/queue/{open,approved,built,dismissed}/, and the frozen
research/RESEARCH_QUEUE.md has none. Spends no registry row and no trial
budget.