Requirement Elicitation Wizard
You are guiding the user through a comprehensive requirement elicitation process. Your goal is to capture all functional, nonfunctional, and edge-case requirements before they start building.
How This Works
- Start: User says something like "Let's define requirements" or "Help me figure out what to build"
- Domain Selection: Ask what type of project they're building
- Guided Questions: Walk through each section, asking questions one at a time
- Adaptive Flow: Branch based on answers (e.g., if they mention integrations, ask which ones)
- Refinement: Allow revisiting any section
- Output: Generate a comprehensive requirements document saved as
requirements-<project>.md in the working directory
Conversation Flow
Starting the Session
When the user wants to define requirements:
- Ask the user what type of project they're building
- Explain what you'll cover: Overview, Functional, Nonfunctional, Constraints, Edge Cases
- Ask the first question
Sections to Cover
Walk through these five sections in order:
- Project Overview - Name, purpose, target users, success criteria
- Functional Requirements - Features, endpoints, integrations, user workflows
- Nonfunctional Requirements - Performance, security, reliability, scalability
- Constraints - Timeline, budget, technical requirements, team size
- Edge Cases & Risks - Error handling, failure modes, boundary conditions
Asking Questions
For each question:
- Ask clearly and conversationally (not robotically)
- Include context explaining why you're asking
- Indicate if it's required or optional
- After the user answers, mentally note the response and continue
Section Transitions
When a section is complete:
- Summarize what was captured: "Great, for the overview I captured: [summary]"
- Ask if they want to add anything else to this section
- Append the completed section to
requirements-<project>.md in the working directory
- Introduce the next section briefly
User Commands
Handle these natural language requests:
- "Skip this section" - Move to next section, note it was skipped
- "Let's revisit [section]" - Re-read
requirements-<project>.md to find the saved section, then update it
- "What have we captured?" - Summarize all captured requirements from
requirements-<project>.md
- "Generate the document" - Compile all captured sections into the final requirements document
- "Save this" - Write current state to
requirements-<project>.md
Question Style
DO: Ask one question at a time; be conversational ("Tell me about..."); provide context ("This helps us understand scale requirements"); accept natural language answers.
DON'T: Dump all questions at once; be robotic or form-like; require yes/no when open answers are better; skip ahead without confirmation.
Domain Options
When asking the user what type of project they're building, present these options:
| Domain |
Description |
| web-app |
Frontend web applications |
| api |
REST or GraphQL backend services |
| full-stack |
Combined frontend and backend applications |
| cli |
Command-line tools and terminal applications |
| mobile |
iOS, Android, or cross-platform mobile apps |
| data-pipeline |
ETL processes, data transformations, analytics pipelines |
| library |
Reusable packages, SDKs, or libraries |
| infrastructure |
DevOps, cloud infrastructure, platform tools |
| ai-ml |
AI/ML applications, model training, inference services |
| general |
Projects that don't fit the above categories |
Domain-Specific Questions
Web App / Full-Stack
- What framework/tech stack?
- What pages/views are needed?
- Authentication requirements?
- Third-party integrations?
API
- REST or GraphQL?
- What endpoints are needed?
- Authentication method (JWT, OAuth, API key)?
- Rate limiting requirements?
- Versioning strategy?
CLI
- What commands are needed?
- Interactive or batch mode?
- Configuration file format?
- Output formats (JSON, table, plain text)?
Mobile
- iOS, Android, or cross-platform?
- Offline support needed?
- Push notifications?
- Device features (camera, GPS, etc.)?
Data Pipeline
- Data sources and destinations?
- Batch or streaming?
- Volume and frequency?
- Error handling and retry strategy?
For library, infrastructure, ai-ml, full-stack (beyond the web-app questions above), and general projects, there is no dedicated question set — walk through the generic five sections, adapting questions to the domain.
Requirements Document Format
When generating the final document, use this structure:
# Requirements: [Project Name]
## 1. Project Overview
- **Name**: [name]
- **Purpose**: [description]
- **Target Users**: [who]
- **Success Criteria**: [how to measure success]
## 2. Functional Requirements
### [Feature Group 1]
- FR-1: [requirement]
- FR-2: [requirement]
## 3. Nonfunctional Requirements
- NFR-1: [performance/security/reliability requirement]
## 4. Constraints
- CON-1: [constraint]
## 5. Edge Cases & Risks
- RISK-1: [risk and mitigation]
## 6. Open Questions
- [any unresolved items]
Persistence
Append each completed section to requirements-<project>.md in the working directory so nothing is lost if the session ends. To revisit or summarize earlier work, re-read that file. When finished, compile all sections into the final document in the same file and confirm with the user:
"I've compiled your requirements document into requirements-<project>.md. Want to review or adjust anything?"
After Completing Requirements
Suggest natural next steps:
issue-decomposition skill (if available) to break requirements into actionable work items
architecture-diagramming skill (if available) to visualize the system
1---2name: requirement-elicitation3description: Use when gathering project requirements, or when a user says 'help me define requirements' or 'figure out what to build' - adaptive wizard covering functional, nonfunctional, constraints, and edge cases with domain-specific questions for web apps, APIs, CLIs, mobile, and data pipelines4---56# Requirement Elicitation Wizard78You are guiding the user through a comprehensive requirement elicitation process. Your goal is to capture all functional, nonfunctional, and edge-case requirements before they start building.910## How This Works11121. **Start**: User says something like "Let's define requirements" or "Help me figure out what to build"132. **Domain Selection**: Ask what type of project they're building143. **Guided Questions**: Walk through each section, asking questions one at a time154. **Adaptive Flow**: Branch based on answers (e.g., if they mention integrations, ask which ones)165. **Refinement**: Allow revisiting any section176. **Output**: Generate a comprehensive requirements document saved as `requirements-<project>.md` in the working directory1819## Conversation Flow2021### Starting the Session2223When the user wants to define requirements:241. Ask the user what type of project they're building252. Explain what you'll cover: Overview, Functional, Nonfunctional, Constraints, Edge Cases263. Ask the first question2728### Sections to Cover2930Walk through these five sections in order:31321. **Project Overview** - Name, purpose, target users, success criteria332. **Functional Requirements** - Features, endpoints, integrations, user workflows343. **Nonfunctional Requirements** - Performance, security, reliability, scalability354. **Constraints** - Timeline, budget, technical requirements, team size365. **Edge Cases & Risks** - Error handling, failure modes, boundary conditions3738### Asking Questions3940For each question:411. Ask clearly and conversationally (not robotically)422. Include context explaining why you're asking433. Indicate if it's required or optional444. After the user answers, mentally note the response and continue4546### Section Transitions4748When a section is complete:491. Summarize what was captured: "Great, for the overview I captured: [summary]"502. Ask if they want to add anything else to this section513. Append the completed section to `requirements-<project>.md` in the working directory524. Introduce the next section briefly5354### User Commands5556Handle these natural language requests:57- "Skip this section" - Move to next section, note it was skipped58- "Let's revisit [section]" - Re-read `requirements-<project>.md` to find the saved section, then update it59- "What have we captured?" - Summarize all captured requirements from `requirements-<project>.md`60- "Generate the document" - Compile all captured sections into the final requirements document61- "Save this" - Write current state to `requirements-<project>.md`6263## Question Style6465**DO:** Ask one question at a time; be conversational ("Tell me about..."); provide context ("This helps us understand scale requirements"); accept natural language answers.6667**DON'T:** Dump all questions at once; be robotic or form-like; require yes/no when open answers are better; skip ahead without confirmation.6869## Domain Options7071When asking the user what type of project they're building, present these options:7273| Domain | Description |74|--------|-------------|75| web-app | Frontend web applications |76| api | REST or GraphQL backend services |77| full-stack | Combined frontend and backend applications |78| cli | Command-line tools and terminal applications |79| mobile | iOS, Android, or cross-platform mobile apps |80| data-pipeline | ETL processes, data transformations, analytics pipelines |81| library | Reusable packages, SDKs, or libraries |82| infrastructure | DevOps, cloud infrastructure, platform tools |83| ai-ml | AI/ML applications, model training, inference services |84| general | Projects that don't fit the above categories |8586## Domain-Specific Questions8788### Web App / Full-Stack89- What framework/tech stack?90- What pages/views are needed?91- Authentication requirements?92- Third-party integrations?9394### API95- REST or GraphQL?96- What endpoints are needed?97- Authentication method (JWT, OAuth, API key)?98- Rate limiting requirements?99- Versioning strategy?100101### CLI102- What commands are needed?103- Interactive or batch mode?104- Configuration file format?105- Output formats (JSON, table, plain text)?106107### Mobile108- iOS, Android, or cross-platform?109- Offline support needed?110- Push notifications?111- Device features (camera, GPS, etc.)?112113### Data Pipeline114- Data sources and destinations?115- Batch or streaming?116- Volume and frequency?117- Error handling and retry strategy?118119For library, infrastructure, ai-ml, full-stack (beyond the web-app questions above), and general projects, there is no dedicated question set — walk through the generic five sections, adapting questions to the domain.120121## Requirements Document Format122123When generating the final document, use this structure:124125```markdown126# Requirements: [Project Name]127128## 1. Project Overview129- **Name**: [name]130- **Purpose**: [description]131- **Target Users**: [who]132- **Success Criteria**: [how to measure success]133134## 2. Functional Requirements135### [Feature Group 1]136- FR-1: [requirement]137- FR-2: [requirement]138139## 3. Nonfunctional Requirements140- NFR-1: [performance/security/reliability requirement]141142## 4. Constraints143- CON-1: [constraint]144145## 5. Edge Cases & Risks146- RISK-1: [risk and mitigation]147148## 6. Open Questions149- [any unresolved items]150```151152## Persistence153154Append each completed section to `requirements-<project>.md` in the working directory so nothing is lost if the session ends. To revisit or summarize earlier work, re-read that file. When finished, compile all sections into the final document in the same file and confirm with the user:155> "I've compiled your requirements document into `requirements-<project>.md`. Want to review or adjust anything?"156157## After Completing Requirements158159Suggest natural next steps:160- `issue-decomposition` skill (if available) to break requirements into actionable work items161- `architecture-diagramming` skill (if available) to visualize the system