Skip to main content

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