Deep Interview — Pre-plan clarification gate
Run before any plan is drafted. Purpose: turn a vague user ask into a crystallised spec the downstream planner can execute literally. This skill does NOT write the plan itself — when the ambiguity score crosses the threshold, hand off to the appropriate agent / planning skill.
When this skill fires
Fire automatically when the next action is one of:
- Drafting the Goal anchor in
.copilot/experiments.md(first experiment dispatch) - Picking a research direction in
.copilot/ideas.md(ideation Step A) - Deciding the rebuttal response-strategy per reviewer comment
- Choosing the routing template for the conductor (full pipeline / submission sprint / custom sequence)
- Any other moment where a sub-agent is about to commit a plan to disk
Skip if a ## Goal anchor (or equivalent immutable plan block) already exists — do not re-interview about a settled commitment.
Operating principles
- One question per round. Each round ships exactly one question + your recommended answer + a one-sentence reason. Never dump 3–5 parallel questions.
- Read before you ask. If the answer is in
.copilot/{state, literature, ideas, experiments, handoff, decisions}.md, workspace tex/code/logs, or recent reviewer rounds — read first, then ask only what remains. - Topology first. Round 0 enumerates 1–6 independent components of the ask (e.g. for "submission sprint": writer pass / polish / review / rebuttal-prep — pick which are in scope). Lock the component list before drilling into any single one.
- Rotate across components. When >1 component is active, rotate targeting so no single component reaches clarity while siblings stay vague.
- Score every round. After each answer, score four dimensions on 0–1:
- goal — does the user know the what?
- constraints — compute / data / deadline / venue / word-limit bounds named?
- criteria — falsification + success criteria explicit?
- context — is the existing
.copilot// codebase state cross-referenced? (brownfield only) - Ambiguity =
1 − (goal·0.35 + constraints·0.25 + criteria·0.25 + context·0.15)for brownfield, drop the context term and renormalise for greenfield.
- Stop condition. Exit when ambiguity ≤ 0.2 (default; the conductor may override) or after 20 rounds (hard cap — force exit and flag the residual gap).
- Challenge injections. At rounds 4 / 6 / 8 (once each), inject one of:
- contrarian — "what would a top-venue reviewer call your weakest assumption here?"
- simplifier — "which of these branches can we drop without breaking the core claim?"
- ontologist — "what is the single noun phrase this contribution renames or invents? where else does that noun already mean something different?"
Round template
Round <N> (ambiguity: <prev_score> → after this round: <new_score>)
Question: <one question>
My recommendation: <answer + one-sentence reason; cite file path / line / `.copilot/...` if the basis is in the repo>
What I will do once you answer: <next round's branch, or "exit and hand off to <agent>">
When invoked from an agent, use AskUserQuestion to render the question — never freeform-ask in main response text.
Output: the crystallised spec
When the stop condition fires, emit:
## Deep-interview spec — <slug>
- Date: <YYYY-MM-DD>
- Topology (locked at Round 0): <component list>
- Goal: <one sentence>
- Constraints: <compute / data / deadline / venue / word-limit, each with a number>
- Success criterion: <how we know it worked>
- Falsification criterion: <how we know it failed>
- Residual ambiguity: <final score> on dimensions <list any below 0.6>
- Hand off to: <agent or skill that will draft the plan>
Write this block to the file the downstream planner will read:
| Downstream planner | Spec lands in |
|---|---|
@copilot-experiment Step 1 (Goal anchor) |
.copilot/experiments.md (above the Goal anchor) |
@copilot-ideation Step B |
.copilot/ideas.md ## User preferences block |
@copilot-rebuttal Step 2 (per-comment strategy) |
top of rebuttal/round-N.md |
| conductor pipeline routing | .copilot/decisions.md |
Do not write the plan itself in this step — only the spec.
Hand-off
End with one line stating which agent / skill picks up next, e.g. "→ hand off to @copilot-experiment to draft the Goal anchor from this spec." After hand-off, the next agent must run grill-with-docs once its plan is drafted, to gap-check the plan against .copilot/ documentation and glossary.
Hard constraints
- One question per round — no parallel question dumps
- Read first, ask second — never ask about facts already in
.copilot/or the workspace - No plan writing — only the spec block; the downstream agent writes the plan
- Do not skip Round 0 topology — single-component asks still benefit from explicit enumeration
- Honest ambiguity scores — neither inflate to declare victory nor deflate to keep drilling
- Exit at hard cap — at round 20, exit and flag the residual gap; do not loop forever