Purpose: Create historical record of shipped version, archive milestone artifacts (roadmap + requirements), and prepare for next milestone.
Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tagged.
- @${CLAUDE_PLUGIN_ROOT}/workflows/complete-milestone.md (main workflow)
- @${CLAUDE_PLUGIN_ROOT}/templates/milestone-archive.md (archive template)
User input:
- Version: {{version}} (e.g., "1.0", "1.1", "2.0")
Follow complete-milestone.md workflow:
Check for audit:
- Look for
.planning/v{{version}}-MILESTONE-AUDIT.md
- If missing or stale: recommend
/gsd:audit-milestone first
- If audit status is
gaps_found: recommend /gsd:plan-milestone-gaps first
- If audit status is
passed: proceed to step 1
## Pre-flight Check
{If no v{{version}}-MILESTONE-AUDIT.md:}
⚠ No milestone audit found. Run `/gsd:audit-milestone` first to verify
requirements coverage, cross-phase integration, and E2E flows.
{If audit has gaps:}
⚠ Milestone audit found gaps. Run `/gsd:plan-milestone-gaps` to create
phases that close the gaps, or proceed anyway to accept as tech debt.
{If audit passed:}
✓ Milestone audit passed. Proceeding with completion.
Verify readiness:
- Check all phases in milestone have completed plans (SUMMARY.md exists)
- Present milestone scope and stats
- Wait for confirmation
Gather stats:
- Count phases, plans, tasks
- Calculate git range, file changes, LOC
- Extract timeline from git log
- Present summary, confirm
Extract accomplishments:
- Read all phase SUMMARY.md files in milestone range
- Extract 4-6 key accomplishments
- Present for approval
Archive milestone:
- Create
.planning/milestones/v{{version}}-ROADMAP.md
- Extract full phase details from ROADMAP.md
- Fill milestone-archive.md template
- Update ROADMAP.md to one-line summary with link
Archive requirements:
- Create
.planning/milestones/v{{version}}-REQUIREMENTS.md
- Mark all v1 requirements as complete (checkboxes checked)
- Note requirement outcomes (validated, adjusted, dropped)
- Delete
.planning/REQUIREMENTS.md (fresh one created for next milestone)
Update PROJECT.md:
- Add "Current State" section with shipped version
- Add "Next Milestone Goals" section
- Archive previous content in
<details> (if v1.1+)
Commit and tag:
- Stage: MILESTONES.md, PROJECT.md, ROADMAP.md, STATE.md, archive files
- Commit:
chore: archive v{{version}} milestone
- Tag:
git tag -a v{{version}} -m "[milestone summary]"
- Ask about pushing tag
Offer next steps:
/gsd:new-milestone — start next milestone (questioning → research → requirements → roadmap)
## 🎉 Milestone v{{version}} Complete with phase/plan/task summary
- Brief one-paragraph "what shipped" recap
## ▶ Next Up heading
- Use
`/clear` then: before /gsd:new-milestone
- Parenthetical: (
/clear is safe — /gsd:resume-work restores position from HANDOFF.json if you change your mind)
- Optional "Also available:" with
/gsd:audit-milestone (retrospective audit) or /gsd:review-backlog (deferred items review)
Milestone close is the single biggest context-shed point in the workflow. The just-shipped milestone's plan/execute conversation is finished; the next milestone wants a clean slate. Always suggest /clear.
- Milestone archived to
.planning/milestones/v{{version}}-ROADMAP.md
- Requirements archived to
.planning/milestones/v{{version}}-REQUIREMENTS.md
.planning/REQUIREMENTS.md deleted (fresh for next milestone)
- ROADMAP.md collapsed to one-line entry
- PROJECT.md updated with current state
- Git tag v{{version}} created
- Commit successful
- User knows next steps (including need for fresh requirements)
- Load workflow first: Read complete-milestone.md before executing
- Verify completion: All phases must have SUMMARY.md files
- User confirmation: Wait for approval at verification gates
- Archive before deleting: Always create archive files before updating/deleting originals
- One-line summary: Collapsed milestone in ROADMAP.md should be single line with link
- Context efficiency: Archive keeps ROADMAP.md and REQUIREMENTS.md constant size per milestone
- Fresh requirements: Next milestone starts with
/gsd:new-milestone which includes requirements definition
Source: davepoon/buildwithclaude → plugins/gsd/skills/complete-milestone/SKILL.md
1---2name: gsdcomplete-milestone3description: Archive completed milestone and prepare for next version4---567<objective>8Mark milestone {{version}} complete, archive to milestones/, and update ROADMAP.md and REQUIREMENTS.md.910Purpose: Create historical record of shipped version, archive milestone artifacts (roadmap + requirements), and prepare for next milestone.11Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tagged.12</objective>1314<execution_context>15**Load these files NOW (before proceeding):**1617- @${CLAUDE_PLUGIN_ROOT}/workflows/complete-milestone.md (main workflow)18- @${CLAUDE_PLUGIN_ROOT}/templates/milestone-archive.md (archive template)19 </execution_context>2021<context>22**Project files:**23- `.planning/ROADMAP.md`24- `.planning/REQUIREMENTS.md`25- `.planning/STATE.md`26- `.planning/PROJECT.md`2728**User input:**2930- Version: {{version}} (e.g., "1.0", "1.1", "2.0")31 </context>3233<process>3435**Follow complete-milestone.md workflow:**36370. **Check for audit:**3839 - Look for `.planning/v{{version}}-MILESTONE-AUDIT.md`40 - If missing or stale: recommend `/gsd:audit-milestone` first41 - If audit status is `gaps_found`: recommend `/gsd:plan-milestone-gaps` first42 - If audit status is `passed`: proceed to step 14344 ```markdown45 ## Pre-flight Check4647 {If no v{{version}}-MILESTONE-AUDIT.md:}48 ⚠ No milestone audit found. Run `/gsd:audit-milestone` first to verify49 requirements coverage, cross-phase integration, and E2E flows.5051 {If audit has gaps:}52 ⚠ Milestone audit found gaps. Run `/gsd:plan-milestone-gaps` to create53 phases that close the gaps, or proceed anyway to accept as tech debt.5455 {If audit passed:}56 ✓ Milestone audit passed. Proceeding with completion.57 ```58591. **Verify readiness:**6061 - Check all phases in milestone have completed plans (SUMMARY.md exists)62 - Present milestone scope and stats63 - Wait for confirmation64652. **Gather stats:**6667 - Count phases, plans, tasks68 - Calculate git range, file changes, LOC69 - Extract timeline from git log70 - Present summary, confirm71723. **Extract accomplishments:**7374 - Read all phase SUMMARY.md files in milestone range75 - Extract 4-6 key accomplishments76 - Present for approval77784. **Archive milestone:**7980 - Create `.planning/milestones/v{{version}}-ROADMAP.md`81 - Extract full phase details from ROADMAP.md82 - Fill milestone-archive.md template83 - Update ROADMAP.md to one-line summary with link84855. **Archive requirements:**8687 - Create `.planning/milestones/v{{version}}-REQUIREMENTS.md`88 - Mark all v1 requirements as complete (checkboxes checked)89 - Note requirement outcomes (validated, adjusted, dropped)90 - Delete `.planning/REQUIREMENTS.md` (fresh one created for next milestone)91926. **Update PROJECT.md:**9394 - Add "Current State" section with shipped version95 - Add "Next Milestone Goals" section96 - Archive previous content in `<details>` (if v1.1+)97987. **Commit and tag:**99100 - Stage: MILESTONES.md, PROJECT.md, ROADMAP.md, STATE.md, archive files101 - Commit: `chore: archive v{{version}} milestone`102 - Tag: `git tag -a v{{version}} -m "[milestone summary]"`103 - Ask about pushing tag1041058. **Offer next steps:**106 - `/gsd:new-milestone` — start next milestone (questioning → research → requirements → roadmap)107108</process>109110<output_format>111After the milestone is archived and tagged, emit a Milestone Complete continuation block following the pattern in `references/continuation-format.md` (§ Milestone Complete variant):112113- `## 🎉 Milestone v{{version}} Complete` with phase/plan/task summary114- Brief one-paragraph "what shipped" recap115- `## ▶ Next Up` heading116- Use **`` `/clear` then: ``** before `/gsd:new-milestone`117- Parenthetical: *(`/clear` is safe — `/gsd:resume-work` restores position from `HANDOFF.json` if you change your mind)*118- Optional "Also available:" with `/gsd:audit-milestone` (retrospective audit) or `/gsd:review-backlog` (deferred items review)119120Milestone close is the single biggest context-shed point in the workflow. The just-shipped milestone's plan/execute conversation is finished; the next milestone wants a clean slate. Always suggest `/clear`.121</output_format>122123<success_criteria>124125- Milestone archived to `.planning/milestones/v{{version}}-ROADMAP.md`126- Requirements archived to `.planning/milestones/v{{version}}-REQUIREMENTS.md`127- `.planning/REQUIREMENTS.md` deleted (fresh for next milestone)128- ROADMAP.md collapsed to one-line entry129- PROJECT.md updated with current state130- Git tag v{{version}} created131- Commit successful132- User knows next steps (including need for fresh requirements)133 </success_criteria>134135<critical_rules>136137- **Load workflow first:** Read complete-milestone.md before executing138- **Verify completion:** All phases must have SUMMARY.md files139- **User confirmation:** Wait for approval at verification gates140- **Archive before deleting:** Always create archive files before updating/deleting originals141- **One-line summary:** Collapsed milestone in ROADMAP.md should be single line with link142- **Context efficiency:** Archive keeps ROADMAP.md and REQUIREMENTS.md constant size per milestone143- **Fresh requirements:** Next milestone starts with `/gsd:new-milestone` which includes requirements definition144 </critical_rules>145146---147148**Source:** [`davepoon/buildwithclaude`](https://github.com/davepoon/buildwithclaude) → `plugins/gsd/skills/complete-milestone/SKILL.md`