explore
SkillAI & modelsAnswer "how does X work", "where is X defined", or "trace through Y" questions about a codebase using parallel subagent searches with cited summaries.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the explore skill
What this skill tells your AI
The instructions your AI receives, as published by av/mi in skills/explore/SKILL.md and read by ahel’s review.
Question-driven, not map-driven. If the user's request is "describe this repo" rather than "where does X happen / how does Y work", push back for a concrete question — a tour without a destination is wasted subagent load.
-
Sharpen the question. Rewrite it as a single sentence you can hand to each subagent verbatim. If it isn't crisp enough for a grep-guided answer, ask the user to narrow it before spawning anything.
-
Identify candidate clusters. Breadth first:
ls -lathe repo root, read the package manifest (package.json/pyproject.toml/Cargo.toml/go.mod/ etc.) for entry points, then run a single keyword grep —grep -rli '<term>' <top-level dirs>— to list candidate files without opening them. Pick 2–5 plausible clusters where the answer could live. If it's obvious (single file, single function), skip delegation and read it directly. -
Spawn one subagent per cluster via
node "$MI_PATH" -p '<prompt>'withbg=truthy— the harness returnspid:X log:/tmp/mi-X.logand detaches the child; do NOT append&. Use this prompt template for each subagent:Question: <the sharpened question, verbatim> Scope: <absolute paths in this cluster only> Do NOT read files outside the scope above. Write your findings to /tmp/mi-explore-<cluster>.md using this exact format: STATUS: complete | partial | blocked SCOPE: <paths you actually read> ANSWER: <1-3 sentences, no file:line refs here> CITATIONS: <path/to/file.ext:<line> — <quoted excerpt>, one per line> FOLLOW_UPS: <paths outside scope worth checking next, if any> -
Summary contract — every subagent writes
/tmp/mi-explore-<cluster>.mdwith exactly these fields:STATUS:complete|partial|blockedSCOPE:paths actually readANSWER:cluster-local answer in 1–3 sentences. Nofile:linereferences allowed in this field — every line number lives inCITATIONSonly. If you feel the urge to write "line N" in prose, stop and put it inCITATIONS. Writenot found hereif the question doesn't resolve in this scope — useSTATUS: complete(you definitively searched) and leaveCITATIONSempty.CITATIONS:onepath/to/file.ext:<line> — <quoted line or excerpt>per claim inANSWERFOLLOW_UPS:paths outside the cluster that should be checked next, if any
-
While subagents run, maintain a deduped list of FOLLOW_UPS — paths not yet assigned to any cluster — to pursue if clusters come back empty. Check completion with
kill -0 <pid> 2>/dev/null(exit 0 = still running, exit 1 = done) — do NOT usewait(detached children are unreachable bywait). Once a pid exits,cat /tmp/mi-explore-<cluster>.mdto read the result; if the file is missing or any required field is absent, treat that cluster asblockedand fold its scope into FOLLOW_UPS. After all pids exit, read any FOLLOW_UPS paths directly — do not spawn new subagents. Synthesize the final answer from cluster-localANSWERs into a single coherent prose response, not a per-cluster list; omit clusters that returnednot found herefrom the prose and surface any unresolved FOLLOW_UPS as "also worth checking". Append a flat CITATIONS block with everyfile:linefrom every subagent'sCITATIONS— one per line, verbatim; if you find yourself compressing, stop. If every cluster returnednot found here, say so plainly — either the question was mis-scoped or the cluster partition missed the right directory.
On a single-GPU local endpoint subagents serialize at the model server — this pattern saves context, not wall-clock. On a hosted endpoint the fan-out is genuinely parallel.
Signals
- GitHub stars
- 102
- Forks
- 8
- Last commit
- Jul 2026
- Hacker News mentions
- 20
ahel recommends instead
Advanced
- Catalog kind
- skill
- Gateway key
explore-av- Source
- github.com/av/mi