jamie-bitflight/claude_skills

group-items-to-milestone

Assign backlog items to a GitHub milestone by bridging per-item files to GitHub Issues.

First seen Mar 29, 2026

Installation

$ npx skills add jamie-bitflight/claude_skills --skill group-items-to-milestone

Summary

  • Assign backlog items to a GitHub milestone by bridging per-item files to GitHub Issues.
  • Use when populating a sprint or release milestone, after create-milestone, or when a milestone number is specified with optional P0/P1/P2 or title filter.
  • Creates missing GitHub Issues for selected P0/P1 items, assigns all selected items to the milestone, and updates Project V2 Status to Backlog.

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,615 B
  • docs SUMMARY.md 417 B

History

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

SKILL.md

Group Items to Milestone

Assign backlog items to a GitHub milestone. Bridges .claude/backlog/ per-item files → GitHub Issues → milestone assignment.

API references: [milestones.md](../gh/references/milestones.md) | [issue-stories.md](../gh/references/issue-stories.md) | [projects-v2.md](../gh/references/projects-v2.md)

Arguments

  • {milestone-number} — required
  • Optional filter: P0, P1, P2, or title substring to pre-filter the list
/group-items-to-milestone 3
/group-items-to-milestone 3 P1
/group-items-to-milestone 3 github

Workflow

Step 1: Resolve Milestone

Call backloglistmilestones(state="open") and filter the returned list for the entry where number == {number}. If not found, call backloglistmilestones(state="all") and filter again. Extract title, state, openissues, closedissues from the matching entry.

If milestone not found or closed, report and stop.

Step 2: Load Backlog Items

Call the mcp__plugindhbacklog__backloglist tool. Parse the returned dict — each entry in items has title, priority, issue, plan, status, milestone, filepath, groomed. Filter items by section (P0, P1, P2, Ideas). Apply any title filter.

For each item determine status:

  • Has issueIssue: #N field present → verify state via backloglistissues(state="open") — check if issue number appears in the returned list
  • No issue — P0/P1 item without issue → flagged for creation offer
  • Already in milestone — issue already assigned to this milestone → shown pre-checked

Step 3: Present Selection

Milestone #{N}: {title}

P0
  1. [✓] SAM: Error Recovery — Issue #12 (open)
  2. [ ] bash-development: Fix inaccuracies — no issue yet

P1
  3. [✓] gitlab-skill: Remove URL — Issue #8 (open)
  4. [ ] create-backlog-item skill — no issue yet
  5. [~] commitlint verify flag — Issue #5 (already in this milestone)

Legend: [✓] has issue  [ ] needs issue created  [~] already assigned

Use AskUserQuestion: "Which items to add? (comma-separated numbers, or 'all', or 'P0', 'P1')"

Step 4: Create Missing Issues

For each selected item with no Issue: #N:

Build story-format body (Story / Description / Acceptance Criteria / Context). Create issue using the Python script (preferred — handles label creation automatically):

uv run .claude/skills/gh/scripts/github_project_setup.py issue create \
  --title "{type}: {title}" \
  --body "{story body}" \
  --priority-label "priority:{p0|p1|p2|idea}" \
  --type-label "type:{feature|bug|refactor|docs|chore}" \
  --milestone {number}

The backlog script automatically writes issue: '#N' back to the item's metadata.

Skip issue creation for P2/Ideas items — assign by milestone number only if they already have an issue.

Step 5: Assign Existing Issues

For selected items that already have issues but are not yet in this milestone:

uv run .claude/skills/gh/scripts/github_project_setup.py issue set-milestone \
  --issue {issue_number} \
  --milestone {milestone_number}

Step 6: Update Project V2 Status

Set Status = Backlog for each newly assigned item:

uv run .claude/skills/gh/scripts/github_project_setup.py project update-status \
  --issue {issue_number} \
  --status Backlog

Step 7: Report

Milestone #{N}: {title}

Assigned {count} items:
  Issue #12: SAM: Error Recovery (existing issue)
  Issue #14: create-backlog-item skill (new issue created)
  Issue #5:  commitlint verify flag (already assigned — skipped)

Per-item files updated with {created_count} new issue numbers.

Next step: /dh:groom-milestone {number}

Error Handling

  • Milestone not found: call backloglistmilestones(state="open") and list available milestones, then stop.
  • Issue creation fails: log error per item, continue with remaining.
  • No items match filter: report and show available sections.
  • Label not found: githubprojectsetup.py issue create handles label creation automatically via ensurelabel().