From github
This skill should be used when the user wants to publish a draft release created by Release Drafter. Finds the draft release, checks CI status on main, confirms with the user, and publishes. Does NOT merge PRs — it only handles the release publishing step. Activates on: "release", "publish release", "draft release", "ship release", "cut a release", "publish draft", "release drafter", "make a release", "rilascio", "pubblicare release", "rilasciare versione".
npx claudepluginhub fabn/claude-plugins --plugin githubThis skill uses the workspace's default tool permissions.
Publish a draft release created by [Release Drafter](https://github.com/release-drafter/release-drafter). This skill finds the latest draft, verifies CI is green on main, asks for confirmation, and publishes.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Publish a draft release created by Release Drafter. This skill finds the latest draft, verifies CI is green on main, asks for confirmation, and publishes.
Scope: This skill handles release publishing only. It does NOT merge PRs — merge your PR first, then run this skill to publish the resulting draft release.
gh CLI for repo info, CI status, release publishinggithub): list_releases for finding draft releases, get_me for auth verificationRun gh repo view --json owner,name to get the current repository's owner and name.
Use the GitHub MCP tool to list recent releases:
mcp__github__list_releases(owner, repo, perPage: 10)
Search the results for releases with draft: true.
Handle edge cases:
gh run list --workflow release-drafter.ymlAskUserQuestion and ask which one to publish. Show tag name, title, and creation date for each.Verify that CI is passing on the main branch:
gh run list --branch main --limit 5 --json status,conclusion,name,databaseId,headSha
gh run watch <RUN_ID> --exit-statusPresent a summary via AskUserQuestion before publishing. This step is mandatory — never publish without explicit user confirmation.
Show:
v1.2.3)Ask: "Publish this release?" with options:
Use the gh CLI to publish the draft:
gh release edit <TAG> --draft=false
After publishing, verify it succeeded:
gh release view <TAG> --json tagName,url,isDraft,publishedAt
isDraft is falsePresent the final summary:
## Release Published
**Tag:** v1.2.3
**URL:** https://github.com/owner/repo/releases/tag/v1.2.3
**CI status:** All workflows passed
**Published:** 2025-01-15T10:30:00Z
### Changelog
- Feature: Add user authentication (#42)
- Fix: Resolve memory leak in worker (#38)
- Chore: Update dependencies (#35)
Include the full changelog from the release body.
| Situation | Action |
|---|---|
gh CLI not installed | Stop, tell user to run /github:setup |
gh not authenticated | Stop, tell user to run gh auth login or /github:setup |
| Not in a git repository | Stop, tell user to navigate to a git repository |
| No draft release found | Explain Release Drafter may not be configured, suggest checking workflow |
| Multiple draft releases | Present all to user, ask which to publish |
| CI in progress on main | Wait with gh run watch, then re-check |
| CI failed on main | Stop, report which workflow failed, do NOT publish |
| User declines to publish | Abort gracefully, no changes made |
gh release edit fails | Report error, suggest checking repo permissions (write access required) |
| Release already published | Inform user the release is already live, no action needed |
/github:setup — Verify prerequisites (gh CLI, authentication, MCP token)