用途:从已暂存的改动(staged changes)生成符合 Conventional Commits 规范的提交信息,适合在准备提交、需要规范化 commit message 时使用。不适用于完整 PR 准备(应使用 pr-prep),修改既有提交应直接用 git。
主要能力:可并行收集上下文,包括 git status -sb、git diff --cached --stat、git diff --cached、git log --oneline -5;在可用时通过 sem diff --staged --json 获取实体级改动,并在主题与正文中使用函数、类、方法等实体名,而非解析原始 diff 片段。它会分类提交类型(feat、fix、docs、refactor、test、chore、style、perf、ci)与可选 scope,并按格式起草信息:主题为 <type>(<scope>): <imperative summary>,最多 50 字符;正文说明 what 与 why,按 72 字符换行;页脚可含 BREAKING CHANGE、问题引用等。
使用方式:先检查是否有暂存内容;若无暂存则立即停止并提示 nothing staged,不生成信息。随后依据上下文起草,写入 ./commit_msg.txt 并预览。它也提供措辞检查:拒绝使用 leverage、utilize、seamless、comprehensive、robust 等空泛词,检查字符级问题如 em-dash、作为连词的 +、智能引号、作为连接符的箭头等,并限制正文中 as 连接后果句最多一处。若改动解决 Discussions 面板中的发现,可在页脚按单独行添加 Addresses-Discussion: #编号;仅在确实解决时添加,正文提及不等于解决。
限制:该技能只起草信息,不执行提交;提交者需在提交后通过 git rev-parse HEAD 前后比对确认 HEAD 推进,因为自动修复钩子可能中止提交却输出类似成功的尾部信息。规则要求不得使用 git commit --no-verify 或 -n;若 pre-commit 钩子失败,应修复问题。主题需按读者可见效果描述改动,不得写成清理 AI 输出这类仅对生成者有意义的内容。官方未提供收费、平台等信息。