A Claude Code plugin for structured discovery before changes. Understand what
IS (the local codebase), what SHOULD BE (current external sources), and what WAS
and why (the reasoning behind a past decision) before any code is written. Those
three skills sit on the evidence-substrate axis and dispatch a purpose-built
subagent by default, so the reading stays out of the main conversation;
blindspot serves the USER's understanding rather than the agent's.
| Skill | Axis | What it does |
|---|---|---|
/discovery:explore |
Local | Six-dimension codebase exploration, code reading, git history, project structure, test discovery, build config, environment, persisting an EXPLORE.md index plus sidecars. Dispatches discovery:explorer by default. |
/discovery:research |
External | Corpus enumeration, then three chained research phases (broad → targeted + falsification → preferred sources) with per-claim source tiers, independent-corroborator ratios, a recency gate, a coverage ledger, and a binary outcome gate before presenting. Dispatches discovery:researcher by default. |
/discovery:research-deep |
External, tiered | Dispatcher that routes deep research to the heaviest isolated tier available, the discovery:research-sweep workflow, a discovery:researcher subagent, or inline as last resort, with a multi-topic check that fans one discovery:researcher out per separable topic. Runs in main context itself, the only place both the Workflow tool (absent from every non-fork subagent) and a dependable Agent spawn are guaranteed. |
/discovery:trace-intent |
Historical | Reconstructs why a thing was built the way it was, from evidence outside the code: review discussion, tickets, long-form documents. Grades every claim on an intent-evidence tier (Direct / Supported / Inferred / Speculative / Unknown), cites each one with a source-reliability note, and reports what it could not find in a coverage map. Dispatches discovery:intent-tracer by default. |
/discovery:blindspot |
Local, user-facing | Surfaces the USER's unknown-unknowns before they work in unfamiliar territory (a codebase area or a domain vocabulary), emitting blindspot cards and coaching one improved prompt. Deliverable is the user's understanding, not EXPLORE.md. |
discovery:report is the return-contract skill: not user-invocable, and the canonical copy that implementation and plugin-quality mirror byte-identically. No discovery agent preloads it: each agent's own Return exactly this section is its whole return shape.
| Agent | Dispatched by | What it does |
|---|---|---|
discovery:explorer |
/discovery:explore |
Runs the six dimensions in a fresh context, loads path-scoped project rules explicitly, writes the artifact set, returns a bounded summary and a file pointer. |
discovery:researcher |
/discovery:research, /discovery:research-deep |
Runs the full research discipline in a fresh context, writes the artifact set and coverage ledger, returns a file pointer plus a verification request. |
discovery:research-verifier |
/discovery:research, /discovery:research-deep |
Read-only. Grades a research artifact's verifier-owned outcome-gate rows in a fresh context and returns the verification: line the parent writes into RESEARCH.md. |
discovery:sweep-worker |
the discovery:research-sweep workflow |
Runs one workflow stage with web search and fetch only, so no stage that reads untrusted pages holds a shell or file access. Inherits the model and pins no effort; the workflow passes both from the role map. |
discovery:intent-tracer |
/discovery:trace-intent |
Investigates the resolvable evidence categories in a fresh context, grades each claim on the intent-evidence tier, writes the artifact set, and returns a file pointer plus a verification request. |
| Workflow | Launched by | What it does |
|---|---|---|
/discovery:research-sweep (workflows/research-sweep.js) |
/discovery:research-deep Tier 1 |
Sweeps sources for one question by angle, deep-reads the best of them, has three independent skeptics try to refute each load-bearing claim (a claim survives on a majority; a skeptic that could not check counts as unverified, not refuted), runs a completeness critic, and returns findings with citations, source tier, date and consensus counts, plus dissent and unverified claims. args: question (required; without it nothing runs), angles, sources, roles (the map /multi-agent:route all research prints; without it, fan-out stages run on opus), maxConcurrent (default 4) and artifactPath. Every stage runs as discovery:sweep-worker, reads only public http(s) URLs, and receives page-derived text as fenced JSON. It writes no files: research-deep writes RESEARCH.md from the result. |
The three artifact-persisting skills (/discovery:explore, /discovery:research,
/discovery:trace-intent) persist handoff artifacts (EXPLORE.md / RESEARCH.md
/ INTENT.md) so a fresh session can resume planning from the artifact alone.
Each is always an index, with content in sibling sidecars carrying a
machine-readable header, so a consumer greps the index and reads exactly the one
section it needs. INTENT.md is private to its skill. It is deliberately not a
lifecycle-protocol artifact kind.
Those skills document an inline escape hatch and the conditions under which it is correct. Tight turn-by-turn iteration, cost on a lookup too small to justify the dispatch, or an invoking context that is itself a subagent. Running inline relaxes no discipline.
- Self-contained. The research discipline file (source tiers, recency gates,
falsification recipes, failure patterns) and the per-ecosystem discovery
reference ship inside the plugin and are referenced via
${CLAUDE_PLUGIN_ROOT}. Explore composes/toolchain:check's covered-ecosystem detection and root adjacency when that plugin is installed (documented fallback table when it is not; explore-owned inventories for build configs, runtime probes, and ecosystems the seam does not cover stay explore-owned). It does not bake a second covered-ecosystem inventory. - Reads your conventions, assumes none. Project rules, preferred-source
rosters, per-ecosystem source mappings, and any stated direction come from your
own project's
CLAUDE.mdand rules; where none exist, the skills self-discover (llms.txt / sitemap probing, canonical-home identification). - Graceful degrade. Adjacent capabilities: a workflow engine, subagents, synthesis MCP servers, documentation agents. Used when present and substituted when absent; no phase blocks on a missing tool, and substitutions are documented as gaps rather than silently lowering the bar.
/plugin marketplace add melodic-software/claude-code-plugins
/plugin install discovery@melodic-softwareArtifact placement follows the plugin's lifecycle artifact protocol
(reference/artifact-protocol.md). EXPLORE.md / RESEARCH.md / INTENT.md are working
documents: they land in <memory_dir>/<slug>/ (default .work/<slug>/), one slug per topic, never
committed, the memory root self-ignores. <memory_dir> is .work/ unless your project
instructions declare another root.
/discovery:setup check reports read-only whether the session can run the dispatch design and
prints the gate allow rules to paste into ~/.claude/settings.json; it writes nothing.
MIT (SPDX-License-Identifier: MIT).