.trae/skills/release-note-generator/SKILL.md
用于基于当前仓库的 git 历史自动生成发布说明,确保不遗漏提交,并为每条变更记录追加提交人的 GitHub ID(@id)。默认输出一个 Markdown 文件到 .trae/documents 目录:变更内容。
HEAD.trae/documents/release_notes-<version>.mdgit log 在终端中容易被截断,导致误判“提交缺失”| 等普通分隔符解析:提交标题可能包含分隔符,必须使用 NUL 分隔(\x00)保证可解析RunCommand 的内联脚本中直接硬编码中文常量(标题、分类名、文件名):在 Windows/PowerShell 链路中可能被替换为 ?ReleaseNotes-变更内容-<version>.md),否则编码异常时会变成非法字符 ? 导致写文件失败???、### ?? 等占位符,必须重新生成HEAD 可达历史,必要时用 --first-parent 辅助核对发布主线rev-list --count,再逐条采集,最后做数量一致性校验subprocess.run([...], check=True, capture_output=True, text=True, encoding="utf-8", errors="replace") 调 git-c i18n.logOutputEncoding=utf8 -c core.quotepath=false--pretty=format:%H%x00%h%x00%an%x00%ae%x00%ad%x00%s%x00,按 \x00 解析git diff --shortstat <base>..<head>git diff --name-status <base>..<head>git diff --numstat <base>..<head>git show --name-status --numstat --format= <sha>\\uXXXX 形式或由程序运行期拼接,避免命令传输阶段损坏字符获取提交序列(防遗漏)
HEAD 向后扫描提交,定位边界提交 boundary_commitv1.2.3、1.2.3)alpha(boundary_commit, HEAD],边界提交本身不计入变更列表完整性校验(必须)
N--first-parent 视角的校验结果,避免发布主线理解偏差采集每条提交的证据
--name-status、--numstat、--shortstat 与必要 diff 片段提炼发布内容
feat:、fix:(区分大小写不敏感),再写入分类正文与完整提交清单生成提交人 GitHub ID(逐条记录追加 @id)
author name:
https://api.github.com/repos/<owner>/<repo>/commits/<sha>Accept: application/vnd.github+json、User-Agent: <custom>author.login,为空时取 committer.login[email protected] -> @login[email protected] -> @login.atom:https://github.com/<owner>/<repo>/commits/<branch>.atom 按 SHA 匹配 <entry> 获取 <author><name>@id@id1 @id2必须产出 1 个文件:
.trae/documents/ReleaseNotes-<version>.md(文件名必须 ASCII)## <version> <版本主题>(示例:## 0.58 月之五适配)新功能地图遮罩独立任务JS相关其他(必须保留,即使只有 1 条)<变更描述> (#PR号可选) @githubId@id1 @id2@id)边界提交 / 区间 / 提交数 / shortstat补充要求:
? 非法路径feat:、fix: 前缀\\?{2,} 或 ### \\?+,视为失败并重生成@id,不允许只在末尾集中列出@id 时必须逐条调用 GitHub Commit API(/repos/<owner>/<repo>/commits/<sha>),不得以本地昵称直接替代.trae/documents 目录???、?? 分类名);发现即判定为不合格