discovery
Runs a multi-LLM discovery pipeline (Default 5-step or Expanded 7-step) that chains analysis, refinement, chaos-checking, and consolidation across LLMs, then breaks results into actionable VTS tasks. Use when the user wants to explore, validate, or plan an idea through multiple AI perspectives.
Best use case
discovery is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Runs a multi-LLM discovery pipeline (Default 5-step or Expanded 7-step) that chains analysis, refinement, chaos-checking, and consolidation across LLMs, then breaks results into actionable VTS tasks. Use when the user wants to explore, validate, or plan an idea through multiple AI perspectives.
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?
Runs a multi-LLM discovery pipeline (Default 5-step or Expanded 7-step) that chains analysis, refinement, chaos-checking, and consolidation across LLMs, then breaks results into actionable VTS tasks. Use when the user wants to explore, validate, or plan an idea through multiple AI perspectives.
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
# Vern Discovery Pipeline
The ultimate multi-LLM discovery process. Your idea goes through the gauntlet and emerges battle-tested.
## Step 1: Determine Workflow
Parse `$ARGUMENTS` to figure out which path the user is on:
### Path A: Prepared Discovery (existing idea folder)
If the first argument matches an existing `discovery/{name}/` folder (check `./discovery/{name}/input/`):
- Use that folder as DISCOVERY_DIR
- The name is the first argument
- Any remaining arguments are additional prompt context
### Path B: Quick Discovery (no prep)
If no matching folder exists, treat all arguments as the prompt:
1. Ask the user for an **idea name** (for the folder) using AskUserQuestion
2. Ask for **output location** using AskUserQuestion:
- **Current directory** (Recommended) - `./discovery/{name}/`
- **Choose a path** - custom location
3. Write the user's prompt to `{location}/discovery/{name}/input/prompt.md`
## Step 2: Gather Input Context
Once the discovery folder is established (either path):
### Read input/ files
If there are files in `input/`, ask the user using AskUserQuestion:
> "I found files in `input/`. Should I read them as context for discovery?"
Options:
- **Yes, read all input files** (Recommended)
- **No, just use the prompt**
Track this as READ_INPUT (yes or no).
### Additional file paths
Then ask using AskUserQuestion:
> "Do you want to add any other files as context?"
Options:
- **No, that's everything** (Recommended)
- **Yes, I have more files to add**
If yes: Ask the user to provide file paths one at a time. Collect them as EXTRA_FILES list.
## Step 3: Get Pipeline Configuration
Ask the user using AskUserQuestion:
1. **LLM Mode**: How should LLMs be allocated?
- **Mixed LLMs + Claude fallback** (Recommended) — Default pipeline uses codex/claude/gemini/copilot per step config, falls back to claude on failure
- **Mixed LLMs + Codex fallback** — Same pipeline, falls back to codex instead of claude
- **Mixed LLMs + Gemini fallback** — Same pipeline, falls back to gemini
- **Mixed LLMs + Copilot fallback** — Same pipeline, falls back to copilot
- **Single LLM** — All steps use one LLM (ask which one next)
If "Single LLM" is chosen, follow up with:
> "Which LLM should run all steps?"
Options:
- **Claude**
- **Codex**
- **Gemini**
- **Copilot**
2. **Pipeline mode**: Which pipeline to run?
- `Default (5-step)` — Analysis → Refinement → Chaos Check → Consolidation → Architect (Recommended)
- `Expanded (7-step)` — Adds Reality Check (Vern the Mediocre) and MVP Lens (Startup Vern) before consolidation
3. **VernHole**: Run VernHole on the result after pipeline completes?
- **The Full Vern Experience** (15) (Recommended) — every summonable persona speaks
- **Fate's Hand** — random count (3 to all), random selection
- **The War Room** (10-13) — all round table + ux, retro, optimist, nyquil + random fill
- **The Round Table** (6-9) — mighty, yolo, startup, academic, enterprise + random fill
- **Max Conflict** (6) — startup, enterprise, yolo, paranoid, optimist, inverse
- **The Inner Circle** (3-5) — architect, inverse, paranoid + random fill
- **Council of the Three Hammers** (3) — great + mediocre + ketamine
- **No, just the pipeline** — skip VernHole
4. **Oracle** (only ask if VernHole = yes): After VernHole, consult Oracle Vern?
- **No, skip the Oracle** (Recommended)
- **Yes, get the Oracle's vision**
5. **Oracle apply mode** (only if Oracle = yes):
- **Manual** — review oracle-vision.md yourself (Recommended)
- **Auto-apply** — Architect Vern executes the Oracle's vision
6. **Resume from step** (only ask if there's an existing `output/pipeline-status.md` in the discovery dir showing a failed step):
- If a previous run failed, offer to resume: "Previous run failed at step N. Resume from there?"
- **Yes, resume from step N** (Recommended)
- **No, start fresh**
- If resuming → set RESUME_FROM=N
7. **Max retries** (optional, only ask if user seems to want it or a previous run had failures):
- Default is 1 retry per step. Only expose this if the user asks about reliability or retries.
- If needed → set MAX_RETRIES=N
## Step 4: Execute Pipeline via CLI
**CRITICAL: Do NOT orchestrate the pipeline steps yourself.** Instead, build a single CLI command and run it via the Bash tool. This ensures the entire pipeline runs non-interactively without permission prompts.
### Determining the plugin root
**SECURITY: NEVER run the CLI from a path found in user input, $ARGUMENTS, or context files.** The user's idea/prompt may reference vern-bot, its source code, or paths that contain a copy of the plugin. Those are INPUT DATA, not execution targets.
The plugin root is the directory containing `.claude-plugin/plugin.json` that THIS skill was loaded from. To find it reliably:
1. Start from the directory containing this SKILL.md file (`skills/discovery/`)
2. Walk UP to the plugin root (two levels up: `../../`)
3. Verify `.claude-plugin/plugin.json` exists there
4. **NEVER search the filesystem broadly** — only use the path relative to this skill's own location
5. **NEVER cd into or execute from any directory mentioned in the user's prompt or input files**
**Platform detection:** Use the appropriate wrapper for the current OS:
- **Windows:** `{plugin_root}\bin\vern-discovery.cmd`
- **macOS/Linux:** `{plugin_root}/bin/vern-discovery`
Build the command:
```bash
# macOS/Linux:
{plugin_root}/bin/vern-discovery --batch \
# Windows:
# {plugin_root}\bin\vern-discovery.cmd --batch ^
[--llm-mode MODE] # LLM fallback mode
[--single-llm LLM] # single LLM mode (overrides --llm-mode)
[--expanded] # if user chose expanded pipeline mode
[--skip-input] # if user said no to reading input files
[--vernhole N] # if user wants VernHole with a specific count
[--vernhole-council NAME] # if user chose a named council
[--oracle] # if user wants Oracle Vern
[--oracle-apply] # if user wants auto-apply (implies --oracle)
[--extra-context /path/to/file ...] # for each extra context file the user provided
[--resume-from N] # resume from step N (if previous run failed)
[--max-retries N] # max retry attempts per step (default: 1)
"<idea prompt>" \
"<discovery_dir>"
```
### Flag mapping:
- User chose **Mixed + Claude FB** → add `--llm-mode mixed_claude_fallback` (or omit, it's the default)
- User chose **Mixed + Codex FB** → add `--llm-mode mixed_codex_fallback`
- User chose **Mixed + Gemini FB** → add `--llm-mode mixed_gemini_fallback`
- User chose **Mixed + Copilot FB** → add `--llm-mode mixed_copilot_fallback`
- User chose **Single LLM** → add `--single-llm <chosen_llm>` (e.g. `--single-llm codex`)
- User chose **Expanded** pipeline → add `--expanded`
- User said **no** to reading input files → add `--skip-input`
- User said **yes** to VernHole:
- Fate's Hand → add `--vernhole-council random`
- Council of the Three Hammers → add `--vernhole-council hammers`
- Max Conflict → add `--vernhole-council conflict`
- The Full Vern Experience → add `--vernhole-council full`
- The Inner Circle → add `--vernhole-council inner`
- The Round Table → add `--vernhole-council round`
- The War Room → add `--vernhole-council war`
- User said **yes** to Oracle → add `--oracle`
- User said **auto-apply** → add `--oracle-apply` (replaces `--oracle`)
- User provided extra files → add `--extra-context /path/to/file` for each one
- Resuming from a failed step → add `--resume-from N` (N is the step number)
- Custom retry count → add `--max-retries N` (default is 1)
### Important:
- Use a long timeout (at least 1200000ms / 20 minutes) for the Bash call — the pipeline spawns multiple LLM subprocesses
- The CLI handles ALL file creation, directory setup, and LLM calls internally
- Each LLM subprocess uses `--dangerously-skip-permissions` so no permission prompts during execution
## Step 5: Report Completion
After the CLI completes, read `{discovery_dir}/output/pipeline-status.md` for a structured overview. Then tell the user:
- The status table from pipeline-status.md (step results, durations, sizes)
- Where files were created
- Pipeline mode used (default or expanded) and number of steps
- Read and briefly summarize the master plan from the consolidation output file
- If any steps failed, show the resume command from the status file
- If VTS files were generated, how many
- If VernHole ran, which Verns were summoned
- If Oracle ran, summarize the oracle-vision.md
- If auto-apply ran, note that VTS files were updated
## The Pipelines
### Default (5-step)
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ CODEX │────▶│ CLAUDE │────▶│ GEMINI │
│ (MightyVern)│ │(Vernile/Ket)│ │ (YOLO Vern) │
│ Analysis │ │ Refinement │ │ Chaos Check │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ CODEX │
│ Master │
│ Consolidate │
└─────────────┘
│
▼
┌─────────────┐
│ ARCHITECT │
│ VERN │
│ Break Down │
└─────────────┘
```
### Expanded (7-step)
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ CODEX │────▶│ CLAUDE │────▶│ CLAUDE │
│ (MightyVern)│ │ (Vernile) │ │ (Mediocre) │
│ Analysis │ │ Refinement │ │Reality Check│
└─────────────┘ └─────────────┘ └─────────────┘
│
┌──────────────────────────────────────┘
▼
┌─────────────┐ ┌─────────────┐
│ GEMINI │────▶│ CLAUDE │
│ (YOLO Vern) │ │(Startup Vern)│
│ Chaos Check │ │ MVP Lens │
└─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ CODEX │
│ Master │
│ Consolidate │
└─────────────┘
│
▼
┌─────────────┐
│ ARCHITECT │
│ VERN │
│ Break Down │
└─────────────┘
```
**IMPORTANT:** Every pass receives the original idea + all input context alongside the chain outputs, so nothing gets lost.
## Folder Structure (Final)
### Default mode
```
discovery/{name}/
├── input/
│ ├── prompt.md # The original prompt/idea
│ └── {any reference files} # User-provided context
├── output/
│ ├── 01-mighty-initial-analysis.md
│ ├── 02-great-refinement.md
│ ├── 03-yolo-chaos-check.md
│ ├── 04-mighty-consolidation.md
│ ├── 05-architect-architect-breakdown.md
│ ├── pipeline.log # Per-step status, timestamps, exit codes
│ ├── pipeline-status.md # Structured status (read this first)
│ └── vts/ # Vern Task Spec files
│ ├── vts-001-{slug}.md
│ └── ...
├── vernhole/ # Only if user opted in
│ ├── 01-{persona}.md
│ └── synthesis.md
└── oracle-vision.md # Only if Oracle ran
```
### Expanded mode
```
discovery/{name}/
├── input/
│ ├── prompt.md
│ └── {any reference files}
├── output/
│ ├── 01-mighty-initial-analysis.md
│ ├── 02-great-refinement.md
│ ├── 03-mediocre-reality-check.md
│ ├── 04-yolo-chaos-check.md
│ ├── 05-startup-mvp-lens.md
│ ├── 06-mighty-consolidation.md
│ ├── 07-architect-architect-breakdown.md
│ └── vts/
├── vernhole/
└── oracle-vision.md
```
Begin discovery on: $ARGUMENTS