From github-releases
Set up GitHub release notes automation by generating .github/release.yml. Use when user says "configure release notes", "set up release categories", "create release.yml", "automate release notes", "customize release notes grouping", or wants to configure how GitHub generates release notes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/github-releases:configureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generates `.github/release.yml` for automated release note categorization.
Generates .github/release.yml for automated release note categorization.
skills/shared/references/cross-cutting.md.github/release.yml already exists, show it and ask before overwriting--json flags for structured outputgh auth status
# Check if release.yml already exists
git ls-files .github/release.yml
cat .github/release.yml 2>/dev/null
If .github/release.yml already exists, show its contents and ask the user whether to update it or create a fresh one.
Step 1: Analyze repo labels
# Get all labels
gh label list --json name,description --limit 200
Group labels by category pattern (e.g., type: *, area: *).
Step 2: Analyze PR history
# Recent PRs with labels
gh pr list --state merged --limit 50 --json title,labels,author
Identify which labels are commonly used on PRs.
Step 3: Generate configuration
Read references/release-yml-guide.md for the full schema and examples.
Map discovered labels to release note categories:
type: feature, enhancement → "New Features"type: bug, bug, fix → "Bug Fixes"documentation, docs → "Documentation"dependencies, dependabot → "Dependencies"breaking, breaking-change → "Breaking Changes"Step 4: Preview config
Show the complete .github/release.yml content to the user. Explain each category and which labels map to it.
Step 5: Write file
After user approval, write .github/release.yml.
Step 6: Validate
# Generate preview notes using the new config
gh api repos/{owner}/{repo}/releases/generate-notes \
-f tag_name="HEAD" \
-f target_commitish="$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')" \
--jq '.body' 2>/dev/null
If the preview fails (no previous tags), explain that validation will work once there's a tag.
When .github/release.yml already exists:
Configure labels or authors to exclude from release notes:
changelog:
exclude:
labels:
- "skip-changelog"
- "internal"
authors:
- "dependabot"
- "renovate"
If the repo has few or no labels suitable for release note categorization:
gh label create "type: feature" --color "0e8a16" --description "New feature or enhancement"
gh label create "type: bug" --color "d73a4a" --description "Something isn't working"
.github/release.yml.github/release.ymlNo labels in repo:
release.yml syntax error:
references/release-yml-guide.md for the correct schema.categoriesGenerated notes empty:
Permissions:
.github/release.yml requires write access to the repositorynpx claudepluginhub ondrasek/cc-plugins --plugin github-releasesAutomates GitHub releases with gh CLI including semantic versioning, changelog generation from PRs, tagging, and asset management. Use for creating, editing, or verifying releases.
Checks and configures release-please GitHub Actions workflows for project standards including latest version, tokens, triggers, and project-type detection for Node/Python/Go/Rust.
Manages GitHub remote operations: repo creation, metadata, releases, issues, PRs, and read-only security posture audits via gh. Companion to git-ops and push-gate.