Requirements Gathering Skill
Systematically gather requirements through AskUserQuestion to ensure clear specifications before implementation.
Trigger Conditions
Apply this skill when:
-
User invokes /start-development command
-
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
- Review and approve this requirements document
- Enter Plan Mode to design implementation
- 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
- User: "I want to build a todo app"
- Claude: Invokes requirements-gathering skill
- Claude: Asks Question 1-12 using AskUserQuestion
- Claude: Compiles responses into REQUIREMENTS.md
- Claude: Shows summary and asks for confirmation
- User: Confirms or requests modifications
- Claude: Saves REQUIREMENTS.md
- Claude: Enters Plan Mode for implementation design