Interview Me (Interactive Requirements & Design Alignment)
Thoroughly interview the user about every aspect of their task until reaching a complete, shared technical and product understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one.
Core Principles
- Codebase First (Silent Exploration):
- Before asking any question, actively explore existing code, schema definitions, protobuf contracts, config files, and documentation.
- Never ask the user questions that can be answered by reading the codebase.
- One Question at a Time:
- Never overwhelm the user with long lists of questions.
- Focus exclusively on the single most critical blocking decision point in each turn.
- Bring Recommendations:
- For every question, always provide a clear recommended option (marked with
(Recommended)) and explain the trade-offs concisely.
- Native Interactive Tool First:
- Prefer calling the runtime's native interactive prompt/selection tool (
AskFollowupQuestion in Claude Code, ask_question in Antigravity, etc.).
- Fall back to clean Markdown numbered choices only when running in a bare CLI environment without interactive tool capabilities.
- Top-Down Decision Tree:
- Resolve decisions in order: System Boundaries -> Architecture & Data Flow -> Storage & Schema -> API Contracts -> Edge Cases.
Multi-Platform Tool Mapping
| Platform / Runtime |
Native Tool / Mechanism |
Invocation Specification |
| Claude Code |
AskFollowupQuestion |
Pass question and options array. Place the recommended option first with (Recommended). |
| Antigravity / Gemini |
ask_question |
Pass questions array containing question, options, and is_multi_select. |
| OpenAI / Codex / Cursor |
Native user prompt tool (or Markdown fallback) |
Dynamically detect and invoke available user-prompt tools (e.g., ask_user, request_user_input). If none exist, output numbered Markdown options and stop generating to wait for input. |
Workflow
flowchart TD
A[Receive Task / Goal] --> B[Silent Codebase Exploration & Context Analysis]
B --> C{Are there unresolved design decisions?}
C -- Yes --> D[Construct Single Decision Question + Recommended Options]
D --> E{Check Available Interactive Tool}
E -- Claude Code --> F1[Call AskFollowupQuestion]
E -- Antigravity --> F2[Call ask_question]
E -- Other Agent Tool --> F3[Call Native Ask Tool]
E -- Bare CLI / No Tool --> F4[Output Markdown Numbered Options & Stop]
F1 --> H[Record User Decision in Context]
F2 --> H
F3 --> H
F4 --> H
H --> C
C -- No (Consensus Reached) --> I[Output Alignment Summary / Generate SPEC or Execution Plan]
Step 1: Silent Codebase Exploration
- Read existing implementations, models, schemas, and endpoints related to the user's prompt.
- Identify established constraints, reusable components, and architectural conventions.
Step 2: Build the Decision Tree
Structure pending decisions along the following hierarchy:
- Scope & Boundaries: Goals, core user roles, inputs, and expected deliverables.
- Architecture & Service Responsibility: Frontend vs. backend boundaries, service ownership, protocols.
- Data Model & Lifecycle: Entities, schemas, field types, persistence, TTL, and deletion policies.
- API Contracts & UX Interactions: Endpoint payloads, error states, and UI feedback flows.
- Edge Cases & Resilience: Failure recovery, concurrency, migration compatibility, and rate limits.
Step 3: Step-by-Step Questioning
- Pick the single most blocking decision at the current hierarchy level.
- Format the prompt:
- Summarize the decision context in 1-2 sentences.
- Provide 2–4 mutually exclusive or select choices.
- Highlight the recommended approach with
(Recommended).
Example (Text Fallback Mode when no tool is available):
### Decision Point: Task Context Synchronization
We need to decide how task changes in the editor synchronize with the backend:
1. **(Recommended) On-demand Lazy Snapshots**: Only fetch/persist task state on entering task views, minimizing unnecessary synchronization overhead.
2. **Real-time Global Sync**: Broadcast every asset/slot state modification to all connected clients immediately.
Please reply with your preferred option number (e.g., `1`) or share your thoughts:
Step 4: Consensus & Delivery
Once all critical branches of the decision tree have converged:
- Summarize confirmed architectural decisions clearly.
- Produce the final deliverable (e.g., update
SPEC.md, write a PRD, or create a concrete phased implementation plan).
Questioning Guidelines
- User-Centric Phrasing: Phrase selectable options from the user's perspective (e.g., "Adopt Option A: Keep computations in the frontend").
- No Redundant Placeholders: Do not include redundant generic "Other" options (UI or fallback text naturally allows freeform input).
- Exact File References: Use clickable markdown links when referencing files (e.g.,
[AppProviders.tsx](file:///path/to/file#L10)).
1---2name: interview-me3description: Deeply interview the user about technical and product requirements through an interactive, step-by-step decision-tree interview until reaching a shared understanding. Use when planning complex features, architecture changes, API designs, UX refactors, or resolving ambiguous decisions. Enforces exploring the codebase first, asking one question at a time, providing recommended options, and using native interactive question tools.4---56# Interview Me (Interactive Requirements & Design Alignment)78Thoroughly interview the user about every aspect of their task until reaching a complete, shared technical and product understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one.910---1112## Core Principles13141. **Codebase First (Silent Exploration)**:15 - Before asking any question, actively explore existing code, schema definitions, protobuf contracts, config files, and documentation.16 - **Never ask the user questions that can be answered by reading the codebase.**172. **One Question at a Time**:18 - Never overwhelm the user with long lists of questions.19 - Focus exclusively on the single most critical blocking decision point in each turn.203. **Bring Recommendations**:21 - For every question, always provide a clear recommended option (marked with `(Recommended)`) and explain the trade-offs concisely.224. **Native Interactive Tool First**:23 - Prefer calling the runtime's native interactive prompt/selection tool (`AskFollowupQuestion` in Claude Code, `ask_question` in Antigravity, etc.).24 - Fall back to clean Markdown numbered choices only when running in a bare CLI environment without interactive tool capabilities.255. **Top-Down Decision Tree**:26 - Resolve decisions in order: System Boundaries -> Architecture & Data Flow -> Storage & Schema -> API Contracts -> Edge Cases.2728---2930## Multi-Platform Tool Mapping3132| Platform / Runtime | Native Tool / Mechanism | Invocation Specification |33| :--- | :--- | :--- |34| **Claude Code** | `AskFollowupQuestion` | Pass `question` and `options` array. Place the recommended option first with `(Recommended)`. |35| **Antigravity / Gemini** | `ask_question` | Pass `questions` array containing `question`, `options`, and `is_multi_select`. |36| **OpenAI / Codex / Cursor** | Native user prompt tool (or Markdown fallback) | Dynamically detect and invoke available user-prompt tools (e.g., `ask_user`, `request_user_input`). If none exist, output numbered Markdown options and stop generating to wait for input. |3738---3940## Workflow4142```mermaid43flowchart TD44 A[Receive Task / Goal] --> B[Silent Codebase Exploration & Context Analysis]45 B --> C{Are there unresolved design decisions?}46 C -- Yes --> D[Construct Single Decision Question + Recommended Options]47 D --> E{Check Available Interactive Tool}48 E -- Claude Code --> F1[Call AskFollowupQuestion]49 E -- Antigravity --> F2[Call ask_question]50 E -- Other Agent Tool --> F3[Call Native Ask Tool]51 E -- Bare CLI / No Tool --> F4[Output Markdown Numbered Options & Stop]52 F1 --> H[Record User Decision in Context]53 F2 --> H54 F3 --> H55 F4 --> H56 H --> C57 C -- No (Consensus Reached) --> I[Output Alignment Summary / Generate SPEC or Execution Plan]58```5960### Step 1: Silent Codebase Exploration61- Read existing implementations, models, schemas, and endpoints related to the user's prompt.62- Identify established constraints, reusable components, and architectural conventions.6364### Step 2: Build the Decision Tree65Structure pending decisions along the following hierarchy:661. **Scope & Boundaries**: Goals, core user roles, inputs, and expected deliverables.672. **Architecture & Service Responsibility**: Frontend vs. backend boundaries, service ownership, protocols.683. **Data Model & Lifecycle**: Entities, schemas, field types, persistence, TTL, and deletion policies.694. **API Contracts & UX Interactions**: Endpoint payloads, error states, and UI feedback flows.705. **Edge Cases & Resilience**: Failure recovery, concurrency, migration compatibility, and rate limits.7172### Step 3: Step-by-Step Questioning73- Pick the single most blocking decision at the current hierarchy level.74- Format the prompt:75 - Summarize the decision context in 1-2 sentences.76 - Provide 2–4 mutually exclusive or select choices.77 - Highlight the recommended approach with `(Recommended)`.7879**Example (Text Fallback Mode when no tool is available)**:80```markdown81### Decision Point: Task Context Synchronization8283We need to decide how task changes in the editor synchronize with the backend:84851. **(Recommended) On-demand Lazy Snapshots**: Only fetch/persist task state on entering task views, minimizing unnecessary synchronization overhead.862. **Real-time Global Sync**: Broadcast every asset/slot state modification to all connected clients immediately.8788Please reply with your preferred option number (e.g., `1`) or share your thoughts:89```9091### Step 4: Consensus & Delivery92Once all critical branches of the decision tree have converged:93- Summarize confirmed architectural decisions clearly.94- Produce the final deliverable (e.g., update `SPEC.md`, write a PRD, or create a concrete phased implementation plan).9596---9798## Questioning Guidelines99100- **User-Centric Phrasing**: Phrase selectable options from the user's perspective (e.g., "Adopt Option A: Keep computations in the frontend").101- **No Redundant Placeholders**: Do not include redundant generic "Other" options (UI or fallback text naturally allows freeform input).102- **Exact File References**: Use clickable markdown links when referencing files (e.g., `[AppProviders.tsx](file:///path/to/file#L10)`).