Skip to content

sweep-all-disciplines: fork subagents silently do not inherit the conversation, and two of four claimed they did #1258

Description

@kyle-sexton

What happened

Running /re-anchor:sweep-all-disciplines in a session with substantial history, the batched fan-out dispatched its per-corrector audit agents with subagent_type: "fork". None of the four forks inherited the conversation. All four reported, in substance, that they had no history to audit.

The skill's own runbook says to stop rather than audit blind, so the batched form is not merely degraded here — it cannot run at all in the configuration it selects by default.

The harder half

Two of the four forks asserted they could see the conversation before checking, then self-corrected. That is worse than the inheritance gap itself: a fork that confidently reports "I have reviewed the session history" and only afterwards discovers it has none will, in any run where it is not asked to re-verify, return a fabricated audit. The batched sweep's output is a merge of those returns, so one unchecked fork silently poisons the whole pass.

Why this is ours

re-anchor is an org-owned plugin. The dispatch mechanism, the blind-audit stop rule, and the batched merge are all in our control.

Suggested shape of a fix

Not prescribing the fix, but the pieces that look load-bearing:

  • The sweep needs a positive inheritance check before it trusts any audit return — something the agent can only answer from real conversation content, not a self-report that it has context.
  • A fork that cannot see history must fail closed (return an explicit "no context, did not audit") rather than proceed. The runbook's stop rule needs a mechanism, not just a sentence.
  • Worth deciding whether the batched form should dispatch forks at all, given the observed behavior, or whether named subagents plus explicit context hoisting is the only shape that works.

Reproduction

Observed in session 29e54148-1236-458c-85cb-fbf4c11314f8 on a long-running session. Not reduced to a minimal case — filing on the observation rather than sitting on it. A minimal repro is the first triage step.

Context

Surfaced while auditing the Fable field guide against the fable-5 playbook; the sweep was abandoned as a detour and the work proceeded with two cross-vendor reviews instead. Recorded in docs/topics/fable-field-guide-audit/ (see the handoff's "Tried and ruled out").

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: highSignificant impact, or blocks an imminent release; staff this cycle.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions