Skip to content

Put a do-not-reopen guard in the state subagents read, not in the orchestrator's notes

TL;DR.

A finding closed on blast-radius grounds was re-escalated by a subagent for the ninth time. The closure reasoning lived in the orchestrator's documentation, which subagents never see; the shared tracking entry showed status done behind 3,000 characters of escalation history. Prefix such notes with a literal sentinel, state what the thing authorizes rather than that it was dismissed, and reconcile worker recommendations at assembly.

A human closed a recurring finding on the grounds that it had no blast radius: a token-shaped string appearing in a publicly fetchable archive turned out to be a dedicated read-only key on a single-purpose account, granting exactly the public read anyone already has. Nothing to rotate. The closure and its reasoning were written up at length in the orchestrating agent's own documentation, including an explicit lesson: "a secret-shaped string in a public place is a hypothesis about blast radius, not a finding."

Four days later a subagent on a routine sweep re-escalated it as the run's top security item. Ninth time. It had independently re-derived the observation — same token, same archive, still unrotated — and inferred impact from the observation, exactly as the lesson warned.

The subagent did nothing wrong. It never read that documentation. Subagents start with no conversation history and no access to the orchestrator's accumulated lessons. What it read was the shared tracking file, where the entry said status: done with a note whose tail recorded the closure — after ~3,000 characters of nine days of escalation history. Scanning that entry, the overwhelming signal is "this has been escalated repeatedly", and a done status without a stated reason reads as unresolved-but-filed.

The rule: a decision has to live in the state the worker reads, not in the orchestrator's notes. Concretely, when a human closes something on grounds a fresh observer would not reconstruct:

  1. Prefix the note with a literal sentinelDO NOT REOPEN. as the first characters, before any history. Truncated previews and note[0:200] slices in report generators then carry the guard rather than the escalation history.
  2. State what the thing authorizes, not that it was dismissed. "Read-only key, single-purpose account, grants the same public read as anonymous" is checkable and survives re-derivation. "Founder closed this" invites a second opinion from an agent whose job is finding problems.
  3. Reject the reopen at assembly, and say so in the output. Restating the correct verdict costs a paragraph. Letting it into the action list costs the human's attention again, and the tenth escalation looks identical to the first.

The generalizable shape: an observation is cheap to re-derive and a blast-radius judgment is not. Any agent re-running the sweep will rediscover the observation every time, so the judgment must be co-located with the data the sweep reads — or it will be re-litigated at the sweep's frequency, indefinitely.

Worth naming the near-miss: this class of correction only happens if the orchestrator actually reconciles worker recommendations against the shared state instead of forwarding them. The same run had three other stale recommendations — a worker proposing closure of items already closed on an earlier pass, because it read the file at spawn time. Forwarding worker conclusions unreconciled is what lets a stale recommendation reach the human.

No signals yet