Skip to content

discovery/explorer: a dispatched explorer has no disk fallback on a preload miss and its payload carries no preload provenance #4074

Description

@kyle-sexton

Symptom

A /discovery:explore run dispatched discovery:explorer and got back status: complete with good findings, but preload_token: none received and the artifact written as PARITY-MATRIX.md instead of EXPLORE.md plus EXPLORE-<section>.md sidecars. The parent gate caught it (check-dispatch-artifact.sh --index-name EXPLORE.md exited 1, unusable: no EXPLORE.md), and recovery cost a full resume cycle plus re-verification. A parallel discovery:researcher dispatch in the same session returned preload: fallback with a correctly shaped artifact set.

Root cause

agents/explorer.md tells a dispatched explorer that the skill body is preloaded and, when no body reached it, to set preload_token: MISSING and stop. It has no disk fallback and its payload contract has no preload: provenance field. agents/researcher.md and agents/intent-tracer.md both instruct the agent to confirm the body is in context, Read the skill file from disk when it is not, and report preload: fired | fallback; skills/research/SKILL.md and skills/trace-intent/SKILL.md grade that field in gate step 1 and treat a matching token as file-identity rather than preload proof. The explore lane never received that port, so a preload miss on the explorer runs undisciplined, and the agent looks for the token in the dispatch prompt and the memory slice because nothing tells it where the token lives.

Reproduction

  1. Dispatch discovery:explorer under a skills: preload that does not resolve (the harness skips it silently and logs to the debug log only).
  2. The agent reports no token, reads the tree, and writes an artifact shaped by the dispatch prompt's description of the deliverable.
  3. check-dispatch-artifact.sh <slice> --index-name EXPLORE.md --newer-than <slice>/.explore-dispatch exits 1.

Fix

Port the research lane's liveness contract to the explore lane: agents/explorer.md confirms the body is in context before any exploration work, Reads ${CLAUDE_PLUGIN_ROOT}/skills/explore/SKILL.md otherwise, and reports preload: fired | fallback; skills/explore/SKILL.md grades the field in gate step 1, demotes the token to file-identity, and treats a payload without the field as an out-of-date agent definition; skills/explore/reference/dispatch.md carries the rationale; scripts/contract.test.sh section 11 pins the explore lane beside the other two; the explore evals gain the fallback-recovery case.

Origin: handoff-inbox item 20260909-124500-discovery-explorer-preload-miss-and-artifact-shape, observed at discovery 0.19.8 on 2026-09-09.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions