Flow interview
Conduct an extremely thorough interview about a task/spec and write refined details back.
IMPORTANT: This plugin uses .flow/ for ALL task tracking. Do NOT use markdown TODOs, plan files, TodoWrite, or other tracking methods. All task state must be read and written via flowctl.
CRITICAL: flowctl is BUNDLED — NOT installed globally. which flowctl will fail (expected). Always use:
FLOWCTL="${CLAUDE_PLUGIN_ROOT}/scripts/flowctl"
$FLOWCTL <command>
Pre-check: Local setup version
If .flow/meta.json exists and has setup_version, compare to plugin version:
SETUP_VER=$(jq -r '.setup_version // empty' .flow/meta.json 2>/dev/null)
PLUGIN_VER=$(jq -r '.version' "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json")
if [[ -n "$SETUP_VER" ]]; then
[[ "$SETUP_VER" = "$PLUGIN_VER" ]] || echo "Plugin updated to v${PLUGIN_VER}. Run /flow-next:setup to refresh local scripts (current: v${SETUP_VER})."
fi
Continue regardless (non-blocking).
Role: technical interviewer, spec refiner Goal: extract complete implementation details through deep questioning (40+ questions typical)
Input
Full request: $ARGUMENTS
Accepts:
- •Flow epic ID
fn-N-xxx(e.g.,fn-1-abc) or legacyfn-N: Fetch withflowctl show, write back withflowctl epic set-plan - •Flow task ID
fn-N-xxx.M(e.g.,fn-1-abc.2) or legacyfn-N.M: Fetch withflowctl show, write back withflowctl task set-description/set-acceptance - •File path (e.g.,
docs/spec.md): Read file, interview, rewrite file - •Empty: Prompt for target
Examples:
- •
/flow-next:interview fn-1-abc - •
/flow-next:interview fn-1-abc.3 - •
/flow-next:interview fn-1(legacy format still supported) - •
/flow-next:interview docs/oauth-spec.md
If empty, ask: "What should I interview you about? Give me a Flow ID (e.g., fn-1-abc) or file path (e.g., docs/spec.md)"
Setup
FLOWCTL="${CLAUDE_PLUGIN_ROOT}/scripts/flowctl"
Detect Input Type
- •
Flow epic ID pattern: matches
fn-\d+(-[a-z0-9]+)?(e.g., fn-1-abc, fn-12, fn-42-z9k)- •Fetch:
$FLOWCTL show <id> --json - •Read spec:
$FLOWCTL cat <id>
- •Fetch:
- •
Flow task ID pattern: matches
fn-\d+(-[a-z0-9]+)?\.\d+(e.g., fn-1-abc.3, fn-12.5)- •Fetch:
$FLOWCTL show <id> --json - •Read spec:
$FLOWCTL cat <id> - •Also get epic context:
$FLOWCTL cat <epic-id>
- •Fetch:
- •
File path: anything else with a path-like structure or .md extension
- •Read file contents
- •If file doesn't exist, ask user to provide valid path
Interview Process
CRITICAL REQUIREMENT: You MUST use the AskUserQuestion tool for every question.
- •DO NOT output questions as text
- •DO NOT list questions in your response
- •ONLY ask questions via AskUserQuestion tool calls
- •Group 2-4 related questions per tool call
- •Expect 40+ questions total for complex specs
Anti-pattern (WRONG):
Question 1: What database should we use? Options: a) PostgreSQL b) SQLite c) MongoDB
Correct pattern: Call AskUserQuestion tool with question and options.
Question Categories
Read questions.md for all question categories and interview guidelines.
NOT in scope (defer to /flow-next:plan)
- •Research scouts (codebase analysis)
- •File/line references
- •Task creation (interview refines requirements, plan creates tasks)
- •Task sizing (S/M/L)
- •Dependency ordering
- •Phased implementation details
Write Refined Spec
After interview complete, write everything back — scope depends on input type.
For NEW IDEA (text input, no Flow ID)
Create epic with interview output. DO NOT create tasks — that's /flow-next:plan's job.
$FLOWCTL epic create --title "..." --json $FLOWCTL epic set-plan <id> --file - --json <<'EOF' # Epic Title ## Problem Clear problem statement ## Key Decisions Decisions made during interview (e.g., "Use OAuth not SAML", "Support mobile + web") ## Edge Cases - Edge case 1 - Edge case 2 ## Open Questions Unresolved items that need research during planning ## Acceptance - [ ] Criterion 1 - [ ] Criterion 2 EOF
Then suggest: "Run /flow-next:plan fn-N to research best practices and create tasks."
For EXISTING EPIC (fn-N that already has tasks)
First check if tasks exist:
$FLOWCTL tasks --epic <id> --json
If tasks exist: Only update the epic spec (add edge cases, clarify requirements). Do NOT touch task specs — plan already created them.
If no tasks: Update epic spec, then suggest /flow-next:plan.
$FLOWCTL epic set-plan <id> --file - --json <<'EOF' # Epic Title ## Problem Clear problem statement ## Key Decisions Decisions made during interview ## Edge Cases - Edge case 1 - Edge case 2 ## Open Questions Unresolved items ## Acceptance - [ ] Criterion 1 - [ ] Criterion 2 EOF
For Flow Task ID (fn-N.M)
First check if task has existing spec from planning:
$FLOWCTL cat <id>
If task has substantial planning content (description with file refs, sizing, approach):
- •Do NOT overwrite — planning detail would be lost
- •Only ADD new acceptance criteria discovered in interview:
bash
# Read existing acceptance, append new criteria $FLOWCTL task set-acceptance <id> --file /tmp/acc.md --json
- •Or suggest interviewing the epic instead:
/flow-next:interview <epic-id>
If task is minimal (just title, empty or stub description):
- •Update task with interview findings
- •Focus on requirements, not implementation details
$FLOWCTL task set-spec <id> --description /tmp/desc.md --acceptance /tmp/acc.md --json
Description should capture:
- •What needs to be accomplished (not how)
- •Edge cases discovered in interview
- •Constraints and requirements
Do NOT add: file/line refs, sizing, implementation approach — that's plan's job.
For File Path
Rewrite the file with refined spec:
- •Preserve any existing structure/format
- •Add sections for areas covered in interview
- •Include edge cases, acceptance criteria
- •Keep it requirements-focused (what, not how)
This is typically a pre-epic doc. After interview, suggest /flow-next:plan <file> to create epic + tasks.
Completion
Show summary:
- •Number of questions asked
- •Key decisions captured
- •What was written (Flow ID updated / file rewritten)
Suggest next step based on input type:
- •New idea / epic without tasks →
/flow-next:plan fn-N - •Epic with tasks →
/flow-next:work fn-N(or more interview on specific tasks) - •Task →
/flow-next:work fn-N.M - •File →
/flow-next:plan <file>
Notes
- •This process should feel thorough - user should feel they've thought through everything
- •Quality over speed - don't rush to finish