skills/mine/agent-exploration/SKILL.md
Dispatches scoped-write explorer agents in parallel for general research and exploration of any codebase, topic, or domain. The operator passes --path (output directory), --agents (parallel count), --prompt (research question), and optionally --ide, --model, --reasoning to control the Compozy runtime. The parent scouts the territory first to divide work, then invokes `compozy exec --agent explorer` N times in parallel (via the harness's async/background facility); each invocation writes one analysis file at <path>/analysis/NN_analysis_<slug>.md following a seven-section schema. The parent then synthesizes <path>/analysis/summary.md. The explorer agent lives in the Compozy global registry at ~/.compozy/agents/explorer/AGENT.md and is installed by the bundled script when absent. Use when running parallel multi-area research that must produce written artifacts. Do not use for competitor-only research already covered by cy-research-competitors, single-file lookups answerable by Explore, or edits to existing code.
npx skillsauth add pedronauck/skills agent-explorationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generic parallel-research workflow. Use when a question requires deep reads across multiple distinct areas and the operator needs written artifacts (not chat output). The skill dispatches explorer agents in parallel through compozy exec; each invocation writes one analysis file. The parent then synthesizes a final summary.
The skill is self-contained and harness-agnostic. The explorer is a Compozy agent — a single definition (assets/AGENT.md) installed once at ~/.compozy/agents/explorer/AGENT.md, discoverable by compozy exec --agent explorer from any harness (Claude Code, Codex CLI, Cursor, Droid, OpenCode, Pi, Gemini, Copilot, …). The parent runtime is selected per invocation via --ide, --model, and --reasoning. Parallel dispatch uses whatever async/background tool calls your harness exposes — the skill does not prescribe a specific tool.
Match your step to the row. Read the listed files in full before producing output. They are not appendices — they are load-bearing. Inline content in this SKILL.md is a pointer, not a substitute.
| Step | MUST read |
| ------------------------------------------------------- | ---------------------------------------------------------------------- |
| Step 4 — composing every slice prompt | references/dispatch-rules.md + assets/analysis-template.md |
| Step 5 — verifying outputs | references/checklist.md + assets/analysis-template.md |
| Step 6 — synthesizing summary.md | every <path>/analysis/NN_analysis_<slug>.md from this round |
| Any contract violation, fabricated evidence, or retry | references/dispatch-rules.md (re-read; do not paraphrase from memory)|
references/dispatch-rules.md — the scoped-write contract: what the dispatched agent may write, may read, may run; tool allow/forbid lists; parent responsibilities; parallelism cap; failure handling. Must be embedded verbatim in every slice prompt.references/checklist.md — seven-section output validation checklist (installation, inputs, scout, dispatch, files, schema, summary). Run before authoring summary.md.assets/analysis-template.md — the canonical seven-section schema every dispatched agent fills (Overview, Mechanisms/Patterns, Relevant Sources, Transferable Patterns, Risks/Mismatches, Open Questions, Evidence) plus a Scope header.assets/AGENT.md — the Compozy explorer agent definition (frontmatter: title, description, ide, model, reasoning_effort, access_mode; body: the scoped-write contract and workflow). Installed by scripts/install-explorer.sh to ~/.compozy/agents/explorer/AGENT.md.scripts/install-explorer.sh — bootstrap helper. Writes the bundled assets/AGENT.md to the Compozy global registry. Refuses to overwrite.scripts/dispatch-slices.sh — parallel dispatch runner. Takes --ide/--model/--reasoning plus 1-8 prompt files, backgrounds one compozy exec per file, waits via wait $pid, captures per-slice stdout/stderr/exit, and reports a summary. Zero external dependencies (native bash + the compozy binary).Resolve every bundled helper relative to the directory that holds this SKILL.md. When a command appears below as scripts/<name>, treat the actual invocation as <agent-exploration-dir>/scripts/<name> — expand <agent-exploration-dir> to the absolute skill directory before running.
--path <dir> (required): Output directory. Analysis files are written under <path>/analysis/. Any project-relative or absolute directory works (for example docs/research/<topic>/, tasks/<slug>/, or a path outside the repo). The skill is not tied to any specific project layout.--agents <num> (optional, default 3, hard cap 8): Number of explorer invocations to dispatch in parallel. Caps prevent runaway dispatch when the prompt is vague.--prompt <text> (required): The research question. Quoted multi-line strings are supported. If omitted, the parent asks the operator before continuing.--ide <ide> (optional, default claude): Compozy runtime for each dispatched invocation. Forwarded to compozy exec --ide. Accepted values mirror compozy exec: codex, claude, cursor-agent, droid, opencode, pi, gemini, copilot.--model <name> (optional, default opus): Forwarded to compozy exec --model. When the chosen IDE does not support the requested model, compozy surfaces the error and the slice fails — re-dispatch with a compatible model.--reasoning <effort> (optional, default xhigh): Forwarded to compozy exec --reasoning-effort. Accepted values: low, medium, high, xhigh.If --path or --prompt is missing, the parent asks the operator a single clarification before continuing. Never invent defaults for either. Apply the documented defaults for --ide, --model, --reasoning silently when omitted; reject an invalid --ide rather than falling back.
<path>/analysis/
├── 01_analysis_<slug-a>.md
├── 02_analysis_<slug-b>.md
├── 03_analysis_<slug-c>.md
└── summary.md
01, 02, …, 08).summary.md is parent-authored synthesis, not a dispatched output.Step 1: Verify the explorer agent is installed
compozy binary is on PATH (e.g. command -v compozy). If missing, abort with a one-line message instructing the operator to install Compozy from /Users/pedronauck/dev/compozy/looper. Do not fall back to harness-native subagents.~/.compozy/agents/explorer/AGENT.md.<repo>/.compozy/agents/explorer/AGENT.md.
At least one must be present.explorer Compozy agent is not installed at ~/.compozy/agents/explorer/AGENT.md. Install it now? [yes/no]". Do not proceed silently.<agent-exploration-dir>/scripts/install-explorer.sh. The helper installs to ~/.compozy/agents/explorer/AGENT.md and refuses to overwrite an existing file.compozy agents inspect explorer and confirm the entry is discoverable. Any error here blocks dispatch.Step 2: Resolve inputs
--path, --agents, --prompt, --ide, --model, --reasoning from the invocation. If --path or --prompt is missing, ask the operator and stop.--agents to 3 when omitted. Reject values below 1 or above 8 — ask the operator to choose a value in range.--ide to claude, --model to opus, --reasoning to xhigh when omitted. Validate --ide against the accepted list (codex, claude, cursor-agent, droid, opencode, pi, gemini, copilot); reject invalid values with a clear message instead of silent fallback. Do not validate --model ahead of time — let compozy surface incompatibilities.--path to an absolute path. If the directory does not exist, ask the operator whether to create it before continuing.<path>/analysis/ if absent. The dispatched agents refuse to write into a missing directory.Step 3: Parent-led initial scout (MANDATORY — do not skip)
The scout is the load-bearing step that prevents wasted parallel dispatch. The parent must do this work itself before any slice is launched.
Glob, Grep, and targeted Read calls. The scout's job is to learn enough about the territory to divide it well — not to produce analysis content. Cap the scout at 8–15 tool calls; deep reading belongs to the dispatched agents.--agents distinct slices that are:
--prompt — every slice serves the original research question.01..08).state-machine, event-bus, auth-boundaries).NN – slug – focus) before dispatching. Do not ask for approval unless the slices look thin or overlap; just announce and proceed.If the scout reveals that fewer than --agents non-overlapping slices exist, reduce the dispatch count and tell the operator. Do not pad slices to hit the requested count.
Step 4: Dispatch explorer agents in parallel
Gist tripwires — the contract items the parent must enforce in every dispatched prompt:
git/make/package managers, no writes outside <path>/analysis/.compozy exec, with --ide/--model/--reasoning-effort forwarded from the operator's inputs. Wait for every process to exit (code 0) before verification.STOP. Read references/dispatch-rules.md in full before composing any slice prompt. That file contains the complete scoped-write contract, tool allow/forbid lists, parent responsibilities, and failure handling. The bullets above are tripwires, not the contract — the contract must be embedded verbatim in every slice prompt.
STOP. Read assets/analysis-template.md in full before composing any slice prompt. That file is the canonical seven-section schema every dispatched agent fills. The schema must be embedded in the prompt; do not paraphrase it.
Compose one slice prompt per slice. Every prompt MUST include:
--prompt verbatim, prefixed by a short orientation line.<path>/analysis/NN_analysis_<slug>.md (absolute path).references/dispatch-rules.md content embedded verbatim (copy-paste, do not paraphrase).assets/analysis-template.md.Write each composed prompt to its own file at <path>/.dispatch/prompts/NN_<slug>.txt. The file basename (without extension) becomes the slice id used for per-slice log file naming.
Recommended dispatch path: scripts/dispatch-slices.sh. The bundled script backgrounds one compozy exec per prompt file, waits for every PID, captures per-slice stdout/stderr/exit under <logs-dir>, and exits non-zero if any slice failed. Zero external dependencies; portable across any harness that can run a bash script.
<agent-exploration-dir>/scripts/dispatch-slices.sh \
--ide <ide> --model <model> --reasoning <reasoning> \
--logs <path>/.dispatch/logs \
-- <path>/.dispatch/prompts/01_<slug-a>.txt \
<path>/.dispatch/prompts/02_<slug-b>.txt \
<path>/.dispatch/prompts/03_<slug-c>.txt
<ide>, <model>, <reasoning> are the resolved operator inputs (defaults claude, opus, xhigh).dispatched: <slug> pid=<N> per launch and exited: <slug> rc=<N> per completion, ending with a summary: total=Xs ok=N/M failed=K/M line.compozy exec --prompt-file <file> (no shell-escaping risk for long prompts).references/dispatch-rules.md.Manual alternative (if you cannot run a bash script — e.g., a harness that prefers issuing N parallel tool calls itself): invoke each slice with the command shape below. Use whatever async/background facility your harness exposes; wait for every invocation to exit before continuing.
compozy exec \
--agent explorer \
--ide <ide> \
--model <model> \
--reasoning-effort <reasoning> \
--prompt-file <path>/.dispatch/prompts/NN_<slug>.txt
Notes that apply to both paths:
compozy exec already defaults --access-mode to full, so no extra runtime-permission flag is required.--timeout in the dispatch template. The Compozy default is an activity timeout (job canceled only when no output is received within the period), which the dispatched agent's normal tool-call streaming keeps reset. If a specific slice legitimately needs a longer silent window (e.g., synthesising over 25+ sources), the operator can append --timeout 30m (or higher) to that single invocation.Step 5: Verify outputs
Gist tripwires — the floor items that catch most failures:
compozy exec exited 0. Non-zero exits are slice failures, not warnings.N files at the expected NN_analysis_<slug>.md paths under <path>/analysis/.Read for local paths, well-formedness for URLs).STOP. Read references/checklist.md in full before declaring outputs verified. That file is the seven-section output validation checklist (installation, inputs, scout, dispatch, files, schema, summary). Every item must pass; failing items trigger a re-dispatch of the offending slice. The bullets above are tripwires, not the contract.
If a section is empty, a file is missing, a cited path is fake, or the schema is incomplete, re-dispatch the offending slice via a fresh compozy exec with the schema embedded and a request to fill the gap. The parent never authors the missing analysis content — the dispatched agent owns the write.
Step 6: Synthesize summary.md
<path>/analysis/NN_analysis_<slug>.md in full.<path>/analysis/summary.md with these sections:
--prompt, verbatim.NN – slug to its slice question and one-line finding.<path>/analysis/NN_analysis_<slug>.md paths so a future reader can drill in.summary.md is parent-authored. Do not dispatch a slice for this step.Explore or direct Grep/Read. This skill is overkill.Operational tripwires only — the full failure taxonomy lives in references/dispatch-rules.md (Failure Handling) and references/checklist.md.
compozy binary not found on PATH: abort with a one-line message instructing the operator to install Compozy (/Users/pedronauck/dev/compozy/looper). Do not fall back to harness-native subagent tools.~/.compozy/agents/explorer/AGENT.md missing and operator declines install: abort the dispatch with a one-line message. Do not inline-define the agent in the slice prompt.--ide invalid: list the accepted values (codex, claude, cursor-agent, droid, opencode, pi, gemini, copilot) and ask the operator to choose a valid one. Do not fall back silently to claude.--reasoning invalid: ask the operator for one of low, medium, high, xhigh.--path directory cannot be created: stop and report the filesystem error. Do not fall back to the current working directory silently.--agents out of range: ask the operator for an in-range value. Do not auto-clamp.--agents non-overlapping slices: reduce the dispatch count, inform the operator, and proceed with the smaller set.compozy exec exits non-zero, contract violation, schema-incomplete analysis, fabricated evidence, or ambiguous-prompt refusal: STOP. Re-read references/dispatch-rules.md in full before re-dispatching. The parent never authors the missing content; the dispatched agent owns the write.tools
Plans real-user QA deliverables: personas, journey maps, exploratory charters, persona/journey/tour/CFR test cases, regression suites, Figma validation checks, automation intent, and user-impact bug reports. Writes artifacts under <qa-output-path>/qa/ for qa-execution to consume. Use when planning QA before execution, documenting journey-driven test strategy, marking flows that need E2E follow-up, or filing structured bug reports. Do not use for live execution, AI implementation audits, CI gate ownership, or technical integration/security/performance suites; use qa-execution or agent-output-audit instead.
development
Executes real-user QA sessions through public interfaces using personas, journeys, exploratory charters, test tours, edge-case probes, CFR checks, and browser evidence. Reads qa-report artifacts from <qa-output-path>/qa/ when present, captures issues/screenshots/reports under the same output tree, and classifies bugs by user impact. Use when validating a release candidate, migration, refactor, or user-facing change against production-like behavior. Do not use for AI implementation audits, task-status reconciliation, CI gate runs, integration/security/performance templates, or flaky-test triage; use agent-output-audit for those.
development
Transform outside-of-diff review files into properly formatted issue files for a given PR. Use when converting review files from ai-docs/reviews-pr-<PR>/outside/ into issue format in ai-docs/reviews-pr-<PR>/issues/. Automatically determines starting issue number and preserves all metadata (file path, date, status) from original review files. Don't use for inline-diff review files, non-PR review artifacts, or creating GitHub issues directly.
development
Enforce root-cause fixes over workarounds, hacks, and symptom patches in all software engineering tasks. Use when debugging issues, fixing bugs, resolving test failures, planning solutions, making architectural decisions, or reviewing code changes. Activates gate functions that detect and reject common workaround patterns such as type assertions, lint suppressions, error swallowing, timing hacks, and monkey patches. Don't use for trivial formatting changes or documentation-only edits.