Claude-skill-registry gsd-add-phase
Add new integer phase to end of current milestone in roadmap
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gsd-add-phase" ~/.claude/skills/majiayu000-claude-skill-registry-gsd-add-phase-06b8d0 && rm -rf "$T"
skills/data/gsd-add-phase/SKILL.mdThis command appends sequential phases to the current milestone's phase list, automatically calculating the next phase number based on existing phases.
Purpose: Add planned work discovered during execution that belongs at the end of current milestone. </objective>
<execution_context> @.planning/ROADMAP.md @.planning/STATE.md </execution_context>
<process> <step name="parse_arguments"> Parse the command arguments: - All arguments become the phase description - Example: `/gsd-add-phase Add authentication` → description = "Add authentication" - Example: `/gsd-add-phase Fix critical performance issues` → description = "Fix critical performance issues"If no arguments provided:
ERROR: Phase description required Usage: /gsd-add-phase <description> Example: /gsd-add-phase Add authentication system
Exit. </step>
<step name="load_roadmap"> Load the roadmap file:if [ -f .planning/ROADMAP.md ]; then ROADMAP=".planning/ROADMAP.md" else echo "ERROR: No roadmap found (.planning/ROADMAP.md)" exit 1 fi
Read roadmap content for parsing. </step>
<step name="find_current_milestone"> Parse the roadmap to find the current milestone section:- Locate the "## Current Milestone:" heading
- Extract milestone name and version
- Identify all phases under this milestone (before next "---" separator or next milestone heading)
- Parse existing phase numbers (including decimals if present)
Example structure:
</step> <step name="calculate_next_phase"> Find the highest integer phase number in the current milestone:## Current Milestone: v1.0 Foundation ### Phase 4: Focused Command System ### Phase 5: Path Routing & Validation ### Phase 6: Documentation & Distribution
- Extract all phase numbers from phase headings (### Phase N:)
- Filter to integer phases only (ignore decimals like 4.1, 4.2)
- Find the maximum integer value
- Add 1 to get the next phase number
Example: If phases are 4, 5, 5.1, 6 → next is 7
Format as two-digit:
printf "%02d" $next_phase
</step>
<step name="generate_slug">
Convert the phase description to a kebab-case slug:
# Example transformation: # "Add authentication" → "add-authentication" # "Fix critical performance issues" → "fix-critical-performance-issues" slug=$(echo "$description" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s|-$||')
Phase directory name:
{two-digit-phase}-{slug}
Example: 07-add-authentication
</step>
<step name="create_phase_directory">
Create the phase directory structure:
phase_dir=".planning/phases/${phase_num}-${slug}" mkdir -p "$phase_dir"
Confirm: "Created directory: $phase_dir" </step>
<step name="update_roadmap"> Add the new phase entry to the roadmap:-
Find the insertion point (after last phase in current milestone, before "---" separator)
-
Insert new phase heading:
### Phase {N}: {Description} **Goal:** [To be planned] **Depends on:** Phase {N-1} **Plans:** 0 plans Plans: - [ ] TBD (run /gsd-plan-phase {N} to break down) **Details:** [To be added during planning] -
Write updated roadmap back to file
Preserve all other content exactly (formatting, spacing, other phases). </step>
<step name="update_project_state"> Update STATE.md to reflect the new phase:- Read
.planning/STATE.md - Under "## Current Position" → "Next Phase:" add reference to new phase
- Under "## Accumulated Context" → "### Roadmap Evolution" add entry:
- Phase {N} added: {description}
If "Roadmap Evolution" section doesn't exist, create it. </step>
<step name="completion"> Present completion summary:</step> </process>Phase {N} added to current milestone: - Description: {description} - Directory: .planning/phases/{phase-num}-{slug}/ - Status: Not planned yet Roadmap updated: {roadmap-path} Project state updated: .planning/STATE.md --- ## ▶ Next Up **Phase {N}: {description}** `/gsd-plan-phase {N}` <sub>`/clear` first → fresh context window</sub> --- **Also available:** - `/gsd-add-phase <description>` — add another phase - Review roadmap ---
<anti_patterns>
- Don't modify phases outside current milestone
- Don't renumber existing phases
- Don't use decimal numbering (that's /gsd-insert-phase)
- Don't create plans yet (that's /gsd-plan-phase)
- Don't commit changes (user decides when to commit) </anti_patterns>
<success_criteria> Phase addition is complete when:
- Phase directory created:
.planning/phases/{NN}-{slug}/ - Roadmap updated with new phase entry
- STATE.md updated with roadmap evolution note
- New phase appears at end of current milestone
- Next phase number calculated correctly (ignoring decimals)
- User informed of next steps </success_criteria>