Skip to content
gsd-complete-milestone logo

Count completed plans

gsd-complete-milestone

Complete milestone with direct archiving and cleanup

SKILL.md

Full skill instructions

<objective> Complete milestone {{milestone-version}}, archive all files directly to .planning/​history/​v{{milestone-version}}/ with mirrored structure, and clean workspace for next milestone. Purpose: Archive milestone artifacts to permanent history/, update MILESTONES.md registry, optional git tag, prepare clean workspace. Output: Milestone archived to history/​v{{milestone-version}}/, workspace contains only PROJECT.md, MILESTONES.md, config.json, codebase/​. </​objective>

<execution_context> @.github/​get-shit-done/​workflows/​complete-milestone.md @.github/​get-shit-done/​references/​ui-brand.md </​execution_context>

<context> **Project files:** - `.planning/​ROADMAP.md` - `.planning/​STATE.md` - `.planning/​PROJECT.md` - `.planning/​REQUIREMENTS.md` (optional) - `.planning/​phases/` (if exists) - `.planning/​research/` (if exists) - `.planning/​todos/` (if exists)

User input:

  • Version: {{milestone-version}} (e.g., "1.0", "1.1", "2.0") </​context>
<process> <step name="verify_readiness">

Check if milestone is complete by counting phases with SUMMARY.md files:

# Count completed plans
ls .planning/​phases/​*/​SUMMARY.md 2>/​dev/​null | wc -l

# Check ROADMAP for milestone scope
cat .planning/​ROADMAP.md

Present milestone scope and stats to user. </​step>

<step name="confirm_completion">

Use AskUserQuestion to get combined readiness + archive confirmation:

Tool: AskUserQuestion

  • header: "Ready to Complete Milestone?"
  • question: "Complete v{{milestone-version}}? This will archive all files to history/​v{{milestone-version}}/"
  • details: Show milestone stats:
    • Number of phases completed
    • Number of plans completed
    • Key accomplishments (extracted from SUMMARYs)
  • options:
    • "Complete and archive" — Archive to history/ and mark complete
    • "Cancel" — Exit without changes

If "Cancel": Exit with message "Milestone completion cancelled."

If "Complete and archive": Continue to next step. </​step>

<step name="archive_to_history">

Archive all milestone files directly to history/​v{{milestone-version}}/ using bash commands:

# Source git helpers
if ! type commit_as_user >/​dev/​null 2>&1; then
    source .github/​get-shit-done/​workflows/​git-identity-helpers.sh
fi

# Create destination with mirrored structure
mkdir -p .planning/​history/​v{{milestone-version}}/

# Move required files atomically
mv .planning/​ROADMAP.md .planning/​history/​v{{milestone-version}}/
mv .planning/​STATE.md .planning/​history/​v{{milestone-version}}/
mv .planning/​PROJECT.md .planning/​history/​v{{milestone-version}}/

# Move optional files (don't fail if missing)
mv .planning/​REQUIREMENTS.md .planning/​history/​v{{milestone-version}}/ 2>/​dev/​null || true

# Move directories (preserves structure)
mv .planning/​phases .planning/​history/​v{{milestone-version}}/ 2>/​dev/​null || true
mv .planning/​research .planning/​history/​v{{milestone-version}}/ 2>/​dev/​null || true
mv .planning/​todos .planning/​history/​v{{milestone-version}}/ 2>/​dev/​null || true

# Stage all changes
git add .planning/​history/​v{{milestone-version}}/
git add -u .planning/  # Stages deletions

# Commit with user identity
commit_as_user "milestone: archive v{{milestone-version}} to history

Moved to .planning/​history/​v{{milestone-version}}/:
- ROADMAP.md, STATE.md, PROJECT.md
- REQUIREMENTS.md
- phases/, research/, todos/

Workspace ready for next milestone."

Note: All operations are atomic at filesystem level (mv appears instantly or not at all). </​step>

<step name="update_milestones_registry">

