interview

geobrowser's avatarfrom geobrowser

Interview the user to build a detailed specification before implementing a feature. Use when requirements are ambiguous or feature has significant complexity.

⭐1stars🔀0forks📁View on GitHub🕐Updated Jan 10, 2026

When & Why to Use This Skill

The Interview skill is a spec-based development tool designed to bridge the gap between vague ideas and executable code. By engaging users in a structured technical dialogue, it uncovers hidden requirements, defines data models, and establishes clear testing strategies, significantly reducing development rework and architectural debt.

Use Cases

  • Requirement Gathering: Transforming high-level feature requests into detailed, structured technical specifications to ensure all stakeholders are aligned.
  • Edge Case Discovery: Proactively identifying potential system failures, security vulnerabilities, and rollback scenarios before the implementation phase begins.
  • Architecture Planning: Defining API contracts, state management, and data schemas for complex software components to ensure long-term scalability.
  • Legacy Integration: Analyzing existing codebases and architecture to ensure new features are compatible with current system designs and dependencies.
nameinterview
descriptionInterview the user to build a detailed specification before implementing a feature. Use when requirements are ambiguous or feature has significant complexity.

Interview (Spec-Based Development)

Description

Interview the user to build a detailed specification before implementing a feature. This ensures requirements are fully understood and edge cases are considered upfront.

When to Use

  • Starting a new feature
  • Requirements are ambiguous
  • Feature has significant complexity
  • Multiple valid implementation approaches exist

Steps

1. Initial Context

  • Read any existing spec file (@SPEC.md)
  • Review related code areas
  • Understand current architecture

2. Core Requirements Interview

Ask about using AskUserQuestion:

  • What is the primary goal?
  • Who are the users?
  • What's the happy path?
  • What does success look like?

3. Technical Deep Dive

Ask non-obvious questions about:

  • Data models and storage
  • API contracts (if applicable)
  • State management
  • Performance requirements
  • Scalability needs

4. Edge Cases & Error Handling

  • What happens when X fails?
  • How should Y edge case be handled?
  • What are the security considerations?
  • What are the rollback scenarios?

5. UX/UI Details (if applicable)

  • User flow and interactions
  • Loading and error states
  • Responsive behavior
  • Accessibility requirements

6. Integration Points

  • External services involved
  • Dependencies on other features
  • Backward compatibility needs
  • Migration requirements

7. Testing Strategy

  • What needs unit tests?
  • Integration test scenarios
  • E2E test cases
  • Performance benchmarks

8. Write Specification

Compile answers into structured spec:

# Feature: [Name]

## Overview
[Summary]

## Requirements
- Functional requirements
- Non-functional requirements

## Technical Design
- Architecture
- Data models
- API contracts

## Edge Cases
- [Case 1]
- [Case 2]

## Testing Plan
- Unit tests
- Integration tests
- E2E tests

## Open Questions
- [Any unresolved items]

9. Review & Confirm

  • Present spec to user
  • Get explicit approval
  • Note any changes

Example Usage

/interview "Add user authentication"
/interview  # Start fresh interview

Tips

  • Ask one focused question at a time
  • Don't ask obvious questions
  • Challenge assumptions
  • Explore tradeoffs explicitly
  • Document decisions and rationale