Workflow Process Guide
September 14, 2025 · View on GitHub
This guide explains the complete spec-driven development workflow and best practices for using Spec Workflow MCP.
Overview
The spec-driven workflow follows a structured approach:
Steering → Specifications → Implementation → Verification
Each phase builds on the previous, ensuring systematic and well-documented development.
Phase 1: Project Setup with Steering Documents
Why Steering Documents?
Steering documents provide high-level guidance that keeps your project aligned and consistent. They act as a north star for all development decisions.
Creating Steering Documents
"Create steering documents for my project"
This generates three key documents:
1. Product Steering (steering/product.md)
- Product vision and mission
- Target users and personas
- Core features and priorities
- Success metrics and KPIs
- Non-goals and constraints
2. Technical Steering (steering/tech.md)
- Architecture decisions
- Technology stack choices
- Performance requirements
- Security considerations
- Scalability approach
3. Structure Steering (steering/structure.md)
- Project organization
- File and folder conventions
- Naming standards
- Module boundaries
- Documentation structure
Best Practices for Steering
- Create early - Set up steering before any specs
- Keep updated - Revise as project evolves
- Reference often - Use for decision making
- Share widely - Ensure team alignment
Phase 2: Specification Creation
The Three-Document System
Each spec consists of three sequential documents:
Requirements → Design → Tasks
Requirements Document
Purpose: Define WHAT needs to be built
Contents:
- Feature overview
- User stories
- Functional requirements
- Non-functional requirements
- Acceptance criteria
- Constraints and assumptions
Example Creation:
"Create requirements for a user notification system that supports:
- Email notifications
- In-app notifications
- Push notifications
- User preferences
- Notification history"
Design Document
Purpose: Define HOW it will be built
Contents:
- Technical architecture
- Component design
- Data models
- API specifications
- Integration points
- Implementation approach
Automatic Generation: Created after requirements approval
Tasks Document
Purpose: Define the STEPS to build it
Contents:
- Hierarchical task breakdown
- Dependencies
- Effort estimates
- Implementation order
- Testing requirements
Structure Example:
1.0 Database Setup
1.1 Create notification tables
1.2 Set up indexes
1.3 Create migration scripts
2.0 Backend Implementation
2.1 Create notification service
2.1.1 Email handler
2.1.2 Push handler
2.2 Create API endpoints
2.3 Add authentication
3.0 Frontend Implementation
3.1 Create notification components
3.2 Integrate with API
3.3 Add preference UI
Phase 3: Review and Approval
Approval Workflow
- Document Creation - AI generates document
- Review Request - Approval requested automatically
- User Review - Review in dashboard/extension
- Decision - Approve, request changes, or reject
- Revision (if needed) - AI updates based on feedback
- Final Approval - Document locked for implementation
Making Approval Decisions
When to Approve
- Requirements are complete and clear
- Design solves the stated problem
- Tasks are logical and comprehensive
- No major concerns or gaps
When to Request Changes
- Missing important details
- Unclear specifications
- Better approach available
- Needs alignment with standards
When to Reject
- Fundamental misunderstanding
- Wrong approach entirely
- Requires complete rethink
Providing Effective Feedback
Good feedback:
"The authentication flow should use JWT tokens instead of sessions.
Add rate limiting to the API endpoints.
Include error handling for network failures."
Poor feedback:
"This doesn't look right. Fix it."
Phase 4: Implementation
Task Execution Strategy
Sequential Implementation
Best for dependent tasks:
"Implement task 1.1 from user-auth spec"
"Now implement task 1.2"
"Continue with task 1.3"
Parallel Implementation
For independent tasks:
"Implement all UI tasks from the dashboard spec while I work on the backend"
Section-Based Implementation
For logical groupings:
"Implement all database tasks from the payment spec"
Progress Tracking
Monitor implementation through:
- Dashboard task view
- Progress bars
- Status indicators
- Completion percentages
Handling Blockers
When blocked:
- Document the blocker
- Create a sub-task for resolution
- Move to parallel tasks if possible
- Update task status to "blocked"
Phase 5: Verification
Testing Strategy
After implementation:
-
Unit Testing
"Create unit tests for the notification service" -
Integration Testing
"Create integration tests for the API endpoints" -
End-to-End Testing
"Create E2E tests for the complete notification flow"
Documentation Updates
Keep documentation current:
"Update the API documentation for the new endpoints"
"Add usage examples to the README"
File Structure and Organization
Standard Project Structure
your-project/
├── .spec-workflow/
│ ├── steering/
│ │ ├── product.md
│ │ ├── tech.md
│ │ └── structure.md
│ ├── specs/
│ │ ├── user-auth/
│ │ │ ├── requirements.md
│ │ │ ├── design.md
│ │ │ └── tasks.md
│ │ └── payment-gateway/
│ │ ├── requirements.md
│ │ ├── design.md
│ │ └── tasks.md
│ └── approval/
│ └── [approval tracking files]
├── src/
│ └── [your implementation]
└── tests/
└── [your tests]
Naming Conventions
Spec Names:
- Use kebab-case:
user-authentication - Be descriptive:
payment-processingnotpayments - Avoid versions:
user-profilenotuser-profile-v2
Document Names:
- Always:
requirements.md,design.md,tasks.md - Consistent across all specs
Advanced Workflows
Feature Iterations
For evolving features:
- Create initial spec
- Implement MVP
- Create enhancement spec
- Reference original spec
- Build on existing work
Example:
"Create an enhancement spec for user-auth that adds:
- Social login (Google, Facebook)
- Biometric authentication
- Session management improvements"
Refactoring Workflow
-
Document Current State
"Create a spec documenting the current authentication system" -
Design Improvements
"Design refactoring to improve authentication performance" -
Plan Migration
"Create migration tasks for the refactoring" -
Implement Gradually
"Implement refactoring tasks with backward compatibility"
Bug Resolution Workflow
-
Bug Report
"Create bug report for login timeout issue" -
Investigation
"Investigate root cause of bug #45" -
Solution Design
"Design fix for the timeout issue" -
Implementation
"Implement the bug fix" -
Verification
"Create regression tests for bug #45"
Best Practices
1. Maintain Spec Granularity
Good: One spec per feature
user-authenticationpayment-processingnotification-system
Poor: Overly broad specs
backend-systemall-features
2. Sequential Document Creation
Always follow the order:
- Requirements (what)
- Design (how)
- Tasks (steps)
Never skip ahead.
3. Complete Approval Before Implementation
- ✅ Approve requirements → Create design
- ✅ Approve design → Create tasks
- ✅ Review tasks → Start implementation
- ❌ Skip approval → Implementation issues
4. Keep Specs Updated
When requirements change:
"Update the requirements for user-auth to include SSO support"
5. Use Consistent Terminology
Maintain consistency across:
- Spec names
- Component names
- API terminology
- Database naming
6. Archive Completed Specs
Keep workspace clean:
"Archive the completed user-auth spec"
Common Patterns
MVP to Full Feature
- Start with MVP spec
- Implement core functionality
- Create enhancement specs
- Build incrementally
- Maintain backward compatibility
Microservices Development
- Create service steering document
- Define service boundaries
- Create spec per service
- Define integration points
- Implement services independently
API-First Development
- Create API spec first
- Design contracts
- Generate documentation
- Implement endpoints
- Create client SDKs
Troubleshooting Workflow Issues
Specs Getting Too Large
Solution: Break into smaller specs
"Split the e-commerce spec into:
- product-catalog
- shopping-cart
- checkout-process
- order-management"
Unclear Requirements
Solution: Request clarification
"The requirements need more detail on:
- User roles and permissions
- Error handling scenarios
- Performance requirements"
Design Doesn't Match Requirements
Solution: Request revision
"The design doesn't address the multi-tenancy requirement.
Please revise to include tenant isolation."
Integration with Development Process
Git Workflow
- Create feature branch per spec
- Commit after each task completion
- Reference spec in commit messages
- PR when spec is complete
CI/CD Integration
- Run tests for completed tasks
- Validate against requirements
- Deploy completed features
- Monitor against success metrics
Team Collaboration
- Share dashboard URL
- Assign specs to team members
- Review each other's specs
- Coordinate through approvals
Related Documentation
- User Guide - General usage instructions
- Prompting Guide - Example prompts and patterns
- Tools Reference - Complete tool documentation
- Interfaces Guide - Dashboard and extension details