Update .planning/​MILESTONES.md with new entry (create if doesn't exist):

# Extract milestone name from ROADMAP.md (now in history/)
MILESTONE_NAME=$(grep "^# " .planning/​history/​v{{milestone-version}}/​ROADMAP.md | head -1 | sed 's/^# //')

# Count phases and plans
PHASE_COUNT=$(find .planning/​history/​v{{milestone-version}}/​phases -name "SUMMARY.md" 2>/​dev/​null | cut -d/ -f5 | cut -d- -f1 | sort -u | wc -l)
PLAN_COUNT=$(find .planning/​history/​v{{milestone-version}}/​phases -name "SUMMARY.md" 2>/​dev/​null | wc -l)

# Extract key accomplishments from SUMMARYs
# (AI: Read 3-5 SUMMARY files and extract major accomplishments)

# Append to registry
cat >> .planning/​MILESTONES.md << EOF

## v{{milestone-version}} — ${MILESTONE_NAME}

**Completed:** $(date +%Y-%m-%d)
**Phases:** ${PHASE_COUNT}
**Plans:** ${PLAN_COUNT}

**Key Accomplishments:**
- [ACCOMPLISHMENT_1]
- [ACCOMPLISHMENT_2]
- [ACCOMPLISHMENT_3]

**Location:** .planning/​history/​v{{milestone-version}}/

EOF

git add .planning/​MILESTONES.md
commit_as_user "milestone: register v{{milestone-version}} completion"

</​step>

<step name="confirm_git_tag">

Use AskUserQuestion to offer optional git tag:

Tool: AskUserQuestion

  • header: "Git Tag"
  • question: "Create git tag v{{milestone-version}}?"
  • options:
    • "Create tag v{{milestone-version}}" — Tag this version
    • "Skip tag" — No git tag

If "Create tag v{{milestone-version}}":

git tag v{{milestone-version}}
echo "Tag v{{milestone-version}} created locally."
echo "To push: git push origin v{{milestone-version}}"

If "Skip tag": Continue to next step. </​step>

<step name="show_completion">

Display stage banner (following ui-brand.md):

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 GSD ► MILESTONE COMPLETE ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

**v{{milestone-version}} {MILESTONE_NAME}** — {N} phases complete

Archived to: .planning/​history/​v{{milestone-version}}/
Git tag: v{{milestone-version}} {if created}

Workspace clean: PROJECT.md, MILESTONES.md, config.json, codebase/

───────────────────────────────────────────────────────────────

## ▶ Next Up

**New Milestone** — Start planning next version

`/​gsd-new-milestone`

<sub>`/​clear` first → fresh context window</​sub>

───────────────────────────────────────────────────────────────

</​step>

</​process>

<success_criteria>

  • All milestone files archived to .planning/​history/​v{{milestone-version}}/
  • Directory structure mirrored (phases/, research/, todos/)
  • Git commit preserves user identity
  • Optional git tag created based on user choice
  • Workspace contains only: PROJECT.md, MILESTONES.md, config.json, codebase/
  • User knows next command (/​gsd-new-milestone) </​success_criteria>

<critical_rules>

  • Use AskUserQuestion: All confirmations via AskUserQuestion tool (not manual text prompts)
  • Atomic operations: Use mv for file moves (not cp then rm)
  • Git identity: Source git-identity-helpers.sh and use commit_as_user
  • Optional files: Use 2>/​dev/​null || true for files that might not exist
  • Direct archiving: Archive to history/​v{{milestone-version}}/ (not milestones/)
  • Clean workspace: After completion, only PROJECT.md, MILESTONES.md, config.json, codebase/ remain </​critical_rules>

More Productivity & Planning skills

brainstorming logo
Productivity & Planning

brainstorming

Structured design dialogue that validates ideas before implementation begins.

295.4K 385.7K
View
ui-ux-pro-max logo
Productivity & Planning

ui-ux-pro-max

Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.

133.1K 383.9K
View
writing-plans logo
Productivity & Planning

writing-plans

Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.

295.4K 268K
View
using-superpowers logo
Productivity & Planning

using-superpowers

Introduction to the obra skills system with mandatory skill invocation rules and best practices.

295.4K 259.8K
View
executing-plans logo
Productivity & Planning

executing-plans

Execute a written implementation plan with critical review and task checkpoints.

295.4K 229.1K
View
dispatching-parallel-agents logo
Productivity & Planning

dispatching-parallel-agents

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View
using-git-worktrees logo
Productivity & Planning

using-git-worktrees

Isolated git worktrees with smart directory selection and safety verification.

295.4K 205.2K
View
webapp-testing logo
Productivity & Planning

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

179.7K 170.6K
View
content-strategy logo
Productivity & Planning

content-strategy

Plan searchable and shareable content that drives traffic, builds authority, and generates leads.

53.3K 150.9K
View
repo-intake-and-plan logo
Productivity & Planning

repo-intake-and-plan

README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.

497 139.6K
View
marketing-ideas logo
Productivity & Planning

marketing-ideas

Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.

53.3K 137.2K
View
site-architecture logo
Productivity & Planning

site-architecture

Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.

53.3K 112.8K
View

Productivity AI tools

Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View
SaveDay logo
Productivity

SaveDay

Capture, organize, and utilize your knowledge effortlessly.

Free
View
Any Summary logo
Productivity

Any Summary

Instant Summaries of Audio & Video Interviews with AnySummary

Freemium
View
M
Productivity

Map This

Transform PDFs into engaging mind maps.

Freemium
View
ChatPDF logo
Productivity

ChatPDF

Chat with any PDF instantly

Free
View
I
Productivity

intellisay

Create an optimal daily plan using your voice

Paid
View
A
Productivity

Aurora AI

A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.

Paid
View
AskYourPDF logo
Productivity

AskYourPDF

AskYourPDF Pricing Plans: Tailored to Your Needs

Free
View