用途:把当前 git 状态转成一条或多条格式规范的 Conventional Commit 信息,每条提交落地前都需用户确认,避免凭猜测描述变更。
主要能力:脚本 scripts/analyze-diff.py 是唯一事实来源,必须首先运行,不得手动读 diff 或自行调用 git diff、git status、git ls-files。脚本状态为 staged 时只处理已暂存文件,忽略未暂存/未跟踪文件;脚本以非零退出表示无可提交内容,此时应停止并告知用户。未暂存状态下可提议 1–4 个逻辑提交分组,支持 yes、edit、merge、cancel 反馈,超过 4 组则不分組,按顶层文件夹列出并请用户缩小范围。提交类型从脚本建议中选取 feat、fix、refactor、test、docs、chore,主题用祈使句、不超过 72 字符、不加句号,正文仅在必要时写 2–5 条事实性要点,分支名匹配 [A-Z]{2,}-\d+ 时加 Refs 页脚。
使用方式:先运行 python3 <skill-dir>/scripts/analyze-diff.py,再按状态进入分组或消息生成,确认后用 git commit -F - 提交,每次输出 [N/M] committed <hash> <subject>。取消时当前组用 git reset HEAD -- <paths> 取消暂存,不改磁盘内容,已确认的提交保留,并输出已提交组数摘要。
限制:不得在未获明确确认时提交,禁止 --no-verify、amend、git push,禁止添加共同作者页脚(用户明确要求除外),禁止 git add -A / git add .,只暂存当前组指定路径。超出预定义类型、破坏性变更、回滚、合并及不熟悉的页脚需查阅 references/conventional-commits.md,不得即兴处理。同一组超过 3 个 scope 或混用变更类型时,应列出并建议重新分组,不得强行使用 chore(misc): 或丢弃 scope。
适用场景:任意 git 仓库中需要规范化提交信息、按逻辑拆分多个提交的场景。
上述为公开资料整理,脚本具体输出字段与本地安装方式暂未提供。