with one click
generate-changelog
// 根据当前项目 package.json 版本与 Git 提交记录生成中文版本日志。用于用户提出"生成版本日志""生成 changelog""发布新版本并生成更新记录"等请求时,自动读取当前版本号、定位上一版本、汇总版本区间 commit,并更新 changelogs/cn.json(新增版本、生成中文 summary、按类型归类变更)。
// 根据当前项目 package.json 版本与 Git 提交记录生成中文版本日志。用于用户提出"生成版本日志""生成 changelog""发布新版本并生成更新记录"等请求时,自动读取当前版本号、定位上一版本、汇总版本区间 commit,并更新 changelogs/cn.json(新增版本、生成中文 summary、按类型归类变更)。
将 changelogs/cn.json 的当前版本日志同步为多语言版本:生成适合英文母语者阅读的英文版、适合繁体中文用户阅读的繁中版、适合日语母语者阅读的日文版,分别更新 changelogs/en.json、changelogs/tw.json、changelogs/ja.json,并在当前项目创建 release 提交(包含 package.json 与四种语言 changelog)。用于用户提出"同步版本日志""生成并同步 changelog""发布前同步多语言日志"等请求。仅创建 commit,不执行 push。
Use when 用户希望根据一句自然语言需求创建新的 ChatLab assistant 配置、assistant Markdown、分析助手模板,或需要为群聊/私聊场景整理可写入 assistant/<locale>/<assistant-id>.md 的多语言助手文件。
| name | generate-changelog |
| description | 根据当前项目 package.json 版本与 Git 提交记录生成中文版本日志。用于用户提出"生成版本日志""生成 changelog""发布新版本并生成更新记录"等请求时,自动读取当前版本号、定位上一版本、汇总版本区间 commit,并更新 changelogs/cn.json(新增版本、生成中文 summary、按类型归类变更)。 |
按以下流程更新 changelogs/cn.json。
package.json 中的 version 作为 currentVersion。changelogs/cn.json,确认是否已存在 currentVersion。previousVersion:
currentVersion 已存在于 changelog:取它的下一条记录版本号。currentVersion 不存在于 changelog:取第一条记录版本号。previousVersion,报错并停止。优先按以下规则确定区间:
v{currentVersion}:使用 v{previousVersion}..v{currentVersion}。v{currentVersion}:使用 v{previousVersion}..HEAD。v{previousVersion} 不存在:回退为从首个提交到 HEAD,并在结果中明确标注"缺少上一版本 tag,采用全量范围"。使用命令:
git log --no-merges --pretty=format:'%h%x09%s' <RANGE>
必要时读取正文:
git show -s --format='%B' <commit>
将 commit 按以下类型归类到 changes[].type:
featfixrefactorperfstyledocstestbuildcichorerevertother(无法识别前缀时)归类规则:
feat:, fix(scope):)。other。端标记规则:
【桌面端】:仅 Electron 桌面端可见或仅影响桌面端。【CLI Web】:仅通过 CLI 启动的 Web UI 可见或仅影响 Web 模式。【CLI】:仅命令行、npm 包、CLI 启动/发布链路相关。【MCP】:仅 MCP Server、MCP 设置或 MCP 工具集相关。summary 可概括提及端名,但不使用前缀格式。type 下的 items 排序:先放不带端前缀的通用/跨端变更,再放带端前缀的专属变更;专属变更内部按影响范围和用户可感知程度排序。为本版本生成 1 句中文 summary:
目标文件:changelogs/cn.json
更新规则:
version: currentVersiondate: 当前日期(YYYY-MM-DD)summary: 新生成摘要changes: 分类后的数组(每个元素为 { "type": string, "items": string[] })npx prettier --write changelogs/cn.json
JSON.stringify(..., null, 2) 的最小格式保证,并在输出中明确提示"未执行 Prettier 格式化"。写入后执行以下检查:
version 无重复。changes 中每个 items 至少 1 条。feat / fix)。若自检失败,修复后再输出结果。
补充检查:
changelogs/cn.json 已经过 Prettier(若可用)。自检通过并输出结果后,必须询问用户:
"changelog 已生成完毕。是否继续执行 sync-changelog 技能,将本版本日志同步为多语言版本并提交?"
../sync-changelog/SKILL.md。需要查看项目格式细节时,读取:
references/changelog-format.mdscripts/extract_commits_for_changelog.shscripts/format_changelog.sh