CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

start-milestone

Transitions a GitHub milestone from planning to active execution. Use when the team is ready to begin a sprint or release cycle — bulk-transitions open issue labels from status:needs-grooming to status:in-progress, updates GitHub Projects V2 Status to In Progress, and confirms before applying changes. Requires milestone number as argument. Use after /group-items-to-milestone.

74

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

<milestone_number>$ARGUMENTS</milestone_number>

Start Milestone

Transition a milestone from planning to active: bulk-update labels and Project board status.

API references: milestones.md | projects-v2.md

Arguments

<milestone_number/> — milestone number (required).

/start-milestone 3

Workflow

Step 1: Resolve Milestone

Call mcp__plugin_dh_backlog__backlog_list_milestones(state="open").

From the returned list, find the entry where number == <milestone_number/>.

If not found in the open list, call mcp__plugin_dh_backlog__backlog_list_milestones(state="all") and filter again.

If milestone is closed, report and stop.

If open_issues == 0, warn: "No open issues. Add items first with /group-items-to-milestone {number}"

Step 2: List Issues

Call mcp__plugin_dh_backlog__backlog_list_issues(milestone="{title}", state="open").

The response contains a list of issues with number, title, state, and labels fields.

Step 3: Confirm

Start milestone "{title}" — {N} open issues

Issues to transition (status:needs-grooming → status:in-progress):
  #12  SAM: Error Recovery        [priority:p1, status:needs-grooming]
  #8   gitlab-skill: Remove URL   [priority:p1, status:needs-grooming]
  #14  create-backlog-item skill  [priority:p2, status:needs-grooming]

Proceed?

Use AskUserQuestion with Yes / No options. Stop without changes if No.

Step 4: Bulk Label Transition

Use the Python automation script (preferred — avoids per-issue bash loops):

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

Or, to preview changes without applying them:

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

The script removes status:needs-grooming and adds status:in-progress to each open issue, creates the label if missing, reports per-issue results, and exits non-zero if any issue fails.

Step 5: Update Project V2

Run:

uv run .claude/skills/gh/scripts/github_project_setup.py project update-status \
  --milestone {number} --status "In Progress"

See projects-v2.md for details.

Step 6: Report

Milestone #{N} "{title}" started.

  {count} issues transitioned to status:in-progress
  {failed_count} issues failed (see details above)

Work on individual items:
  /work-backlog-item {title}

Error Handling

  • Milestone not found: list open milestones and stop.
  • Milestone already closed: report closed date and stop.
  • Label edit fails for specific issue: log and continue; report failures at end.
  • User declines confirmation: stop without changes.
Repository

Jamie-BitFlight/claude_skills

Path

.claude/skills/start-milestone/SKILL.md

Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.