Use when planning new features or need structured requirements - creates feature structure, elicits EARS requirements through systematic questioning, proposes architectural approaches with trade-offs...
Guide feature planning in one of two modes:
docx/features/[NN-name]/plan.md with bite-sized tasks. No EARS, no RGR. For solo work, ≤3 days, no compliance/handoff. Derived from the superpowers writing-plans pattern.requirements.md EARS + design.md + tasks.md) with three approval gates and TDD enforcement downstream. For team work, multi-week, compliance/audit, or stakeholder review.The skill picks a mode (or asks when ambiguous), then runs the matching playbook.
Activate this skill when:
/dev-workflow:spec command (any sub-arg)Before writing anything, decide Quick vs Full.
/dev-workflow:spec quick/dev-workflow:spec fullThe thresholds above are deliberately gapped — 4-7 days of effort, 9-15 tasks, or any partial signal match falls in the middle zone. If you don't get a clean all-true Quick or any-true Full match, the feature is ambiguous by definition. Ask the user.
This feature could go either way. Pick a planning mode:
1. Quick — single plan.md, no EARS, no RGR (recommended for solo, ≤3 days)
2. Full — 3-file spec with EARS + TDD enforcement (recommended for team, >1 week, compliance)
Default if you don't pick: Quick.
Announce the chosen mode:
"Using [Quick/Full] mode. [One-sentence reason from signals above.]"
Then run the matching playbook below.
Output: docx/features/[NN-feature-name]/plan.md (single file)
ls docx/features/ to find next NN numbermkdir -p docx/features/[NN-feature-name]dev-workflow/templates/plan.mddocx/features/[NN-feature-name]/plan.md, replacing [Feature Name] with the actual nameAudience assumption: an engineer with zero context for this codebase. Be exact.
Required sections:
Granularity rule: if a step takes longer than 5 minutes, split it.
"Quick plan saved to
docx/features/[NN-feature-name]/plan.md. Review and approve to proceed to implementation. Run/dev-workflow:spec executewhen ready."
That's it. No EARS, no design alternatives, no RGR. Implementation is handled by spec-driven-implementation (which auto-detects plan.md and runs in Quick execution mode).
To upgrade, see "Upgrade path" at the bottom of this skill.
Three phases, three approval gates. Use this when signals say Full.
Goal: Establish feature structure and placeholder files
Process:
ls docx/features/mkdir -p docx/features/[NN-feature-name]dev-workflow/templates/requirements.mddocx/features/[NN-feature-name]/requirements.md (replace [Feature Name] with actual name)dev-workflow/templates/design.mddocx/features/[NN-feature-name]/design.md (replace [Feature Name] with actual name)dev-workflow/templates/tasks.mddocx/features/[NN-feature-name]/tasks.md (replace [Feature Name] with actual name)Output:
Created feature: docx/features/[NN-feature-name]/
- requirements.md (from template)
- design.md (from template)
- tasks.md (from template)
Next step: Define requirements using EARS format
User Confirmation:
"Feature structure created. Ready to define requirements?"
Goal: Capture clear, testable requirements using EARS methodology
Scope Decomposition Check (do FIRST):
Before eliciting requirements, scan the request. If it describes multiple independent subsystems (e.g., "auth + billing + admin dashboard"), STOP and decompose into separate features before refining any one. Don't burn elicitation questions on a feature that should be three.
🗣 Say: "This request covers [N] independent subsystems. I'll create separate features for each before eliciting requirements."
No Placeholders Rule:
Requirements and downstream plans MUST NOT contain:
Brainstorming Integration (Optional):
dev-workflow:brainstormingHow to activate:
Use Skill tool: Skill(skill: "dev-workflow:brainstorming")
EARS Format Explained:
EARS (Easy Approach to Requirements Syntax) provides five templates for unambiguous requirements:
Ubiquitous Requirements - Always true
Event-Driven Requirements - Triggered by events
State-Driven Requirements - Active during specific states
Conditional Requirements - Based on conditions
Optional Requirements - Feature toggles
Research Protocol (Before Eliciting Requirements):
Before diving into requirement questions, gather context through research:
Prior Art Research
Technical Documentation
API Research (if applicable)
curl to explore API endpointsDocument Findings
🗣 Say: "Let me research similar implementations before we define requirements."
Systematic Questioning Approach:
Ask the user these questions to elicit requirements:
Core Functionality
Event-Driven Requirements
State-Driven Requirements
Conditional Requirements
Performance Requirements
Security Requirements
Error Handling
Edge Cases
Best Practices:
Requirement IDs & Traceability:
REQ-001).Output Format:
Update docx/features/[NN-feature-name]/requirements.md with:
User Confirmation:
"Requirements complete. Ready for design phase?"
Goal: Create comprehensive technical design with architectural decisions
Research Protocol (Before Design):
Before proposing architectural approaches, research solutions:
Architecture Research
Library/Framework Research
API Research (if applicable)
curl to test API endpointsDocument Findings
🗣 Say: "Let me research technical approaches before proposing architecture options."
Process:
Brainstorming Integration
dev-workflow:brainstorming for collaborative design explorationHow to activate:
Use Skill tool: Skill(skill: "dev-workflow:brainstorming")
UltraThink for Complex Designs: Before proposing technical approaches, activate deep thinking when:
🗣 Say: "This design requires deep thinking. Let me ultrathink the architectural fundamentals before proposing approaches."
During UltraThink, question:
After UltraThink: Present approaches with explicit reasoning about architectural trade-offs and scalability considerations.
Approach Comparison Present options with trade-offs:
Option A: [Approach Name]
Option B: [Approach Name]
Recommendation
Design Document Structure
Create comprehensive design.md covering:
Architecture Overview
Component Structure
Data Flow
API Contracts
Error Handling
Security Considerations
Performance Considerations
Testing Strategy
Approval Gate:
"Design complete. Ready for task breakdown?"
Wait for explicit user approval before proceeding.
Run /dev-workflow:spec execute. The implementation skill auto-detects plan.md and runs Quick execution: follow the steps, run verification commands, commit. No RGR enforcement.
Run /dev-workflow:spec tasks then /dev-workflow:spec execute. The implementation skill detects tasks.md and runs Full execution: RED-GREEN-REFACTOR per task, traceability to requirement IDs, quality gates.
Both modes integrate with dev-workflow:review, dev-workflow:git-workflow, and dev-workflow:test-driven-development (the last one is mandatory in Full mode, optional in Quick).
If a Quick feature outgrows its plan (scope expands, stakeholders enter, architecture decisions emerge):
docx/features/[NN-name]/plan.mdplan.md → plan.archived.md for traceabilityDowngrade (Full → Quick) is not supported. Once EARS requirements exist, throwing them away is wasteful — just continue in Full mode.
User: "Add a CSV export button to the reports page"
Assistant:
Signals: solo, ~1 day, no compliance, no architectural decision → Quick mode.
Created docx/features/03-csv-export/plan.md with 4 tasks.
Review and approve, then run /dev-workflow:spec execute.
User: "Add user authentication across web + mobile, must meet SOC 2"
Assistant:
Signals: multi-platform, compliance required, JWT vs session decision → Full mode.
Created docx/features/04-user-authentication/{requirements,design,tasks}.md.
Phase 1 complete. Phase 2: I'll elicit requirements in EARS format.
1. What authentication methods should be supported?
2. What's the session lifetime requirement?
[...]
User: "Add a notifications system"
Assistant:
Scope is ambiguous between Quick and Full. Pick one:
1. Quick — single plan.md, no EARS, no RGR (≤3 days, solo)
2. Full — 3-file spec with EARS + TDD (>1 week, team, compliance)
Default if you don't pick: Quick.