plugins/spec-interview/skills/spec-interview/SKILL.md
--- name: spec-interview description: AI-driven requirements interview. Use when user says "interview me", "gather requirements", "help me spec this out", "ask me questions about", or wants to create detailed specifications through interactive Q&A. Note: Technical Specification generation is also available as Phase 3 of planning-interview v2.0 for users who want a unified planning + spec flow. version: 1.0.0 --- # Spec Interview Conducts in-depth interviews to gather comprehensive requ
npx skillsauth add jaykim88/claude-ai-engineering plugins/spec-interview/skills/spec-interviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Conducts in-depth interviews to gather comprehensive requirements, then generates detailed specification documents.
Extract from user message:
| Element | What to Extract | |---------|----------------| | Topic | What feature/project they want to specify | | Context | Any initial description or constraints provided | | Focus Areas | Specific aspects they want to emphasize |
Examples:
"Interview me about building a task management app" → Topic extracted"Help me spec out a new authentication system" → Topic + domain"Ask me questions about redesigning our dashboard" → Topic + focus (UI/UX)Initial acknowledgment: Briefly confirm the topic and explain the interview process.
Create 2-4 in-depth questions using AskUserQuestion tool.
Question Categories (rotate through these):
| Category | Question Types | |----------|---------------| | Technical Implementation | Architecture, tech stack, integrations, scalability, performance | | User Experience | User flows, interactions, edge cases, error states, accessibility | | Business Logic | Rules, constraints, validations, permissions, workflows | | Concerns & Risks | Security, privacy, compliance, data handling, potential issues | | Trade-offs | Performance vs features, complexity vs simplicity, cost vs quality | | Non-functional Requirements | Monitoring, logging, testing, deployment, maintenance |
Question Quality Rules:
✅ DO Ask:
❌ DON'T Ask:
AskUserQuestion Format:
AskUserQuestion(
questions=[
{
"question": "What happens when...",
"header": "Edge Case",
"options": [
{"label": "Option A", "description": "What this means..."},
{"label": "Option B", "description": "Trade-off here..."},
{"label": "Option C", "description": "Alternative approach..."}
],
"multiSelect": false
},
# 1-3 more questions
]
)
Important:
After receiving answers, analyze what you learned:
Track Coverage:
Identify Gaps:
Based on gaps and new insights, ask 2-4 more questions.
Follow-up Strategy:
Example Progression:
Round 1: High-level architecture, main user flows Round 2: Edge cases, error handling, data consistency Round 3: Security, permissions, compliance Round 4: Performance, scalability, monitoring
Depth over breadth: Better to fully understand 3 critical areas than superficially cover 10.
Interview is complete when:
✅ Coverage criteria met:
✅ Diminishing returns:
Don't over-interview:
Create comprehensive spec document using all gathered information.
Spec Template:
# [Feature/Project Name] - Technical Specification
> **Generated**: YYYY-MM-DD <!-- Must run `date '+%Y-%m-%d'` to get exact date. Never estimate. -->
> **Author**: [User name if known]
> **Status**: Draft
## 1. Overview
### Purpose
[What this feature/project does and why it's needed]
### Scope
**In Scope:**
- [Item 1]
- [Item 2]
**Out of Scope:**
- [Item 1]
- [Item 2]
## 2. Requirements
### Functional Requirements
#### FR-1: [Requirement Name]
- **Description**: [What it does]
- **Priority**: High/Medium/Low
- **Rationale**: [Why this is needed]
- **Acceptance Criteria**:
- [ ] Criterion 1
- [ ] Criterion 2
#### FR-2: [Next Requirement]
...
### Non-Functional Requirements
#### NFR-1: Performance
- [Specific performance requirements]
#### NFR-2: Security
- [Security requirements and concerns]
#### NFR-3: Scalability
- [Scalability considerations]
## 3. Technical Design
### Architecture Overview
[High-level architecture description]
[ASCII diagram or description]
### Technology Stack
- **Frontend**: [Choices and rationale]
- **Backend**: [Choices and rationale]
- **Database**: [Choices and rationale]
- **Infrastructure**: [Choices and rationale]
### Key Components
#### Component 1: [Name]
- **Responsibility**: [What it does]
- **Interfaces**: [How it connects]
- **Dependencies**: [What it needs]
### Data Models
#### Model 1: [Entity Name]
```typescript
interface Entity {
id: string
field1: Type
field2: Type
}
...
| Error Type | User Action | System Response | |------------|-------------|-----------------| | Network failure | Submitting form | Show retry option, preserve data | | Invalid input | Entering data | Inline validation, clear error message |
| Risk | Likelihood | Impact | Mitigation | |------|-----------|--------|------------| | Risk 1 | High/Med/Low | High/Med/Low | How to mitigate | | Risk 2 | High/Med/Low | High/Med/Low | How to mitigate |
[Summary of key insights from the interview process]
Next Steps:
**Customization Rules:**
- Include only relevant sections (skip empty ones)
- Adapt depth to project complexity
- Preserve all insights from interview
- Use user's own language and examples where possible
- If user mentioned specific concerns, highlight them
---
### Step 7: Choose Save Location
**Options:**
1. **Current directory** (default)
- Save as `[feature-name]-spec.md` in current working directory
- Good for project-specific specs
2. **Ask user for location**
- If they have a preferred docs directory
- If this should go into a specific repo
**Filename format:**
- `[feature-name]-spec.md` (e.g., `task-management-spec.md`)
- Or user's preferred format if specified
---
### Step 8: Save Document
Use Write tool to create the specification file.
**Save location examples:**
./task-management-spec.md ./docs/specs/authentication-spec.md /Users/jaykim/Documents/Projects/myapp/specs/dashboard-redesign-spec.md
**If directory doesn't exist:**
```bash
mkdir -p path/to/directory
Show the user:
Example confirmation:
✅ Specification saved to: ./task-management-spec.md
📋 Captured:
- 12 functional requirements
- Architecture: React + Node.js + PostgreSQL
- 8 key user flows with edge cases
- Security: JWT auth + role-based permissions
- 3 implementation phases defined
🎯 Next Steps:
1. Review and validate the specification
2. Break down into tasks (I can help with this!)
3. Identify any missing requirements
Want me to:
- Create a task breakdown from this spec?
- Generate API endpoint definitions?
- Draft database migration scripts?
English:
Korean:
Bad Questions:
Good Questions:
Bad Options:
Good Options:
If user says:
If user says something concerning:
Stop when:
Don't stop when:
✅ Use this skill when:
❌ Skip when:
| Scenario | Response | |----------|----------| | User gives vague answers | Drill deeper with specific follow-up questions | | User says "I don't know" | Offer options, educate on trade-offs, suggest industry standard | | Interview going too long | Summarize and ask if they want to continue or wrap up | | User wants to skip questions | Respect it, note as open question in spec | | Critical gaps remain | Flag them clearly in the spec's "Open Questions" section |
User: "Interview me about adding a dark mode feature"
Round 1:
Q1: How should users toggle dark mode?
Q2: Should the preference persist across sessions?
Q3: Should it respect system preferences?
Round 2:
Q1: What about images that look bad in dark mode?
Q2: Should third-party embeds (YouTube, etc.) also be dark?
→ Stop here (simple feature, enough detail)
Generate spec: 5-page document covering implementation
User: "I want to build a real-time collaboration tool, interview me"
Round 1: Core functionality, main use cases
Round 2: Real-time sync approach, conflict resolution
Round 3: Permissions, security, data privacy
Round 4: Scalability, performance under load
Round 5: Edge cases, offline mode, error recovery
Round 6: Testing, deployment, monitoring
→ Stop here (complex project fully explored)
Generate spec: 20-page comprehensive document
User: "Interview me about improving our API rate limiting"
Round 1: Current problems, desired behavior
Round 2: Rate limit rules, per-user vs global
Round 3: How to handle violations, error messages
Round 4: Monitoring, alerting, bypass for admins
→ Stop here (focused topic, thorough coverage)
Generate spec: 8-page technical design
learning-summary: For documenting the interview process itselfproject-insight: For analyzing existing codebase before planning new featuresplanning-interview v2.0: Unified planning flow (PRD → User Journey → Tech Spec → Wireframe).
Use spec-interview when you only need a technical spec without product planning context.
Use planning-interview Phase 3 when you want the spec to reference PRD personas and features.No configuration file needed. Saves to current directory by default or prompts user for location.
User can interview for multiple features:
"Interview me about: 1) user authentication, 2) file uploads, 3) notifications"
Handle by:
If interrupted, user can say:
"Continue the interview about [topic]"
Read the partial spec and continue from where it left off.
Multiple stakeholders:
"Interview me and my co-founder about our app"
Tag answers by person, note disagreements, highlight consensus decisions.
development
Audit and optimize third-party scripts — analytics, tag managers, chat widgets, embeds — with the right loading strategy, performance budget, facades, and CSP/consent controls. Use when adding a script, when TBT/INP regress, when a GDPR/CCPA consent requirement arises, or before shipping. Not for first-party bundle size (use bundle-optimization) or broad Core Web Vitals diagnosis (use rendering-performance).
development
Apply the Testing Trophy (mostly integration tests with RTL + MSW, sparing E2E with Playwright) and set coverage thresholds. Use before new feature work, after bug fixes, when CI coverage falls below target, or when tests are flaky or break on every refactor. Not for wiring coverage gates + Playwright into the GitHub Actions matrix (use cicd-pipeline) or auditing WCAG a11y compliance (use accessibility-audit).
development
Inventory and prioritize technical debt — TODO/FIXME/HACK, any usage, deprecated APIs, untested logic — with impact × effort matrix. Use at quarter start, before a refactoring sprint, when a new teammate joins, or when feature velocity slows. Not for actually paying down debt (use code-refactoring) or recording a migration approach (use decision-records) — this only inventories and prioritizes.
development
Decision framework for choosing the right state location — URL, server cache, local component, or shared/global store. Use when state-sync bugs appear, prop drilling gets deep (3+ levels), filters/tabs lose state on reload, or quarterly review. Not for form state specifically (use form-ux) or when the state is actually server data (use api-caching-optimization).