com um clique
release-notes
基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
基于 git 历史 + issue 引用生成符合 Keep-a-Changelog 规范的发版说明
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
端到端 pipeline —— 抓 X/知乎/Bilibili AI 相关热门 → 整理成 wiki → 推送飞书日报
Prax 风格的 Git 工作流,强调最小 diff、验证后提交和清晰状态。
Prax 风格的 TDD 工作流,强调 RED → GREEN → VERIFY。
在提交、交付或大型改动后运行 Prax 风格的验证闭环。
用 AutoCLI 二进制驱动用户已登录的 Chrome 抓取 Twitter/X、知乎、Bilibili、Reddit 等 55+ 站点
中文编程优化 — 注释、文档和错误信息使用中文
| 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 |
把从上一个 tag 到当前 HEAD(或指定 tag)之间的 git 历史整理成符合 Keep a Changelog 的发版说明。
v0.4.0)后要求写说明v*.*.* tag 推送后触发v0.4.0 或 0.4.0,自动带/去 v 前缀兼容)git describe --tags --abbrev=0 <target>^)两个文件都要写:
CHANGELOG.md:在 ## [Unreleased] 下方插入新条目(不覆盖旧版本)docs/releases/<version>.md:独立的发版公告(便于网站、邮件、微信直接引用)# 1.1 必须在 git 仓库里
git rev-parse --show-toplevel
# 1.2 工作区必须干净(有未提交改动时警告,不强制)
git status --porcelain
# 1.3 确认目标版本格式
# 接受 v0.4.0 / 0.4.0;内部统一成 v0.4.0
失败就停下来告诉用户,不要继续生成"碰运气"内容。
# 上一个 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")。
正则匹配 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 |
每条在段内按时间倒序排列。
对每条 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。
模板(严格遵守):
## [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.
约束:
tools/ → "tools";core/middleware.py → "middleware")docs/releases/<version>.md工具选择(很关键):
docs/releases/<version>.md 通常不存在。新建文件必须用 Write 工具,不能用 HashlineEdit / Edit(后者只能改已存在文件,对新路径会报 File not found)。Write 工具会自动 mkdir -p 父目录,不需要先跑 shell 命令建目录。CHANGELOG.md 是已存在文件,用 Edit / HashlineEdit 改。模板:
# 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>
关键:同一版本号重跑必须覆盖,不能追加。
执行前:
CHANGELOG.md,用 ## [<version>] - 正则找到该条目的起止行## [Unreleased] 下方插入docs/releases/<version>.md 直接 overwrite。
若 .prax/notify.yaml 有 release-announce channel,调 Notify:
Notify(
channel = "release-announce",
title = "Prax " + version + " released",
body = <docs/releases/<version>.md 的 Highlights 段>,
level = "info"
)
gh CLI 不可达时降级到"只用 git log + commit body",不报错。BREAKING CHANGE: 才放 Breaking 段。别自作聪明把 refactor(api) 当 breaking。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 改。