Semantic Git 是一个面向 AI IDE(如 Cursor)的 Git 提交管理技能,核心是用约定式提交(conventional commit)格式、原子化提交和简洁信息来管理版本历史。它具备 zagi 感知能力,优先使用 zagi(面向代理的 git 接口),在 git 被别名到 zagi 或存在 zagi 二进制时假定其已安装;即使可用,也仍生成纯 git 命令交由 git→zagi 集成处理,不可用时回退到普通 git。
主要能力与原则:原子提交,将相关改动(实现代码与测试)一起暂存提交;提交前及进入下一个提交前必须与用户确认;默认使用约定式提交格式(feat、fix、docs、style、refactor、perf、test、build、ci、chore、revert),破坏性变更在类型/范围后加 !,或用 BREAKING CHANGE 页脚;主题行使用祈使语气、首字母小写、不加句号、尽量 72 字符内;除非改动复杂否则省略正文。命令透明:始终打印将执行的确切 git 命令,并询问用户是自行复制运行还是由代理运行,仅在明确批准后执行。
工作流:实现原子改动(代码+测试)→ 运行 CI 检查(优先单一命令如 pnpm ci、npm run ci、just ci,否则分别运行类型检查、测试、lint,任一失败即停止报告)→ 暂存相关文件 → 生成约定式提交信息 → 生成显式 shell 命令(如 git add path/to/file1 path/to/file2 及带 GIT_AUTHOR_DATE、GIT_COMMITTER_DATE 的 git commit -m "feat: add feature")→ 询问执行偏好 → 执行 → 确认后再进行下一个提交。支持自动化模式:用户说“continue to X”或“automate until X”时自动推进原子提交但仍打印命令,到达 X 后恢复确认。
停止并询问协议:在添加类型忽略(@ts-ignore、# type: ignore 等)、添加抑制(ESLint disable、pylint disable 等)、使用 any 或类似类型逃逸、实现不确定、需求不清,以及提出破坏性 git 操作(reset --hard、checkout .、clean -f、push --force)时,先停止询问并优先更安全替代方案。参考资料包括 references/conventional-commits.md、references/ci-verification.md、references/co-authors.md。具体安装方式与收费信息暂未提供。