# Write Release Notes

Generate engaging, high-energy release notes for a given version tag.

- Repository: https://github.com/tailcallhq/forgecode (7636 stars)
- Category: Git and review
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add tailcallhq/forgecode --skill write-release-notes -g -a claude-code -y`
Codex: `npx skills add tailcallhq/forgecode --skill write-release-notes -g -a codex -y`
Cursor: `npx skills add tailcallhq/forgecode --skill write-release-notes -g -a cursor -y`
Gemini CLI: `npx skills add tailcallhq/forgecode --skill write-release-notes -g -a gemini-cli -y`

## Description

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").

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Write Release Notes

Generate clear, informative, and enthusiastic release notes by pulling live data from GitHub and synthesizing every PR into a cohesive narrative.

## Workflow

### 1. Fetch Release Data

Run the bundled script to pull the release metadata and all linked PR details in one shot:

```bash
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`, `url`

### 2. Categorize Changes

Group 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"`.

### 3. Write the Release Notes

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.

```markdown
# [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.]

The rest: https://github.com/tailcallhq/forgecode/blob/HEAD/.forge/skills/write-release-notes/SKILL.md
