The :plan subcommand is an 8-step interactive wizard that produces a fully configured conference.md file. It does not run a conference — it only produces the configuration.
Walking through :plan ensures your conference.md is complete and correct before you spend compute on a conference. Each step probes your intent, validates feasibility, and encodes your decisions into the file.
The wizard is specifically designed to catch two common failure modes:
- Vague goals — a conference started with "improve my model" produces unfocused results
- Broken evaluators — a conference whose metric script fails at iteration 1 wastes all subsequent compute
Use :plan when:
- You are setting up your first conference on a new problem
- You are unsure how to partition the search space across researchers
- You want the dry-run gate to verify your evaluator before committing to a full run
- You want guided prompts to help sharpen your goal and success criteria
Create conference.md manually when:
- You are copying a template you have used before
- You are running one of the provided templates unchanged (
templates/code-performance.md,templates/prompt-optimization.md, etc.) - You already have a working
conference.mdfrom a previous run and just want to adjust parameters
The wizard asks: "What do you want to achieve?"
It pushes back on vague answers. "I want to improve my model" is rejected. It prompts you to be specific:
"Improve model accuracy on the CIFAR-10 test set from 85% to above 90%"
The goal must be specific enough that a researcher agent could know what to work on without further clarification. The wizard will not advance to Step 2 until the goal passes this bar.
Choose metric or qualitative:
- Metric — a number reliably produced each iteration (accuracy, latency, F1, BLEU, LLM judge score)
- Qualitative — success requires human or LLM judgment (literature synthesis, hypothesis generation, writing quality)
Decision rule: "Can you measure success with a number that is produced automatically each iteration?" If yes → metric. If assessing quality requires reading the output → qualitative.
For metric mode: The wizard asks for metric name, target, direction (maximize/minimize), baseline value, and the evaluator command.
The dry-run gate: Before proceeding, the wizard runs your evaluator on the baseline to verify it produces the expected output. This step is non-negotiable.
[Running evaluator dry-run: python evaluate.py --input baseline.txt]
Result: 0.847
Expected range: 0–1 (maximize toward 1.0) ✓
If the evaluator fails, produces unexpected output, or produces a baseline that surprises you, the wizard stops and helps you fix it. A conference with an unverified evaluator will fail at iteration 1.
For qualitative mode: The wizard asks you to describe what "good" looks like. It prompts for specificity:
- What makes a result clearly better than the baseline?
- What are the top 2–3 criteria the Reviewer should weight most heavily?
- Are there disqualifying failure modes?
Choose 2, 3 (recommended), or 4–5 researchers. Then decide whether to enable a Devil's Advocate researcher — one who deliberately challenges mainstream assumptions and explores contrarian strategies.
If you have 3 researchers and add a Devil's Advocate, one of the 3 fills that role. No additional agent is spawned.
Choose assigned (recommended) or free. For assigned, describe each researcher's specific focus area.
Examples:
- ML training: Researcher A → architecture, Researcher B → data augmentation, Researcher C → optimization hyperparameters
- Writing quality: Researcher A → structure and flow, Researcher B → evidence and citations, Researcher C → tone and clarity
Also specify Allowed Changes and Forbidden Changes — what researchers can and cannot modify.
Only runs if you enabled the Devil's Advocate in Step 4. Configures:
- Which assumptions the Devil's Advocate should challenge
- What "anti-strategies" to pursue
- Whether they can propose changes that break the current evaluation metric (to stress-test the metric itself)
Configure how the conference runs:
Overnight / unattended:
- Sets
pause_every: never - Recommends the
autoconference-loop.shscript - Asks for time budget, max rounds, max total iterations, researcher timeout
Interactive:
- Asks how often to pause for review (after every round, every N rounds, on PIVOT events only, or never)
- Same budget questions
The wizard writes the fully populated conference.md file with no placeholders. Every {...} in the template is replaced with a real value from Steps 1–7.
Output:
conference.md written to: ./my-conference/conference.md
Next steps:
1. Review the file: cat ./my-conference/conference.md
2. Run the conference: /autoconference
OR for overnight: bash scripts/autoconference-loop.sh ./my-conference/
3. Monitor progress: bash scripts/check_conference.sh ./my-conference/
OR tail -f ./my-conference/conference_events.jsonl
Skill chain: plan → autoconference → ship
User: "I want to run a conference to improve my sorting algorithm."
Wizard (Step 1): "What would success look like? What metric, what target?"
User: "I want it to run faster. Currently takes about 2.4 seconds on my benchmark."
Wizard: "Let's be specific. Target: wall-clock time in milliseconds, minimize, target < 500ms. Is that right?"
User: "Yes, < 500ms."
Wizard (Step 2): "You have a numeric target — this is metric mode."
Wizard (Step 3): "What command produces the wall-clock time? I'll run it now to verify the baseline."
User: python benchmark.py --sort bubble
Wizard: "[Running: python benchmark.py --sort bubble] Result: 2391ms. Baseline confirmed. Proceeding."
Wizard (Step 4): "3 researchers recommended for this search space. Add a Devil's Advocate?"
User: "Yes."
Wizard (Step 5): "Assigned strategy: Researcher A → algorithmic approach (sort algorithm choice), Researcher B → data structure optimizations (memory layout, cache), Researcher C (Devil's Advocate) → challenge all assumptions."
... Steps 6–8 complete ...
Result: ./sorting-conference/conference.md — fully populated, evaluator verified, ready to run.
- Never writes
conference.mdbefore all 8 steps are complete - Never skips the dry-run gate in Step 3 for metric mode
- Never proceeds past Step 1 without a specific, measurable goal
- Produces exactly one output file:
conference.md - Does not start a conference, spawn researchers, or run any research