--- name: flow-interview description: Interview user in-depth about a spec, bead, or feature idea to extract complete implementation details. Use when user wants to flesh out a spec, refine requirements, discuss technical details, clarify a feature before building, or asks to be interviewed about their idea. Triggers on "interview me", "ask me questions about", "flesh out this spec", "refine requirements", "help me think through". --- # Flow interview Conduct an extremely thorough interview about a task/spec and write refined details back. **Role**: technical interviewer, spec refiner **Goal**: extract complete implementation details through deep questioning (40+ questions typical) ## Input Full request: #$ARGUMENTS Accepts: - **Beads ID** (e.g., `gno-42`, `bd-123`, `app-12`): Fetch with `bd show`, write back with `bd update` - **File path** (e.g., `docs/spec.md`, `SPEC.md`): Read file, interview about contents, write refined version back - **Empty**: Prompt for target Examples: - `/flow:interview gno-42` - `/flow:interview docs/oauth-spec.md` - `/flow:interview SPEC.md` If empty, ask: "What should I interview you about? Give me a bead ID (e.g., gno-42) or file path (e.g., docs/spec.md)" ## Detect Input Type 1. **Beads ID pattern**: matches `[a-z]+-\d+` (e.g., gno-42, bd-123, app-7) - Fetch: `bd show --json` - If type is "epic", also: `bd list --parent= --json` to get subtasks 2. **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](questions.md) for all question categories and interview guidelines. ## Write Refined Spec After interview complete, write everything back. ### For Beads ID **Single task**: ```bash echo "" | bd update --body-file - bd update --acceptance="" ``` **Epic**: 1. Update epic description: `echo "" | bd update --body-file -` 2. Create/update subtasks: - New: `bd create --title="..." --description="..." --parent=` - Existing: `echo "
" | bd update --body-file -` 3. Add dependencies if discovered: `bd dep add ` Include in description: - Clear problem statement - Technical approach with specifics - Key decisions made during interview - Edge cases to handle - Dependencies/blockers discovered ### For File Path Rewrite the file with refined spec: - Preserve any existing structure/format - Add sections for areas covered in interview - Include technical details, edge cases, acceptance criteria - Keep it actionable and specific ## Completion Show summary: - Number of questions asked - Key decisions captured - What was written (bead updated / file rewritten) - Suggest next step: `/flow:plan` or `/flow:work` ## Notes - Use `--json` flag on bd commands for reliable parsing - Use `--body-file -` with piped input for multiline descriptions - This process should feel thorough - user should feel they've thought through everything - Quality over speed - don't rush to finish