Agent skill

Release Notes

by ChanningLua in ChanningLua/prax-agent

基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明. An agent skill from ChanningLua/prax-agent.

MITAuto-check: notesDevelopment

Install Release Notes

skills CLI
$ npx skills add ChanningLua/prax-agent --skill release-notes -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ChanningLua/prax-agent release-notes --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ChanningLua/prax-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/prax/skills/release-notes .claude/skills/release-notes && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
release-notes
GitHub stars
273
Token cost
~1.2k tokens
SKILL.md length
286 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明. An agent skill from ChanningLua/prax-agent.

  • Works in 8 steps: :预检 → :收集原始数据 → :按 Conventional Commits 分类 → …
  • Tasks that involve Changelog and release notes
  • SKILL.md covers 何时触发, 输入, 输出 and 工作流程, plus 3 more sections
  • Calls git and gh

What it does

Release Notes is an agent skill from ChanningLua/prax-agent. 基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with Git. The repository describes itself as: Self-improving agent runtime that learns from experience — test-verify-fix loops, correction detection, cross-project memory, multi-model orchestration. The licence is MIT.

When your agent uses it

  • Tasks that involve Changelog and release notes

Example prompts

  • “/release-notes”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Write, Grep, Glob, Notify

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. :预检
  2. :收集原始数据
  3. :按 Conventional Commits 分类
  4. :抽取 issue / PR 引用
  5. :写 CHANGELOG 条目
  6. :写 docs/releases/.md
  7. :幂等处理
  8. :通知(可选)

What it can do on your machine

Read from SKILL.md and the folder at commit 19d016b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Grep
    • Glob
    • Notify

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • keepachangelog.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release Notes loads about 1.2k tokens when it runs. Until then it costs about 16 tokens; SKILL.md has 286 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~16
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Grep, Glob, Notify

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ChanningLua/prax-agent at commit 19d016b, republished under its MIT licence (© ChanningLua). 286 words, ~1,248 tokens.

Download SKILL.mdSave it as .claude/skills/release-notes/SKILL.md (or your agent's skills folder).
name
release-notes
description
基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明
allowed-tools
Bash, Read, Write, Grep, Glob, Notify
triggers
release notes, 发版说明, changelog, release, 版本日志, 打 tag, bump version
tags
release, changelog, git, devex
priority
7

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.0 或 0.4.0,自动带/去 v 前缀兼容)
  • 可选:上一个 tag(默认用 git describe --tags --abbrev=0 <target>^)

输出

两个文件都要写:

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

工作流程

Step 1:预检
bash
# 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:收集原始数据
bash
# 上一个 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:### Added1
fix(...)### Fixed2
refactor(...)### Changed3
perf(...)### Changed3
docs(...)### Documentation4
chore(...) / test(...) / ci(...)跳过,除非是 breaking 或 chore: bump version-
BREAKING CHANGE: 出现在 body### Breaking(置顶)0
其他### Other5

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

Step 4:抽取 issue / PR 引用

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

bash
# 如果有 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。

Step 5:写 CHANGELOG 条目

模板(严格遵守):

markdown
## [0.4.0] - 2026-04-22

