diff --git a/AGENTS.md b/AGENTS.md index 4fd5c72..5cc9f76 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -232,6 +232,47 @@ git push origin main 仓库早期 commit 有少量非 Conventional 风格(如 `Add lsd config and color theme`), **新增 commit 一律遵循本规范**,历史风格不强制改写。 +### AI 生成 commit message 的硬约束 + +当 AI 助手(或 IDE agent)被要求生成 commit message 时,**只输出 commit text 本身**,严禁夹带任何元评论、解释或代码块包裹。 + +**输出黑名单(出现即视为违规):** + +- 前置说明:`我看了你的改动…`、`建议使用下面的 commit message:`、`以下为 commit:` +- 元评论词汇:`分析`、`考虑`、`由于`、`因为`、`建议`、`注意`、`这里`、`本次`、`因为需要` +- 复述 diff:把 `git diff` 的关键行直接放进 commit +- 解释"为什么改":commit 只描述"改了什么",不写动机 +- 多版本候选/对比:不要 `Option 1 / Option 2` 或 `---begin--- / ---end---` +- markdown 代码块包裹:直接给纯文本,除非用户明确要求 + +**输出前自检清单:** + +- [ ] 只包含 commit text,无任何前后缀 +- [ ] subject ≤ 50 字符、无句末标点、动词开头、首字母小写 +- [ ] type 在 `{feat, fix, docs, refactor, perf, build, chore, style, test}` 内 +- [ ] scope 准确(服务名小写或顶层目录名) +- [ ] body 每行 ≤ 72 字符、不重复 subject +- [ ] 中英文不混用、保持与项目历史一致 +- [ ] 未泄露 `password|secret|token|key` 等敏感词 + +**正确示例:** + +``` +feat(gitea): bump image to 1.25.2 +``` + +**错误示例(AI 常见错误):** + +``` +我看了你的改动,主要是更新了镜像版本,建议使用: + +feat(gitea): bump image to 1.25.2 + +这次改动把版本从 1.24 升到 1.25.2,主要修复了… +``` + +> **注意**:thinking 块属于模型内部推理,**无法在 commit 场景关闭**,但它对最终 commit 输出无污染。用户的关注点应放在"最终输出是否干净"。 + ## AGENTS.md 维护规则 AGENTS.md 是给 AI 助手(Claude Code、Codex、Hermes 等)和协作者阅读的项目宪法。