About
This skill drafts release announcements and changelog pages by analyzing git commits, release ranges, and development session history. It triggers when users request release notes, changelogs, or version summaries, but not for regular commit messages. The tool generates narrative explanations of what changed in a release while maintaining separation between curated announcements and automated changelogs.
Quick Install
Claude Code
Recommendednpx skills add Necmttn/ax -a claude-code/plugin add https://github.com/Necmttn/axgit clone https://github.com/Necmttn/ax.git ~/.claude/skills/release-announcementCopy and paste this command in Claude Code to install this skill
Documentation
ax:release-announcement
Write release announcements that are grounded in the actual release range and
the agent sessions that produced it. This skill owns the curated layer under
docs/releases/; Release Please still owns CHANGELOG.md.
Assumes ax is on PATH and the local ax database is reachable. If ax fails
with a DB connection error, tell the user to start the repo DB and continue
from git evidence only if they ask.
When to fire
Use this skill for:
- "write release notes" / "draft release announcement"
- "prepare changelog" / "update the website changelog"
- "release page" / "version page" / "SEO release page"
- "what changed in vX.Y.Z"
- "generate announcement for vX.Y.Z"
- "explain how we got to this release"
Do not use this for a single commit message, generic README edits, or a non-release feature doc.
Workflow
1. Resolve the version and range
If the version is known:
bun run release:announcement -- X.Y.Z
This drafts docs/releases/vX.Y.Z.md and, when the Release Please compare
heading is present, embeds:
- previous release tag (
BASE_REF) - release tag or
HEAD(HEAD_REF) git diff --name-status "$BASE_REF..$HEAD_REF"git log --reverse --format='%h %cs %s' "$BASE_REF..$HEAD_REF"
If you need to inspect manually:
BASE_REF=<previous-release-tag>
HEAD_REF=<release-head-or-tag>
git diff --name-status "$BASE_REF..$HEAD_REF"
git log --reverse --format='%h %cs %s' "$BASE_REF..$HEAD_REF"
2. Map commits and files to agent sessions
Use the file list to identify touched subsystems. Use the commit list to pick important SHAs. Then query ax:
ax ingest here --since=30d
ax sessions here --days=30
ax sessions near <important-sha>
ax recall "<subsystem or decision>" --sources=turn,commit --scope=here
For large releases, inspect at least:
- one SHA per major topic
- one SHA near each major schema/API/CLI change
- any SHA tied to a surprising bug fix or reversal
- session windows around the merge/release PR if available
3. Write the announcement
Replace the generated draft with a topical narrative. Keep it concise, but make it useful:
- How we got here - the problem, decision tree, tradeoffs, and why the final shape won. Cite session/commit evidence in prose.
- What changed - grouped by topic, not one flat commit list.
- Example - a CLI command, config snippet, output sample, schema fragment, or before/after workflow when the release changes behavior.
- Visual evidence - screenshot, diagram, or output capture when a UI, CLI, dashboard, TUI, or workflow is easier to understand visually.
- Why it matters - the practical day-to-day impact.
Do not invent motivation. If ax session evidence is missing, say what the commits and changed files prove and keep the story narrower.
4. Assets and rendering
Put website-visible release images here:
apps/site/public/releases/assets/
Reference them from release markdown:

The website release renderer supports headings, lists, links, bold scopes, fenced code blocks, and images. Use those instead of hand-written HTML.
5. Verify
Run:
bun run typecheck
cd site && bun run build
If the page changed, preview and smoke the specific version page:
cd site
bun run preview -- --host 127.0.0.1 --port 4175
Check /changelog and /changelog/vX.Y.Z.
GitHub Repository
Frequently asked questions
What is the release-announcement skill?
release-announcement is a Claude Skill by Necmttn. Skills package instructions and resources that Claude loads on demand, so Claude can perform release-announcement-related tasks without extra prompting.
How do I install release-announcement?
Use the install commands on this page: add release-announcement to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does release-announcement belong to?
release-announcement is in the Meta category, tagged ai.
Is release-announcement free to use?
Yes. release-announcement is listed on AIMCP and free to install.
Related Skills
This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
