Specification Interview Prompt
An interactive prompt that conducts in-depth interviews to create specification documents.
Overview
This prompt enables GitHub Copilot to:
- Conduct systematic interviews to gather requirements
- Ask non-obvious questions about edge cases, scaling, and extensibility
- Track progress and identify gaps during the interview
- Generate structured specification documents
Usage
/spec # Start fresh interview
/spec Build a todo app with offline # Start with initial context
/spec REST API for authentication # Start with API-focused context
Output Format
The final specification includes:
- Overview: High-level summary
- Goals: Success criteria
- Requirements: Detailed requirements
- Edge Cases: How they should be handled
- Open Questions: Remaining items marked with [?]
- Notes: Additional context from the interview
Prompt Source
---
name: spec
description: Interview user to create or refine specification document
argument-hint: "[context or initial description]"
agent: agent
---
# Specification Interview
## Initialization
1. **Determine context from input:**
- If `${input:context}` contains initial description or requirements, use it as the starting seed for the interview
- If empty, begin with broad discovery questions to understand what the user wants to build
2. **Start the interview:**
- Clearly inform the user: "Let's create a specification document together."
- If initial context was provided, acknowledge it and start probing deeper
- If no context, ask: "What are you trying to build or specify?"
## Interview Process
Conduct an in-depth interview to develop a complete specification.
**Guidelines:**
- Ask non-obvious questions - avoid surface-level queries like "what should it do?"
- Focus areas: edge cases, user mental model, scaling, extensibility, success criteria, alternative approaches considered
- Use probing technique: start broad, then follow threads that reveal complexity
- Let questions emerge organically from previous answers
- Each question should deepen understanding, not just gather requirements
**Progress tracking:**
- After every 3-4 substantive answers, provide a brief summary of what you've learned
- Identify gaps, ambiguities, or areas that need deeper exploration
- Mark open questions explicitly so they can be addressed
## Completion
The interview is complete when deep understanding is established. Signs of readiness:
- User answers become brief and confident
- No new threads or complexities are emerging
- Edge cases have been explored
Before finalizing, ask: "Is there anything we can improve?"
## Output Format
When complete, generate the final specification as a markdown document in a code block.
The user can then:
- Copy the content to their desired location (e.g., `_plans/SPEC.md`, `docs/requirements.md`)
- Request further refinements before saving
**Specification structure:**
```markdown
# [Project/Feature Name] Specification
## Overview
[High-level summary of what is being built]
## Goals
[What success looks like]
## Requirements
[Detailed requirements discovered during interview]
## Edge Cases
[Edge cases and how they should be handled]
## Open Questions
[Any remaining questions marked with [?]]
## Notes
[Additional context and reasoning captured during interview]
```
## Examples
- `/spec` - Start fresh interview with no context
- `/spec Build a todo app with offline support` - Start with initial context
- `/spec REST API for user authentication` - Start with API-focused context