release-notes

A release-note generator that turns Git history and referenced issues into release notes following the Keep a Changelog format.

In plain words
What is it for?
Preparing release notes for a specified version from Git commits, classifying changes, and saving the results in the expected documentation files.
Why use it?
It organizes changes between versions and writes both a main changelog entry and a separate announcement document.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/channinglua/prax-agent/release-notes
Any agent
npx skills add ChanningLua/prax-agent --skill release-notes
Clone the repo
git clone --depth 1 https://github.com/ChanningLua/prax-agent

Made for: Claude Code, Codex.

Per session 26 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,188 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00026 $0.02188
Opus 5 $0.00013 $0.01094
Sonnet 5 $0.00005 $0.00438
Haiku 4.5 $0.00003 $0.00219

Measured 2d ago against content hash 0922247a8dc7, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

release-notes scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/prax/skills/release-notes/SKILL.md · 218 lines

How it starts

The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Release Notes Generator

把从上一个 tag 到当前 HEAD(或指定 tag)之间的 git 历史整理成符合 Keep a Changelog 的发版说明。

何时触发

  • 用户说:"生成 v1.2.0 的 release notes" / "写一下 0.4.0 的 changelog"
  • 用户打了新 tag(例如 v0.4.0)后要求写说明
  • cron 在 v*.*.* tag 推送后触发

输入

  • 必需:目标版本号(形如 v0.4.00.4.0,自动带/去 v 前缀兼容)
  • 可选:上一个 tag(默认用 git describe --tags --abbrev=0 <target>^

输出

两个文件都要写:

  1. CHANGELOG.md:在 ## [Unreleased] 下方插入新条目(不覆盖旧版本)
  2. docs/releases/<version>.md:独立的发版公告(便于网站、邮件、微信直接引用)

工作流程

Step 1:预检

# 1.1 必须在 git 仓库里
git rev-parse --show-toplevel

# 1.2 工作区必须干净(有未提交改动时警告,不强制)
git status --porcelain

# 1.3 确认目标版本格式
# 接受 v0.4.0 / 0.4.0;内部统一成 v0.4.0

失败就停下来告诉用户,不要继续生成"碰运气"内容。

Step 2:收集原始数据

# 上一个 tag
PREV=$(git describe --tags --abbrev=0 <target>^ 2>/dev/null || echo "")

# 范围内的 commit 清单(排除 merge commits)
git log ${PREV:+$PREV..}<target> --oneline --no-merges

# 每个 commit 的完整 message(分类需要 body)
git log ${PREV:+$PREV..}<target> --format='%H%n%s%n%b%n---' --no-merges

没有 PREV(第一次发版)时,列全部历史,但限 50 条以内(多了就说"initial release")。

Step 3:按 Conventional Commits 分类

正则匹配 commit message 首行的前缀:

前缀 CHANGELOG 段 优先级
feat(<scope>):feat: ### Added 1
fix(...) ### Fixed 2
refactor(...) ### Changed 3
perf(...) ### Changed 3
docs(...) ### Documentation 4
chore(...) / test(...) / ci(...) 跳过,除非是 breaking 或 chore: bump version -
BREAKING CHANGE: 出现在 body ### Breaking(置顶 0
其他 ### Other 5

每条在段内按时间倒序排列。

Step 4:抽取 issue / PR 引用

对每条 commit 扫 body 里的 #(\d+)(#\d+)GH-\d+

# 如果有 gh CLI 且 issue 开着,拿 title 补充上下文
gh issue view <N> --json title,labels -q '.title + " [" + (.labels | map(.name) | join(",")) + "]"'

没 gh CLI 或 issue 404 → 保留 #N 原样引用,不崩。

硬约束每一个在 commit body 里出现的 #N 引用都必须保留在对应 bullet 末尾,格式 . Refs #N不能偷懒抽象掉——审查人要靠它回追 issue。如果一条 commit 有多个 #N,全部列出:. Refs #12, #17

Read the full file on GitHub · 218 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 218 lines · 26 tokens per session scan A 0922247a8dc7

Subscribe to this mod's changes

release-notes is a skill published in the GitHub repository ChanningLua/prax-agent (272 stars, last pushed 1mo ago), licensed MIT. It adds 26 tokens to every session and 2,188 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

release-announcement

Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.

paperclipai/paperclip · 42 tokens

Release Notes Generator

Generate professional software release notes from a commit log: classify changes, write user-facing summaries, draft a publishable announcement, and assess release readiness. Use for release, changelog, version, and deploy requests.

AgentEra/Agently · 46 tokens

release

Guide the Backend.AI release process - run release.sh, generate changelog via towncrier, consolidate RC entries for final releases with subsection grouping.

lablup/backend.ai · 32 tokens

write-changelog

Generates a CHANGELOG.md entry for a release by summarizing git commits since the last tag. Groups changes by type: Added, Changed, Fixed, Removed. Follows Keep a Changelog format (https://keepachangelog.com). Invoked when the user asks to update the changelog, write release notes, or prepare a release.

soulcodex/agentic · 73 tokens

Changelog Generator

Generate release notes from git commits, updates, or feature lists.

claude-office-skills/skills · 16 tokens

release-deploy

Release and deploy via GitHub tags and GitHub Actions (not every commit). Creates production releases from main and beta releases from staging using the GitHub CLI. Use when the user asks to release, ship, deploy, cut a version, tag a release, publish beta/production, create a GitHub Release, or bump a semver tag. On…

afaraha8403/balakit · 94 tokens