.forge/skills/write-release-notes/SKILL.md
Generate engaging, high-energy release notes for a given version tag. Fetches the release from GitHub, retrieves every linked PR's title and description, then synthesizes all changes into a polished, user-facing release note with an enthusiastic tone. Use when the user asks to write, generate, or create release notes for a version (e.g. "write release notes for v1.32.0", "generate release notes for the latest release", "create changelog for v2.0").
npx skillsauth add antinomyhq/forge write-release-notesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate clear, informative, and enthusiastic release notes by pulling live data from GitHub and synthesizing every PR into a cohesive narrative.
Run the bundled script to pull the release metadata and all linked PR details in one shot:
bash .forge/skills/write-release-notes/scripts/fetch-release-data.sh <version> [owner/repo]
<version>: The release tag (e.g. v1.32.0)[owner/repo]: Optional. Defaults to the current repo detected via gh repo view.The script outputs two sections:
### RELEASE METADATA ### — tag name, publish date, release name, raw body### PR DETAILS ### — one JSON object per PR with: number, title, body, labels, author, mergedAt, urlGroup PRs by their conventional commit prefix or label:
| Category | Prefixes / Labels |
|---|---|
| Features | feat, type: feature |
| Bug Fixes | fix, type: fix |
| Performance | perf |
| Refactors | refactor |
| Maintenance | chore, docs, ci, build, deps |
Dependency bumps (e.g. Dependabot PRs) go into Maintenance. Skip PRs with error: "not found".
Produce a Markdown document with the following structure. Keep the tone informative and enthusiastic — explain what changed and why it matters, without resorting to marketing fluff.
# [Product Name] [Version] — [Descriptive Tagline]
> One-sentence summary of what this release focuses on.
## What's New
[2-4 sentence narrative covering the biggest features and fixes.
Describe what changed and what users can now do. Use active voice. Be factual but upbeat.]
## Highlights
### [Feature/Fix Category]
**[PR Title rephrased as a clear description of the change]**
[1-2 sentences expanding on the PR description. Explain what changed and what users can now do differently.
If the PR body has useful context, distill it. If empty, infer from the title.]
[Repeat for each significant PR — skip pure chores/dep bumps unless noteworthy]
## Bug Fixes & Reliability
[Bullet list of fixes, each with a brief impact statement]
## Under the Hood
[Brief paragraph or bullet list covering refactors, maintenance, and dep updates —
keep it light, acknowledge the work without boring the reader]
## Contributors
A huge thank you to everyone who made this release happen: [list @handles — exclude bots like @dependabot]
---
**Full changelog**: [GitHub Release link]
[Version] — [Factual Theme Description] (e.g. "v1.32.0 — Terminal Context, File Drop Support, Windows Performance")Only include external contributors in the Contributors section — exclude the core team:
@tusharmath@amitksingh1490@laststylebender14@dependabot)If no external contributors exist, omit the Contributors section entirely.
After writing the release notes, run the bundled validation script to confirm the output is under 2000 characters:
echo "<release notes>" | bash .forge/skills/write-release-notes/scripts/validate-release-notes.sh
If it prints FAIL, trim the draft and re-run until it prints PASS:
Print the final release notes directly in the chat. Do not write to a file unless the user explicitly asks.
gh CLI automatically.gh api repos/<owner>/<repo>/compare/<prev_tag>...<version> --jq '.commits[].commit.message'
development
Find all FIXME comments across the codebase and fully implement the work they describe. Use when the user asks to fix, resolve, or address FIXME comments, or when running the "fixme" command. Runs a discovery script to find every FIXME, expands multiline comment blocks, groups related FIXMEs across files into a single implementation task, completes the full underlying code changes, removes the FIXME comments only after the work is done, and verifies that no FIXMEs remain.
tools
Generate and create pull request descriptions automatically using GitHub CLI. Use when the user asks to create a PR, generate a PR description, make a pull request, or submit changes for review. Analyzes git diff and commit history to create comprehensive, meaningful PR descriptions that explain what changed, why it matters, and how to test it.
development
Execute structured task plans with status tracking. Use when the user provides a plan file path in the format `plans/{current-date}-{task-name}-{version}.md` or explicitly asks you to execute a plan file.
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends your capabilities with specialized knowledge, workflows, or tool integrations.