mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 17:24:12 +00:00
- Add .claude/ configuration (agents, commands, hooks, get-shit-done workflows) - Add prompts/ directory with development planning documents - Add scripts/setup-tenants/ with tenant configuration - Add docs/screenshots/ - Remove obsolete phase2.2-corrections-report.md - Update pnpm-lock.yaml - Update detect-secrets.sh to ignore setup.sh (env var usage, not secrets) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
207 lines
5 KiB
Markdown
207 lines
5 KiB
Markdown
---
|
|
name: gsd:add-phase
|
|
description: Add phase to end of current milestone in roadmap
|
|
argument-hint: <description>
|
|
allowed-tools:
|
|
- Read
|
|
- Write
|
|
- Bash
|
|
---
|
|
|
|
<objective>
|
|
Add a new integer phase to the end of the current milestone in the roadmap.
|
|
|
|
This 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
1. Locate the "## Current Milestone:" heading
|
|
2. Extract milestone name and version
|
|
3. Identify all phases under this milestone (before next "---" separator or next milestone heading)
|
|
4. Parse existing phase numbers (including decimals if present)
|
|
|
|
Example structure:
|
|
|
|
```
|
|
## Current Milestone: v1.0 Foundation
|
|
|
|
### Phase 4: Focused Command System
|
|
### Phase 5: Path Routing & Validation
|
|
### Phase 6: Documentation & Distribution
|
|
```
|
|
|
|
</step>
|
|
|
|
<step name="calculate_next_phase">
|
|
Find the highest integer phase number in the current milestone:
|
|
|
|
1. Extract all phase numbers from phase headings (### Phase N:)
|
|
2. Filter to integer phases only (ignore decimals like 4.1, 4.2)
|
|
3. Find the maximum integer value
|
|
4. 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
1. Find the insertion point (after last phase in current milestone, before "---" separator)
|
|
2. 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]
|
|
```
|
|
|
|
3. 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:
|
|
|
|
1. Read `.planning/STATE.md`
|
|
2. Under "## Current Position" → "**Next Phase:**" add reference to new phase
|
|
3. 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:
|
|
|
|
```
|
|
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
|
|
|
|
---
|
|
```
|
|
</step>
|
|
|
|
</process>
|
|
|
|
<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>
|