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