提交
提交信息
- 标题、正文和尾注必须全部使用英文;与用户沟通仍使用简体中文。
- 标题使用
type(scope): summary;无需限定模块或涉及多个模块时,可以省略范围,使用type: summary。 - 类型使用小写英文,按实际改动选择,如
feat、fix、refactor、perf、docs、style、test、build、ci、chore、revert;范围使用实际模块或子系统的小写名称,如player、media、videopicker。 - 摘要使用英文祈使句,说明最终变化,末尾不加句号;不要用“更新代码”这类空泛描述。
- 简单改动可以只写标题。需要正文时,与标题空一行,说明具体问题、最终行为和必要的验证结果,不罗列操作过程。
- 验证描述必须与实际执行结果一致;未执行检查或测试没有可执行用例时,不得写成检查或测试通过。
问题关联与版本提交
- 关联问题前先阅读问题原文,确认提交内容与其对应。
- 只解决部分要求或尚不能确认完整解决时,使用
Refs #编号关联,不使用关闭问题的关键词。 - 只有核实改动完整满足问题要求时,才允许使用
close #编号;不能仅凭标题、印象或构建成功判断问题已解决。 - 更新版本号时,还必须遵守 version-bump 技能。版本提交标题使用其中的专用模板,其他提交要求仍遵守本技能。
提交流程
- 检查工作区、暂存区和相关提交,确认本次任务范围;每完成一个独立部分就提交,每条提交只包含该部分的改动。
- 按项目代码质量规范执行必要检查。纯文档、技能说明或提交信息改动不运行代码格式化、测试和构建,除非用户明确要求。
- 按明确的文件路径或补丁暂存改动,检查暂存差异并执行
git diff --cached --check;不要夹带或撤销用户已有的无关改动。 - 提交前核对标题、正文和尾注均为英文,改动内容与说明一致,问题关联准确。
- 提交后检查最新提交和工作区状态,确认本次改动已纳入提交,再向用户说明结果。
整理历史与推送
- 修改已有提交前,确认用户授权的范围及提交是否已推送,并保存可恢复的原提交引用;不要擅自改写已推送的历史。
- 只修改提交信息时,必须确认改写前后各条提交的文件树一致。
- 提交不代表授权推送。推送前说明待推送内容并取得用户明确确认;已有覆盖本次推送的明确确认时,不重复询问。
两端同步
本技能同时保存在 .codex/skills/commit/SKILL.md 和 .claude/skills/commit/SKILL.md,修改时同步两份内容。