GSD roadmaps are designed to evolve. Scope changes, priorities shift, and urgent work emerges. Phase management commands let you adjust your roadmap without rebuilding everything.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/gsd-build/get-shit-done/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Three commands control roadmap structure:| Command | Purpose | When to Use |
|---|---|---|
/gsd:add-phase | Append to end | Scope grows after initial planning |
/gsd:insert-phase | Insert urgent work | Critical fix needed between phases |
/gsd:remove-phase | Delete and renumber | Descoping a feature |
Adding Phases
Use/gsd:add-phase to append new work to the end of your current milestone.
Basic usage
- Calculate next phase number (ignores decimals)
- Generate slug from description
- Create phase directory
- Update
ROADMAP.md - Track change in
STATE.md
Example
Phase numbers are always integers. The system ignores any decimal phases when calculating the next number.
Inserting Phases
Use/gsd:insert-phase when urgent work must happen between existing phases.
Why decimal numbering?
Renumbering all phases after an insertion would invalidate:- Git commits referencing phase numbers
- Discussion in issues/PRs
- Documentation links
- Your mental model
Basic usage
Multiple insertions
If phase 3.1 already exists:Example
Removing Phases
Use/gsd:remove-phase to delete unstarted future work and renumber everything after it.
Why renumber?
Removing a phase leaves a gap (Phase 1, 2, 4, 5…). Renumbering maintains clean linear sequence:- Phase 1, 2, 3, 4, 5
Basic usage
- Verify phase 7 hasn’t started
- Delete
.planning/phases/07-phase-name/ - Renumber phases 8+ to 7+
- Update
ROADMAP.md - Commit with message explaining the change
Example
Safety check
GSD verifies the phase is in
pending status. You cannot remove phases that are in_progress or completed.Renumbering
All subsequent phases are renumbered. Directories, file names, and ROADMAP.md entries are updated.
Validation Rules
Add phase
- ✅ Roadmap must exist
- ✅ Description must be provided
- ✅ Current milestone must be active
Insert phase
- ✅ Target phase must exist
- ✅ Target phase must be an integer (not 3.1)
- ✅ Description must be provided
Remove phase
- ✅ Phase must exist
- ✅ Phase must be
pending(not started) - ✅ Phase cannot be the last remaining phase
Roadmap Evolution Tracking
All phase management operations updateSTATE.md with evolution history:
Best Practices
- Adding Phases
- Inserting Phases
- Removing Phases
Do:
- Add phases when scope grows organically
- Keep descriptions clear and specific
- Discuss with team before expanding scope
- Add phases to avoid proper planning
- Create phases for work better suited to
/gsd:quick - Add so many phases that the milestone becomes unwieldy
- User feedback reveals must-have feature
- Technical discovery shows additional work needed
- Stakeholder requests aligned with milestone goals
Common Patterns
Urgent fix during execution
Scope creep management
Descoping to meet deadline
Integration with Other Commands
After adding phases
After inserting phases
After removing phases
Phase Numbering Reference
Integer phases
- Sequential: 1, 2, 3, 4, 5…
- Represent planned work from roadmap
- Created during
/gsd:new-projector/gsd:add-phase
Decimal phases
- Format:
{integer}.{decimal}(e.g., 3.1, 3.2) - Represent urgent insertions
- Created with
/gsd:insert-phase - Not counted when calculating “next phase number”
Example roadmap
/gsd:add-phase creates Phase 07, not 06 (ignores decimals).