Skip to content
Development
Skill

/gsd-complete-milestone

Archive completed milestone and prepare for next version

From plugin
gsd-core
8k71 skills34 agents71 commands7 hooks
Install
$ npx -y skills add open-gsd/gsd-core --skill gsd-complete-milestone --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/gsd-complete-milestone

Context preview

The summary Claude sees to decide when to auto-load this skill.

Archive completed milestone and prepare for next version

SKILL.md

gsd-complete-milestone.SKILL.md
name: gsd-complete-milestone
description: "Archive completed milestone and prepare for next version"
argument-hint: "<version>"
allowed-tools:
  - Read
  - Write
  - Bash

<objective> Mark milestone {{version}} complete, archive to milestones/, and update ROADMAP.md and REQUIREMENTS.md.

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. </objective>

<execution_context> **Load these files NOW (before proceeding):**

  • @~/.claude/gsd-core/workflows/complete-milestone.md (main workflow)
  • @~/.claude/gsd-core/templates/milestone-archive.md (archive template)

</execution_context>

<context> **Project files:**

  • `.planning/ROADMAP.md`
  • `.planning/REQUIREMENTS.md`
  • `.planning/STATE.md`
  • `.planning/PROJECT.md`

**User input:**

  • Version: {{version}} (e.g., "1.0", "1.1", "2.0")

</context>

<process>

**Follow complete-milestone.md workflow:**

0. **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 closing the gaps inline

(the audit output already enumerates them — insert closure phases via `/gsd-phase --insert <N>` plus the standard discuss/plan/execute chain) before proceeding.

  • 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. The audit output already enumerates the
   unsatisfied requirements, cross-phase issues, and broken flows — insert
   a closure phase per gap with `/gsd-phase --insert <N>` and run the
   standard `/gsd-discuss-phase` → `/gsd-plan-phase` → `/gsd-execute-phase`
   chain. Or proceed anyway to accept the gaps as tech debt.

   {If audit passed:}
   ✓ Milestone audit passed. Proceeding with completion.

1. **Verify readiness:**

  • Check all phases in milestone have completed plans (SUMMARY.md exists)
  • Present milestone scope and stats
  • Wait for confirmation

2. **Gather stats:**

  • Count phases, plans, tasks
  • Calculate git range, file changes, LOC
  • Extract timeline from git log
  • Present summary, confirm

3. **Extract accomplishments:**

  • Read all phase SUMMARY.md files in milestone range
  • Extract 4-6 key accomplishments
  • Present for approval

4. **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

5. **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)

6. **Update PROJECT.md:**

  • Add "Current State" section with shipped version
  • Add "Next Milestone Goals" section
  • Archive previous content in `<details>` (if v1.1+)

7. **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

8. **Offer next steps:**

  • `/gsd-new-milestone` — start next milestone (questioning → research → requirements → roadmap)

</process>

<success_criteria>

  • 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 (if `git.create_tag` enabled)
  • Commit successful
  • User knows next steps (including need for fresh requirements)

</success_criteria>

<critical_rules>

  • **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

</critical_rules>

Read more
Ships withgsd-core

Git. Ship. Done. A light-weight meta-prompting, context engineering, and spec-driven development system for Claude Code, OpenCode, Antigravity CLI, Kimi CLI, Kilo, Codex, Copilot, Cursor, Windsurf, and more.

Get the whole plugin