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.
npx agentmods add skills/channinglua/prax-agent/release-notesnpx skills add ChanningLua/prax-agent --skill release-notesgit clone --depth 1 https://github.com/ChanningLua/prax-agentWhat 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.
| Model | Per session | Once 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 |
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.
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.0或0.4.0,自动带/去v前缀兼容) - 可选:上一个 tag(默认用
git describe --tags --abbrev=0 <target>^)
输出
两个文件都要写:
CHANGELOG.md:在## [Unreleased]下方插入新条目(不覆盖旧版本)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。
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.
- 2d ago First seen · 218 lines · 26 tokens per session scan A 0922247a8dc7
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.
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.
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.
release
Guide the Backend.AI release process - run release.sh, generate changelog via towncrier, consolidate RC entries for final releases with subsection grouping.
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.
Changelog Generator
Generate release notes from git commits, updates, or feature lists.
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…