discovery
Full discovery phase orchestrator. Brainstorm + ao search + research + plan + pre-mortem gate. Produces epic-id and execution-packet for $crank. Triggers: "discovery", "discover", "explore and plan", "research and plan", "discovery phase".
Best use case
discovery is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Full discovery phase orchestrator. Brainstorm + ao search + research + plan + pre-mortem gate. Produces epic-id and execution-packet for $crank. Triggers: "discovery", "discover", "explore and plan", "research and plan", "discovery phase".
Teams using discovery should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/discovery/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How discovery Compares
| Feature / Agent | discovery | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Full discovery phase orchestrator. Brainstorm + ao search + research + plan + pre-mortem gate. Produces epic-id and execution-packet for $crank. Triggers: "discovery", "discover", "explore and plan", "research and plan", "discovery phase".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# $discovery — Full Discovery Phase Orchestrator
**YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.**
## Codex Lifecycle Guard
When this skill runs in Codex hookless mode (`CODEX_THREAD_ID` is set or
`CODEX_INTERNAL_ORIGINATOR_OVERRIDE` is `Codex Desktop`), ensure startup context
before entering the discovery DAG:
```bash
ao codex ensure-start 2>/dev/null || true
```
`ao codex ensure-start` is the single startup guard for Codex skills. It records
startup once per thread and skips duplicate startup automatically. Leave
`ao codex ensure-stop` to closeout skills; discovery owns the startup path.
## DAG — Execute This Sequentially
```
mkdir -p .agents/rpi
detect bd and ao CLI availability
```
**Run every step in order. Do not stop between steps.**
```
STEP 1 ── if not --skip-brainstorm AND goal is vague (<50 chars or vague keywords):
$brainstorm <goal>
Use refined goal for subsequent steps if produced.
STEP 1.5 ── if PRODUCT.md exists in repo root
AND goal appears to be a feature or capability
(not a bug fix, chore, or docs task — i.e., goal does NOT start with
"fix", "chore", "docs", "typo", "bump", "update dep", "lint", "format"):
$design <goal> [--quick]
FAIL verdict? → output <promise>BLOCKED</promise>, stop (design is a blocking product-alignment gate).
Skip silently if PRODUCT.md does not exist or goal is non-feature.
STEP 2 ── if ao available:
ao search "<goal keywords>" 2>/dev/null || true
ao lookup --query "<goal keywords>" --limit 5 2>/dev/null || true
Assemble ranked packet: compiled planning rules + active findings
+ unconsumed high-severity next-work items. Carry forward as context.
For each returned learning, check applicability to the goal. If applicable,
cite by filename and record: ao metrics cite "<path>" --type applied 2>/dev/null || true
STEP 3 ── $research <goal> [--auto]
Pass --auto unless --interactive. Output lands in .agents/research/.
After: identify applicable test levels (L0-L3) for downstream $plan.
STEP 4 ── $plan <goal> [--auto]
Pass --auto unless --interactive.
After: extract epic-id, auto-detect complexity from issue count
(1-2 → fast, 3-6 → standard, 7+ → full) unless --complexity override.
STEP 4.5 ── if --no-lifecycle is NOT set
AND plan output contains new project/module creation
(keywords: scaffold, new project, bootstrap, init, create module,
new package, new service):
detect language from plan context or existing project files
$scaffold <detected-language> <project-name>
Scaffold output becomes input context for pre-mortem.
Skip if: --no-lifecycle flag, no new project/module detected in plan.
STEP 5 ── $pre-mortem <plan-path> [--quick]
Use --quick for fast/standard. Full council for full.
PASS/WARN? → continue to STEP 6
FAIL? → re-plan with findings, re-run pre-mortem (max 3 total)
Still FAIL after 3? → output <promise>BLOCKED</promise>, stop
STEP 6 ── Write execution-packet.json (latest alias) + per-run packet archive
to .agents/rpi/ and .agents/rpi/runs/<run-id>/ when run_id exists.
Include plan_path, test_levels, ranked_packet_path, epic-id, complexity.
ao ratchet record discovery 2>/dev/null || true
Output <promise>DONE</promise>
```
**That's it.** Steps 1→1.5→2→3→4→4.5→5→6. No stopping between steps.
---
## Setup Detail
**State:**
```
discovery_state = {
goal: "<goal string>",
interactive: <true if --interactive>,
complexity: <fast|standard|full or null for auto-detect>,
skip_brainstorm: <true if --skip-brainstorm or goal is >50 chars and specific>,
epic_id: null,
attempt: 1,
verdict: null
}
```
**CLI dependency detection:**
```bash
if bd ready --json >/dev/null 2>&1 && bd list --type epic --status open --json >/dev/null 2>&1; then
TRACKING_MODE="beads"
else
TRACKING_MODE="tasklist"
fi
if command -v ao &>/dev/null; then AO_AVAILABLE=true; else AO_AVAILABLE=false; fi
```
## Gate Detail
**Discovery has two blocking gates.**
- **STEP 1.5 (design gate):** `FAIL` blocks discovery immediately for feature/capability goals when `PRODUCT.md` exists.
- **STEP 5 (pre-mortem gate):** Max 3 attempts with plan→pre-mortem retry loop.
- **PASS/WARN:** Store verdict, apply any required pre-mortem hardening back into the plan issues or file-backed task specs, then proceed to STEP 6.
- **FAIL:** Log `"Pre-mortem: FAIL (attempt N/3) -- retrying plan with feedback"`. Re-invoke `$plan` with findings context, then re-invoke `$pre-mortem`. After 3 total failures: output `<promise>BLOCKED</promise>`, stop.
## Step Detail
**STEP 1 (brainstorm):** Skip if `--skip-brainstorm`, or goal >50 chars with no vague keywords (`improve`, `better`, `something`, `somehow`, `maybe`), or brainstorm artifact already exists in `.agents/brainstorm/`.
**STEP 1.5 (design gate):** Optional. Runs `$design` when PRODUCT.md exists at repo root and the goal is a feature or capability (not a bug fix, chore, or docs task). Design verdict `FAIL` blocks discovery; `PASS` or `WARN` continues. Skipped silently when PRODUCT.md is absent.
**STEP 2 (search history):** Ranked packet assembly — match compiled planning rules, active findings from `.agents/findings/*.md`, and unconsumed high-severity items from `.agents/rpi/next-work.jsonl`. Rank by goal-text overlap → issue-type overlap → file-path overlap.
**STEP 3.1 (test levels):** After research, determine L0-L3 applicability. External APIs/I/O → L0+L1+L2 min. Cross-module → add L2. Full subsystem → add L3. Record in `discovery_state.test_levels`.
**STEP 4 (plan):** After plan, record the exact `plan_path` for STEP 5. If tracker probes are healthy, extract epic-id via `bd list --type epic --status open`. If tracker probes are degraded, keep the objective + `plan_path` in `.agents/rpi/execution-packet.json` and continue in `tasklist` mode without inventing an epic.
**STEP 5 (pre-mortem):** Pass the recorded `plan_path` into `$pre-mortem`. Do not rely on “most recent” plan/spec selection during discovery retries.
**STEP 5.5 (pre-mortem fix propagation):** Before STEP 6, copy any required pseudocode fixes from the pre-mortem report into the affected plan issues or file-backed task specs. Workers read issue/task bodies, not the pre-mortem report.
**STEP 6 (output):** Write execution packet and phase summary per `references/output-templates.md`. Keep `.agents/rpi/execution-packet.json` as the latest alias and archive the same packet to `.agents/rpi/runs/<run-id>/execution-packet.json` when `run_id` exists. Include `plan_path`, `test_levels`, and `ranked_packet_path` in the execution packet for `$crank` and standalone `$validation` consumption.
## Flags
| Flag | Default | Description |
|------|---------|-------------|
| `--interactive` | off | Human gates in research and plan |
| `--skip-brainstorm` | auto | Skip brainstorm step |
| `--complexity=<level>` | auto | Force complexity level (fast/standard/full) |
| `--no-budget` | off | Disable phase time budgets |
| `--no-lifecycle` | off | Skip scaffold auto-invocation in STEP 4.5 |
## Quick Start
```bash
$discovery "add user authentication" # full discovery
$discovery --interactive "refactor payment module" # human gates in research + plan
$discovery --skip-brainstorm "fix login bug" # skip brainstorm for specific goals
$discovery --complexity=full "migrate to v2 API" # force full council ceremony
```
## Completion Markers
```
<promise>DONE</promise> # Discovery complete, epic-id + execution-packet ready
<promise>BLOCKED</promise> # Pre-mortem failed 3x, manual intervention needed
```
## Troubleshooting
Read `references/troubleshooting.md` for common problems and solutions.
## Reference Documents
- [references/complexity-auto-detect.md](references/complexity-auto-detect.md) — precedence contract for keyword vs issue-count classification
- [references/idempotency-and-resume.md](references/idempotency-and-resume.md) — re-run safety and resume behavior
- [references/phase-budgets.md](references/phase-budgets.md) — time budgets per complexity level
- [references/troubleshooting.md](references/troubleshooting.md) — common problems and solutions
- [references/output-templates.md](references/output-templates.md) — execution packet and phase summary formats
**See also:** [brainstorm](../brainstorm/SKILL.md), [design](../design/SKILL.md), [research](../research/SKILL.md), [plan](../plan/SKILL.md), [pre-mortem](../pre-mortem/SKILL.md), [crank](../crank/SKILL.md), [rpi](../rpi/SKILL.md)
## Local Resources
### references/
- [references/complexity-auto-detect.md](references/complexity-auto-detect.md)
- [references/idempotency-and-resume.md](references/idempotency-and-resume.md)
- [references/output-templates.md](references/output-templates.md)
- [references/phase-budgets.md](references/phase-budgets.md)
- [references/troubleshooting.md](references/troubleshooting.md)
<!-- Lifecycle integration wired: 2026-03-28. See skills/discovery/SKILL.md for canonical -->Related Skills
vibe
Comprehensive code validation. Runs complexity analysis then multi-model council. Answer: Is this code ready to ship? Triggers: "vibe", "validate code", "check code", "review code", "code quality", "is this ready".
validation
Full validation phase orchestrator. Vibe + post-mortem + retro + forge. Reviews implementation quality, extracts learnings, feeds the knowledge flywheel. Triggers: "validation", "validate", "validate work", "review and learn", "validation phase", "post-implementation review".
update
Reinstall all AgentOps skills globally from the latest source. Triggers: "update skills", "reinstall skills", "sync skills".
trace
Trace design decisions and concepts through session history, handoffs, and git. Triggers: "trace decision", "how did we decide", "where did this come from", "design provenance", "decision history".
test
Test generation, coverage analysis, and TDD workflow. Triggers: "test", "generate tests", "test coverage", "write tests", "tdd", "add tests", "test strategy", "missing tests", "coverage gaps".
status
Single-screen dashboard showing current work, recent validations, flywheel health, and suggested next action. Triggers: "status", "dashboard", "what am I working on", "where was I".
standards
Language-specific coding standards and validation rules. Provides Python, Go, Rust, TypeScript, Shell, YAML, JSON, and Markdown standards. Auto-loaded by $vibe, $implement, $doc, $bug-hunt, $complexity based on file types.
shared
Shared reference documents for multi-agent skills (not directly invocable)
security
Continuous repository security scanning and release gating. Triggers: "security scan", "security audit", "pre-release security", "run scanners", "check vulnerabilities".
security-suite
Composable security suite for binary and prompt-surface assurance, static analysis, dynamic tracing, repo-native redteam scans, contract capture, baseline drift, and policy gating. Triggers: "binary security", "reverse engineer binary", "black-box binary test", "behavioral trace", "baseline diff", "prompt redteam", "security suite".
scenario
Author and manage holdout scenarios for behavioral validation. Scenarios are stored in .agents/holdout/ where implementing agents cannot see them. Triggers: "$scenario", "holdout", "behavioral scenario", "create scenario", "list scenarios".
scaffold
Project scaffolding, component generation, and boilerplate setup. Triggers: "scaffold", "new project", "init project", "create project", "generate component", "setup project", "starter", "boilerplate".