5.3 KiB
name, model, description, user-invocable
| name | model | description | user-invocable |
|---|---|---|---|
| roadmap-planning | haiku | Plan features and break down work into implementable issues. Use when planning a feature, creating a roadmap, breaking down large tasks, or when the user needs help organizing work into issues. | false |
Roadmap Planning
How to plan features and create issues for implementation.
Planning Process
1. Understand the Goal
- What capability or improvement is needed?
- Who benefits and how?
- What's the success criteria?
2. Discovery Phase
Before breaking down work into issues, understand the user's workflow:
| Question | Why It Matters |
|---|---|
| Who is the user? | Specific persona, not "users" |
| What's their goal? | The job they're trying to accomplish |
| What's their workflow? | Step-by-step actions to reach the goal |
| What exists today? | Current state and gaps |
| What's the MVP? | Minimum to deliver value |
Walk through the workflow step by step:
- User starts at: [starting point]
- User does: [action 1]
- System responds: [what happens]
- User does: [action 2]
- ... continue until goal is reached
Identify the gaps:
- Where does the workflow break today?
- Which steps are missing or painful?
- What's the smallest change that unblocks value?
Derive issues from workflow gaps - not from guessing what might be needed. Each issue should address a specific gap in the user's workflow.
3. Break Down the Work
- Identify distinct components
- Define boundaries between pieces
- Aim for issues that are:
- Completable in 1-3 focused sessions
- Independently testable
- Clear in scope
4. Identify Dependencies
- Which pieces must come first?
- What can be parallelized?
- Are there external blockers?
5. Create Issues
- Follow issue-writing patterns
- Reference dependencies explicitly
- Use consistent labeling
Vertical vs Horizontal Slices
Prefer vertical slices - each issue should deliver user-visible value.
| Vertical (Good) | Horizontal (Bad) |
|---|---|
| "User can save and reload their diagram" | "Add persistence layer" + "Add save API" + "Add load API" |
| "Domain expert can list all orders" | "Add query syntax to ADL" + "Add query runtime" + "Add query UI" |
| "User can reset forgotten password" | "Add email service" + "Add reset token model" + "Add reset form" |
The Demo Test
Ask: Can a user demo or test this issue independently?
- Yes → Good vertical slice
- No → Probably a horizontal slice, break differently
Break by User Capability, Not Technical Layer
Instead of thinking "what technical components do we need?", think "what can the user do after this issue is done?"
# Bad: Technical layers
├── Add database schema
├── Add API endpoint
├── Add frontend form
# Good: User capabilities
├── User can create a draft
├── User can publish the draft
├── User can edit published content
When Horizontal Slices Are Acceptable
Sometimes horizontal slices are necessary:
- Infrastructure setup - Database, CI/CD, deployment (do once, enables everything)
- Security foundations - Auth system before any protected features
- Shared libraries - When multiple features need the same foundation
Even then, keep them minimal and follow immediately with vertical slices that use them.
Breaking Down Features
By Layer
Feature: User Authentication
├── Data layer: User model, password hashing
├── API layer: Login/logout endpoints
├── UI layer: Login form, session display
└── Integration: Connect all layers
By User Story
Feature: Shopping Cart
├── Add item to cart
├── View cart contents
├── Update quantities
├── Remove items
└── Proceed to checkout
By Technical Component
Feature: Real-time Updates
├── WebSocket server setup
├── Client connection handling
├── Message protocol
├── Reconnection logic
└── Integration tests
Issue Ordering
Dependency Chain
Create issues in implementation order:
- Foundation (models, types, interfaces)
- Core logic (business rules)
- Integration (connecting pieces)
- Polish (error handling, edge cases)
Reference Pattern
In issue descriptions:
## Dependencies
- Depends on #12 (user model)
- Depends on #13 (API setup)
After creating issues, formally link dependencies:
tea issues deps add <issue> <blocker>
tea issues deps add 14 12 # Issue #14 depends on #12
tea issues deps add 14 13 # Issue #14 depends on #13
Creating Issues
Use the gitea skill for issue operations.
Single Issue
Create with a descriptive title and structured body:
- Summary section
- Acceptance criteria (testable checkboxes)
- Dependencies section referencing blocking issues
Batch Creation
When creating multiple related issues:
- Plan all issues first
- Create in dependency order
- Update earlier issues with forward references
Roadmap View
To see current roadmap:
- List open issues using the gitea skill
- Group by labels/milestones
- Identify blocked vs ready issues
- Prioritize based on dependencies and value
Planning Questions
Before creating issues, answer:
- "What's the minimum viable version?"
- "What can we defer?"
- "What are the riskiest parts?"
- "How will we validate each piece?"