requirements-gathering
Systematic requirements gathering through AskUserQuestion. Use when starting development to clarify app specifications.
When & Why to Use This Skill
The Requirements Gathering skill streamlines the initial phase of software development by systematically extracting critical project specifications through interactive dialogue. It eliminates ambiguity by guiding users through structured phases—covering purpose, features, UI design, and technical stacks—ultimately generating a comprehensive REQUIREMENTS.md file to align development efforts and prevent scope creep.
Use Cases
- Initial Project Scoping: Transforming a brief user idea (e.g., 'I want to build a fitness app') into a detailed technical specification document.
- MVP Definition: Helping stakeholders prioritize core features and identify the most critical functionality for an initial release to ensure faster time-to-market.
- Technical Alignment: Ensuring developers and users are aligned on platform support, data storage methods, and authentication requirements before any code is written.
- Documentation Automation: Automatically generating and maintaining a structured REQUIREMENTS.md file in the project root to serve as a single source of truth for the development lifecycle.
| name | requirements-gathering |
|---|---|
| description | Systematic requirements gathering through AskUserQuestion. Use when starting development to clarify app specifications. |
Requirements Gathering Skill
Systematically gather requirements through AskUserQuestion to ensure clear specifications before implementation.
Trigger Conditions
Apply this skill when:
- User invokes
/start-developmentcommand - Starting development of a new feature or app
- Requirements are unclear and need clarification
Gathering Process
Phase 1: Basic Information
Question 1: App Purpose
Header: "Purpose"
Question: "What is the main purpose of this app?"
Options:
- "Productivity/Task management"
- "E-commerce/Shopping"
- "Social/Communication"
- "Entertainment/Media"
(User can also provide custom answer)
Question 2: Target Users
Header: "Users"
Question: "Who are the target users?"
Options:
- "General consumers (B2C)"
- "Business users (B2B)"
- "Internal company use"
- "Specific community/group"
Question 3: Platform
Header: "Platform"
Question: "Which platforms do you want to support?"
Options:
- "iOS only"
- "Android only"
- "Both iOS and Android"
- "iOS, Android, and Web"
multiSelect: true
Phase 2: Feature Requirements
Question 4: Core Features
Header: "Features"
Question: "What are the 3-5 main features you need? (Select all that apply)"
Options:
- "User authentication (login/signup)"
- "Data listing and detail views"
- "Create/Edit/Delete operations"
- "Search and filtering"
multiSelect: true
Question 5: MVP Scope
Header: "MVP"
Question: "For the initial release (MVP), which feature is most critical?"
Options:
- "Core functionality working end-to-end"
- "Beautiful UI/UX design"
- "Performance and speed"
- "Comprehensive feature set"
Question 6: Data Storage
Header: "Storage"
Question: "How should data be stored?"
Options:
- "Local only (offline first)"
- "Cloud/Server (Firebase, Supabase, etc.)"
- "Hybrid (local + cloud sync)"
- "No persistent storage needed"
Phase 3: Screen Design
Question 7: Screen Count
Header: "Screens"
Question: "How many main screens do you expect?"
Options:
- "1-3 screens (simple app)"
- "4-6 screens (medium complexity)"
- "7-10 screens (complex app)"
- "10+ screens (large app)"
Question 8: Navigation Pattern
Header: "Navigation"
Question: "What navigation pattern do you prefer?"
Options:
- "Bottom navigation bar"
- "Drawer/Side menu"
- "Tab bar at top"
- "Simple stack navigation"
Phase 4: Technical Requirements
Question 9: External APIs
Header: "APIs"
Question: "Do you need external API integrations?"
Options:
- "No external APIs"
- "REST APIs"
- "GraphQL"
- "Third-party services (maps, payment, etc.)"
multiSelect: true
Question 10: Authentication
Header: "Auth"
Question: "What authentication method do you need?"
Options:
- "No authentication needed"
- "Email/Password"
- "Social login (Google, Apple, etc.)"
- "Phone number/OTP"
multiSelect: true
Question 11: Offline Support
Header: "Offline"
Question: "How important is offline functionality?"
Options:
- "Not needed (online only)"
- "Basic offline viewing"
- "Full offline support with sync"
- "Offline-first architecture"
Phase 5: Confirmation
After gathering all responses, compile a summary and confirm with the user.
Question 12: Requirements Summary
Header: "Confirm"
Question: "Does this requirements summary look correct?"
Options:
- "Yes, proceed with planning"
- "No, I need to modify some requirements"
Output: REQUIREMENTS.md
Generate a REQUIREMENTS.md file in the project root with the gathered information:
# Project Requirements
## Overview
- **App Name**: [To be determined]
- **Purpose**: [From Question 1]
- **Target Users**: [From Question 2]
- **Platforms**: [From Question 3]
## Features
### Core Features
[From Question 4]
### MVP Scope
[From Question 5]
## Data & Storage
- **Storage Method**: [From Question 6]
- **Offline Support**: [From Question 11]
## Screens & Navigation
- **Expected Screens**: [From Question 7]
- **Navigation Pattern**: [From Question 8]
## Technical Requirements
### Authentication
[From Question 10]
### External Integrations
[From Question 9]
## Next Steps
1. Review and approve this requirements document
2. Enter Plan Mode to design implementation
3. Begin feature-by-feature development
---
Generated on: [Date]
Integration with Workflow
After requirements gathering:
- Save REQUIREMENTS.md
- Transition to Plan Mode (EnterPlanMode)
- Design implementation based on requirements
- User approves plan
- Begin implementation with TodoWrite tracking
Tips for Effective Gathering
- Be Specific: Ask for concrete details, not vague descriptions
- Prioritize: Help users identify MVP features vs nice-to-have
- Validate: Confirm understanding before proceeding
- Iterate: Allow users to modify answers as they think through requirements
Sample Workflow
1. User: "I want to build a todo app"
2. Claude: Invokes requirements-gathering skill
3. Claude: Asks Question 1-12 using AskUserQuestion
4. Claude: Compiles responses into REQUIREMENTS.md
5. Claude: Shows summary and asks for confirmation
6. User: Confirms or requests modifications
7. Claude: Saves REQUIREMENTS.md
8. Claude: Enters Plan Mode for implementation design