### Breaking
- **\<scope>**: description(参考 #123 [breaking-change])

### Added
- \<scope>: description. Refs #42.
- \<scope>: description.

### Changed
- \<scope>: description.

### Fixed
- \<scope>: description. Refs #17.

### Documentation
- \<scope>: description.

### Other
- Miscellaneous changes that don't fit elsewhere.

约束:

  • 语气:陈述,过去式("added", "fixed", "removed"),不用"we've added / we plan to"
  • 禁忌:不加"Stay tuned!" / "exciting" / "🎉" / 表情(除非用户明确要求)
  • scope 必填:commit 没写 scope 就从 files changed 里推断(tools/ → "tools";core/middleware.py → "middleware")
  • 每条 ≤ 80 字
Step 6:写 docs/releases/<version>.md

工具选择(很关键):

  • docs/releases/<version>.md 通常不存在。新建文件必须用 Write 工具,不能用 HashlineEdit / Edit(后者只能改已存在文件,对新路径会报 File not found)。
  • Write 工具会自动 mkdir -p 父目录,不需要先跑 shell 命令建目录。
  • CHANGELOG.md 是已存在文件,用 Edit / HashlineEdit 改。

模板:

markdown
# Prax \<version>

_Released 2026-04-22_

<1-2 句话总览:这次主要做了什么>

## Highlights

- \<1-3 条顶级亮点,每条一行>

## What's Changed

<把 CHANGELOG 的 Breaking/Added/Changed/Fixed 段照抄>

## Upgrading

<如果有 breaking,这里写迁移;没有就 "Drop-in replacement, no migration needed.">

## Credits

<用 git log --format='%aN' --no-merges <range> | sort -u 列贡献者>

---

Full diff: https://github.com/ChanningLua/prax-agent/compare/\<prev>...\<version>
Step 7:幂等处理

关键:同一版本号重跑必须覆盖,不能追加。

执行前:

  • 读 CHANGELOG.md,用 ## [<version>] - 正则找到该条目的起止行
  • 有就整块删除,再插入新版
  • 没有就直接在 ## [Unreleased] 下方插入

docs/releases/<version>.md 直接 overwrite。

Step 8:通知(可选)

若 .prax/notify.yaml 有 release-announce channel,调 Notify:

Notify(
  channel = "release-announce",
  title   = "Prax " + version + " released",
  body    = <docs/releases/<version>.md 的 Highlights 段>,
  level   = "info"
)

硬约束

  1. 不打 tag、不 push、不发 npm:这是内容生成器,不是发布工具。发布动作始终由用户明确触发。
  2. 不猜版本号:用户没指定就问一次,不要自己从 pyproject.toml 读一个版本就开干。
  3. 断网可跑:gh CLI 不可达时降级到"只用 git log + commit body",不报错。
  4. Breaking 必须显式:只有 commit body 里真的有 BREAKING CHANGE: 才放 Breaking 段。别自作聪明把 refactor(api) 当 breaking。

和其他 skill 的接力

  • docs-audit 发现"有代码改动但 docs 没跟上"时,生成的 issue 可以成为下一次 release notes 的候选输入
  • ai-news-daily 负责抓外部内容,本 skill 专职 on-repo 产出,边界清晰

典型调用

用户:生成 v0.4.0 的 release notes

→ skill 跑 git describe 找到 PREV=v0.3.2
→ git log v0.3.2..HEAD 拿到 8 条 commit
→ 按 feat/fix/chore 分成四段
→ 识别 chore(polish) 不属于任何用户可见改动,放 Other
→ 抽取 #123 引用(如果有),gh issue view 补标题
→ 读 CHANGELOG.md 找 [0.4.0](本次第一次跑,没有)
→ 插入新条目到 [Unreleased] 下方
→ 写 docs/releases/v0.4.0.md
→ 报告用户:CHANGELOG 加了 X 行、docs/releases/v0.4.0.md 写好了

用户读完满意就打 tag + 发版,不满意就让 skill 改。

© ChanningLua, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in src/prax/skills/release-notes of ChanningLua/prax-agent.

Open the folder on GitHubat commit 19d016b

Compare with similar skills

Release Notes next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Release Notes compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Notes this skillChanningLua/prax-agent273—~1.2kAutomated safety check: NotesMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole70k—~1.9kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills103k2 repos~3.5kAutomated safety check: NotesMIT

Similar skills

  • React Router Release Notes Prep

    remix-run/react-router

    Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.

    57k GitHub stars~1.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    70k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    103k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated 2 days ago
    DevelopmentAuto-check passed

More from ChanningLua/prax-agent

All 12 skills in this repo
  • Prax Shift

    ChanningLua/prax-agent

    Hand coding work or explicitly authorized one-shot verification to Prax Shift, inspect a shift, or schedule supported coding work with Claude as the worker.

    273 GitHub stars~1.4k tokensUpdated 27 days ago
    Auto-check passed
  • Prax Shift

    ChanningLua/prax-agent

    Hand coding work or explicitly authorized one-shot verification to Prax Shift, inspect a shift, or schedule supported coding work with Codex as the worker.

    273 GitHub stars~1.6k tokensUpdated 27 days ago
    Auto-check passed
  • AI News Daily

    ChanningLua/prax-agent

    端到端 pipeline —— 抓 X/知乎/Bilibili AI 相关热门 → 整理成 wiki → 推送飞书日报. An agent skill from ChanningLua/prax-agent.

    273 GitHub stars~1.3k tokensUpdated 27 days ago
    Auto-check: notes
  • Browser Scrape

    ChanningLua/prax-agent

    用 AutoCLI 二进制驱动用户已登录的 Chrome 抓取 Twitter/X、知乎、Bilibili、Reddit 等 55+ 站点

    273 GitHub stars~587 tokensUpdated 27 days ago
    Auto-check: notes
  • Hotspot Article

    ChanningLua/prax-agent

    从近期大事件、真实需求和常青决策中选题,完成多源研究、业务落地、实测、事实核验和精选文章. An agent skill from ChanningLua/prax-agent.

    273 GitHub stars~2.7k tokensUpdated 27 days ago
    Auto-check: notes
  • Knowledge Compile

    ChanningLua/prax-agent

    把一堆 raw markdown(抓取/笔记/文章)压成 Obsidian 风格 wiki —— 有 TOC、有按主题聚合、有日简报

    273 GitHub stars~914 tokensUpdated 27 days ago
    Auto-check: notes

Works with

Categories

Questions about Release Notes

What does Release Notes do?

基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明. An agent skill from ChanningLua/prax-agent. Release Notes is an agent skill from ChanningLua/prax-agent.

When should I use Release Notes?

Release Notes fits situations like: tasks that involve Changelog and release notes.

How do I install Release Notes in Claude Code?

Run `npx skills add ChanningLua/prax-agent --skill release-notes -a claude-code`. Or copy the skill folder (src/prax/skills/release-notes in ChanningLua/prax-agent) into .claude/skills/release-notes in your project. Claude Code loads it when a task matches its description.

How do I install Release Notes in Codex?

Run `npx skills add ChanningLua/prax-agent --skill release-notes -a codex`. Or copy the skill folder (src/prax/skills/release-notes in ChanningLua/prax-agent) into .agents/skills/release-notes in your project. Codex loads it when a task matches its description.

Can I use Release Notes in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ChanningLua/prax-agent --skill release-notes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-notes, .gemini/skills/release-notes, .github/skills/release-notes and .opencode/skills/release-notes in your project.

What does Release Notes need to run?

Going by SKILL.md and its folder, Release Notes needs the command-line tools its instructions call (git and gh). Its frontmatter pre-approves these tools: Bash, Read, Write, Grep, Glob, Notify.

Does Release Notes access the network?

SKILL.md names 1 domain. As links in the text: keepachangelog.com. This is read from the text; nothing was executed.

Is Release Notes safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Release Notes use?

Release Notes is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release Notes use?

About 1.2k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release Notes?

Skills that share tags, products or a category with Release Notes: React Router Release Notes Prep (remix-run/react-router, 57k stars), Draft Release Notes (jamiepine/voicebox, 57k stars), Mole Release Notes Publisher (tw93/Mole, 70k stars) and Release Bump (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Notes?

ChanningLua (a GitHub user) maintains it in ChanningLua/prax-agent, which has 273 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 11, 2026.

Source: ChanningLua/prax-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.