← ClaudeAtlas

gh-milestones-projectslisted

Use when creating a GitHub milestone or a GitHub Project (Projects v2 board) from the terminal, or adding issues/PRs to a project. Covers the two gh operations that have non-obvious invocations. Triggers on "create milestone", "gh milestone", "create a project board", "GitHub Projects", "add issue to project".
noctua84/nescio-ai · ★ 0 · AI & Automation · score 73
Install: claude install-skill noctua84/nescio-ai
# GitHub Milestones & Projects (gh) ## Overview Two GitHub planning operations whose `gh` invocation is easy to get wrong: - **Milestones** — `gh` has **no** `milestone` subcommand; you must go through the REST API. - **Projects (v2)** — `gh project …` exists, but it needs the `project` token scope, which the default login does not grant. For plain issue/PR creation and PR-template detection, use the `handle-pr-comments` skill and standard `gh issue create` / `gh pr create`; this skill is only the milestone + project pieces. ## Context Before starting, read the repo's `CLAUDE.md` / `CLAUDE.local.md` for repo/owner conventions. Derive the repo identity — never hardcode it: ```bash REPO=$(gh repo view --json owner,name -q '.owner.login+"/"+.name') # e.g. Cognigy/ui OWNER=${REPO%%/*} ``` ## Milestones `gh milestone create` **does not exist**. Use the API. ```bash # Create gh api --method POST "/repos/$REPO/milestones" \ --field title="v1.0" \ --field description="First stable release" \ --field due_on="2026-09-30T00:00:00Z" # ISO 8601; always T00:00:00Z. Omit the field for no due date. # List existing (titles) gh api "/repos/$REPO/milestones" --jq '.[].title' ``` Attaching a milestone to an issue/PR: - `gh issue create --milestone "v1.0"` / `gh pr create --milestone "v1.0"` — these take the milestone **title**. - `gh api` payloads take the numeric milestone **id**, not the title. ## Projects (v2 boards) **Prerequisite — the `project` scope.** The defaul