jamie-bitflight/claude_skills

complete-milestone

Close a completed GitHub milestone and generate a completion summary.

First seen Mar 29, 2026

Installation

$ npx skills add jamie-bitflight/claude_skills --skill complete-milestone

Summary

  • Close a completed GitHub milestone and generate a completion summary.
  • Use when a sprint or release is finished and needs to be officially closed.
  • Audits open and closed issues, offers to carry forward open items to a new or existing milestone, closes the milestone, updates Project V2 Status to Done for closed issues, and produces a completion report.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from jamie-bitflight/claude_skills · top by installs.

npx skills add jamie-bitflight/claude_skills

Browse all from jamie-bitflight/claude_skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 66
License LICENSE
Default branch main
Open issues 655
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,471 B
  • docs SUMMARY.md 378 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 28 installs

SKILL.md

<milestonenumber>$ARGUMENTS</milestonenumber>

Complete Milestone

Verify completion state, handle stragglers, close the milestone, and generate a summary.

Arguments

<milestone_number/> — milestone number (required).

/complete-milestone 3

Workflow

Step 1: Resolve and Audit

Call backloglistmilestones(state="open") and filter the returned list for the entry where number == <milestonenumber/>. If not found in open milestones, call backloglistmilestones(state="all") and filter again. Extract: title, state, openissues, closedissues, dueon.

If milestone already closed, report closed date and stop.

Fetch all issues:

backlog_list_issues(milestone="{title}", state="open")
backlog_list_issues(milestone="{title}", state="closed")

Step 2: Show State

Milestone #{N}: {title}
Due: {due_on or "not set"}

  Closed: {closed_count} issues ✓
  Open:   {open_count} issues ✗

Closed:
  #12  SAM: Error Recovery      (closed 2026-02-20)
  #8   gitlab-skill: Remove URL (closed 2026-02-19)

Open (incomplete):
  #14  create-backlog-item skill  [status:in-progress]
  #17  start-milestone skill      [status:needs-grooming]

If open_count == 0: skip to Step 4.

Step 3: Handle Open Issues

Ask: "What should happen to the {open_count} open issues?"

A) Carry forward to a new milestone (create it now)
B) Carry forward to an existing open milestone
C) Remove from milestone (leave open, unassigned)
D) Close them as incomplete

Option A — new milestone:

Prompt for new milestone title and optional due date. Create via:

backlog_create_milestone(title="{new title}", due_on="{YYYY-MM-DD or empty}", description="")

Reassign open issues one at a time:

uv run .claude/skills/gh/scripts/github_project_setup.py issue set-milestone --issue N --milestone {new_number}

Option B — existing milestone:

Call backloglistmilestones(state="open") to list open milestones. User picks one; reassign open issues:

uv run .claude/skills/gh/scripts/github_project_setup.py issue set-milestone --issue N --milestone {chosen_number}

Option C — unassign:

uv run .claude/skills/gh/scripts/github_project_setup.py issue remove-milestone --issue N

Option D — close:

uv run .claude/skills/gh/scripts/github_project_setup.py issue close --number N --comment "Closed incomplete as part of milestone #{M} completion."

Step 4: Close Milestone

Use the Python automation script (preferred — handles label transitions and milestone close atomically):

uv run .claude/skills/gh/scripts/github_project_setup.py milestone close \
  --number {number}

Or, to preview changes without applying them:

uv run .claude/skills/gh/scripts/github_project_setup.py milestone close \
  --number {number} --dry-run

The script transitions all remaining open issues to status:done, closes the milestone, and prints a completion summary. It exits non-zero if any issue label update fails.

Step 5: Update Project V2

For all closed issues, update Project V2 Status to Done:

uv run .claude/skills/gh/scripts/github_project_setup.py project update-status \
  --issue N --status Done

Step 6: Completion Report

Milestone #{N} "{title}" — CLOSED

  Completed:       {closed_count}/{total_count} ({pct}%)
  Carried forward: {count} → milestone #{new_N} "{new_title}"
  Removed:         {count}
  Closed incomplete: {count}

{if carry_forward_count > 0}
Next steps:
  /group-items-to-milestone {new_N}  (add more items)
  /start-milestone {new_N}           (begin the new sprint)

Error Handling

  • Milestone not found: call backloglistmilestones(state="open") to list open milestones and stop.
  • Milestone already closed: report and stop.
  • Issue reassignment fails: log per-item error, continue with remaining.
  • No open milestones for Option B: fall back to Option A automatically.