Skip to main content

release-changelog-update

依据目标库/模块既有 CHANGELOG.md 版式,从上一版日期到当前用 git 收集该库根路径下 提交(含完整 commit message 正文),去重合并后撰写专业变更条目;与项目发版版本 配置对齐。在用户要求更新 CHANGELOG、发版说明、模块变更记录或同步某子库 Change Log 时使用。

Quellinformationen

Repository
afkT/DevUtils
Letzte Quellaktivität
21. Mai 2026 um 16:07
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
1.613
Forks
315

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
release-changelog-update
description
依据目标库/模块既有 CHANGELOG.md 版式,从上一版日期到当前用 git 收集该库根路径下 提交(含完整 commit message 正文),去重合并后撰写专业变更条目;与项目发版版本 配置对齐。在用户要求更新 CHANGELOG、发版说明、模块变更记录或同步某子库 Change Log 时使用。
disable-model-invocation
true
# 发版 CHANGELOG 更新 ## 适用范围 - 目标为**库根目录**(或子模块根目录)下的 `CHANGELOG.md`;若源码分布在多个子目录但共用同一份 CHANGELOG,则以**该 CHANGELOG 所在目录为库根**,git 范围覆盖所有属于该库的源码路径。 - **不得臆造版式**:先 Read 目标文件顶部若干版本块,**严格沿用**该文件既有「Change Log」标题、下划线、`Version` 行、分隔线长度、条目前缀与历史语气。 ## 文件版式(与现有一致) ```markdown Change Log ========== Version <版本字符串> *(yyyy-MM-dd)* ---------------------------- * `[标签]` 中文说明(可含英文类名、方法名,与同文件历史条目一致) ``` - **标签**:只使用**该文件或同仓库其它 CHANGELOG 中已出现过的**标签,例如 `` `[Add]` ``、`` `[Delete]` ``、`` `[Update]` ``、`` `[Refactor]` ``、`` `[Move]` ``、`` `[Feature]` ``、`` `[Build]` ``、`` `[Chore]` ``、`` `[Upgrade]` ``、`` `[Fix]` ``、`` `[Merge]` ``、`` `[Remove]` ``、`` `[Perf]` ``、`` `[Style]` ``、`` `[sync]` `` 等;**禁止**自造未在仓库中出现过的标签缩写。 - **一条一事**:同类改动合并为一条;**禁止**把每个 commit 机械抄成一条;语义重复的条目合并后只保留一条表述。 ## 新版本号 1. **默认以发版为准**:新版本字符串以**项目约定的发版版本源**为准(如 Gradle/Maven/npm 等模块版本字段,与对外发布号一致)。用户或发版流程**另有指定**时以指定为准。 2. **CHANGELOG 与发版配置不同步**(例如 CHANGELOG 仍为 `2.5.1-2` 而版本配置已为 `2.5.2`):写入 CHANGELOG 的 `Version` 必须与**本次对外发布版本**一致;若仅文档滞后,应**对齐当前发版配置中的值**并在同次提交中避免长期分叉。 3. **带连字符后缀的版本**(如 `2.5.1-2`):下一版以维护者与发版版本源为准,**不臆造** semver;常见情况是下一正式补丁版为 `2.5.2`、`2.5.3` 等,以发版配置为准。 4. **日期**:`*(yyyy-MM-dd)*` 使用**写入当天**(对话中 authoritative date)或用户指定的**发版日**。 ## 变更时间窗与 git 范围 1. **时间基准**:读取 CHANGELOG **最上方已发布版本**的 `Version … *(yyyy-MM-dd)*`,取其中日期作为「上一版发布日」。 2. **收集区间**:从该日期的 **00:00** 起至**当前**(以归纳时的仓库 `HEAD` 与对话日期为准),落在该**库根目录**下的改动;以 **git 事实** 为准,禁止写入未触及该路径的条目。 3. **当日边界**:若上一版当日仍有后续提交、或与「更新 CHANGELOG 的 commit」重复,可改用 `--after="yyyy-MM-dd"` 或定位「写入上一版 CHANGELOG 的 commit」之后继续 `git log`,减少重复;默认 `--since="yyyy-MM-dd"` 与用户约定一致即可。 ## 必须使用「完整」commit message(勿只看第一行) **禁止**仅用 `git log` 的 subject(`%s`)作为唯一依据;正文(body)、多段落说明、列表同样参与归纳。 推荐在库根路径下执行(将日期、路径替换为实际值;`PATH` 为库目录,如 `<库根>/`): ```bash # 完整提交说明:%B = subject + body(含空行与多段) git log --since="yyyy-MM-dd" --pretty=format:"%h%n%B%n----COMMIT----" -- PATH # 需要作者日期辅助核对时(仍含完整 %B) git log --since="yyyy-MM-dd" --pretty=format:"%h %ad%n%B%n----COMMIT----" --date=short -- PATH ``` - **Merge commit**:若 `--no-merges` 后信息量足够,可忽略 merge 噪声;若重要合并说明仅在 merge message 中,则保留并去重其与子提交的重复表述。 - **多路径库**:`--` 后写多个路径,或分路径 `git log` 后**合并同一主题的 commit**,条目仍按「一条一事」归纳。 ## 归纳、去重与文案 1. **通读**:按时间或逆序阅读每个 commit 的**完整 `%B`**(含 body、续行、列表)。 2. **去重**:同一问题多次提交、revert 再修、相同类名/方法名反复出现 → 合并为**一条**用户向说明;**忽略**完全重复的句子或同一改动的 cherry-pick 副本。 3. **映射标签**:按真实语义选 `[Fix]`/`[Add]`/`[Refactor]` 等,与同文件历史用法一致;不确定时优先与同库近期条目风格一致。 4. **专业准确**:技术事实与类/方法/模块名与仓库一致;说明用**简短中文**,必要时保留英文标识符。 5. **插入位置**:新版本块插在 `==========` **之后**、**上一版 `Version` 块之前**(全文从新到旧)。 ## 变更很少或几乎无实质改动时 - **不得编造**未发生的 API/功能说明。 - **参照该库 CHANGELOG 历史**:许多子库在仅依赖升级或同步发版时会写 `` `[Chore]` 依赖 xxx 库同步升级 ``(或对应依赖库名),句式与同文件历史**保持一致**。 - 若区间内**确无**落在该路径的提交:向用户说明「无新 commit 可记」;若发版流程仍需新版本号与日期,可仅更新 `Version` 行与一条与历史一致的 `[Chore]`(须与发版配置/实际依赖变更一致,**不得**虚构依赖升级)。 ## 版本号来源(与库根对应) 1. 优先使用用户指定的版本字符串或**发版版本配置文件**中的对应模块字段(Gradle `versionName`/`version`、Maven `version`、npm `version` 等)。 2. 若用户未指明路径,在工作区内检索与目标模块/库名相关的版本声明(模块构建脚本、根版本清单、CI 发版变量等),**不得臆造**版本键名或版本号。 3. 写入 CHANGELOG 的 `Version` 必须与**本次对外发布版本**一致;多子模块各自 CHANGELOG 时,每条记录对**其库根**的版本源,勿混用其它模块版本。 ## 执行清单 - [ ] Read 目标 `CHANGELOG.md` 顶部 **2~3 个版本块**,确认标题、标签、句式。 - [ ] 解析上一版 `Version … *(yyyy-MM-dd)*` 与即将写入的新版本(对照发版版本源或用户指定)。 - [ ] 对该库路径执行 `git log`,**格式含完整 `%B`**,必要时配合 `git diff`/`git show` 核对事实。 - [ ] 合并去重后撰写条目;少变更时对齐历史 `[Chore]` 等写法。 - [ ] 在文件顶部插入新版本块,不破坏下方历史结构。
Auf GitHub ansehen