Advisor Board
N persona subagents (N = 4 to 12, configured in references/user-config.md) debate a question across 3 rounds. Clarity over comfort.
Step -1 — First-run check
If references/user-config.md does NOT exist → read and follow references/onboarding.md before anything else. Onboarding captures the user's name, confirms the board roster, records optional context paths, and self-updates {{USER_NAME}} placeholders throughout the skill.
If references/user-config.md exists → read it to get the user's name, board order, and context paths. Proceed.
Step 0 — Context Extraction
Do not assume anything is loaded. Read the question first, then grep the user's context files (from user-config.md) for keywords that match. Pull matching sections only — never full files.
Produce a Context Brief (max 300 words): values/red lines relevant to the decision, current-state items directly involved, strategy elements that apply, behavioral notes only if they explain a pattern in the question, prior attempts if any.
If the user has no context files configured, the Context Brief is built from the question + any conversation history.
Step 1 — Frame the Question
Present this to {{USER_NAME}} and wait for confirmation. This is the only pause point in the main flow.
FRAMED QUESTION:
Situation: [plain-language statement of the decision]
Context that matters:
[Context Brief — max 300 words]
For the board: [crisp, specific version of the question]
What would help most: [stress-test / direction clarity / tradeoff map / action recommendation]
Step 2 — Create Debate File
Path: work/outputs/advisor-board-YYYY-MM-DD-[topic-slug].md
(topic-slug = 2-4 word kebab-case summary, e.g. launch-cohort-now, raise-prices, take-xyz-deal)
Sections: ## Framed Question, ## Round 1 — Initial Takes, ## Round 2 — Rebuttals, ## Round 3 — Final Positions & Recommendations, ## Synthesis.
Steps 3-5 — Three rounds of debate
Read references/agent-prompts.md for the three round prompt templates. Let N = the number of board members in user-config.md (between 4 and 12). For each round:
- Dispatch all N board members (in the canonical order from
user-config.md) as subagents in parallel — single message, N Agent tool calls, modelsonnet - Each agent writes to a temp file:
work/outputs/[debate-slug]/r[ROUND]-[name-slug].md - Wait for all N confirmations. If any agent returns an ERROR (e.g. persona not found), stop and report to {{USER_NAME}} before proceeding
- Orchestrator assembles temp files into the debate file in canonical order, then deletes the temp dir
- Only after assembly is complete, proceed to the next round
Rounds are sequential across, parallel within — Round 2 starts only after all Round 1 temp files are assembled.
No substitutions, no invented members. If an agent cannot find their ## [NAME] section in references/board-members.md, it must stop and return an ERROR. Never fabricate a persona.
Step 6 — Synthesis
Read the complete debate file. Write the synthesis directly into the file:
## Synthesis
### Where the board converges
[2-4 bullets — only list genuine alignment across a majority of members. Do not pad.]
### Unresolved tensions
[2-4 real disagreements that stayed disagreed after Round 3. Name specific members on each side. State the core disagreement plainly.]
### Clearest paths forward
**Path A: [name]** — what this path is, which members point toward it, what it requires accepting or giving up.
**Path B: [name]** — same format, only if genuinely distinct from Path A.
**Path C: [name]** — same format, only if applicable.
### The real question underneath this
[One sentence. The decision the debate revealed underneath the surface question.]
Step 7 — Close
Report the debate file path. Offer to go deeper on any specific member's reasoning.
Rules
- All subagents use model
sonnet - Board roster is fixed per
user-config.md(N between 4 and 12) — no substitutions, no additions, no invented members during a debate - Each agent writes its own temp file per round; orchestrator assembles after all confirmations — no concurrent writes to the debate file
- Orchestrator re-reads files fresh each session — never assume context is already loaded between rounds
- Context Brief is max 300 words, built from grep hits — never pass raw full files to agents
- Each agent greps for its own
## [NAME]section inboard-members.mdand reads only that section (offset/limit), never the full file - First person only — agents speak AS the persona, never "Goggins would say"
- No softening, no manufactured consensus — preserve real disagreement through to the synthesis
- Parallel within rounds, sequential across rounds