关于 smart-commit
smart-commit 是面向编码 Agent 的提交工作流技能,可运行质量检查、审查暂存的生产代码,并引导按规范提交。
主要功能
- 01运行 lint、类型检查和受影响的测试
- 02扫描暂存代码中的常见问题
- 03起草 Conventional Commit 消息
- 04指定文件暂存并提交
- 05报告检查结果和提交哈希
适用场景
- 01准备提交代码变更
- 02提交前检查暂存的生产代码
- 03按项目约束创建提交
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rohitg00/ pro-workflow --skill smart-commit安装后在 Claude Code 中输入/smart-commit确认已加载。
详细介绍
智能提交
触发条件
当用户说“commit”“save changes”,或完成更改后准备提交时使用。
工作流
- 检查当前状态,并确定要提交的内容。
- 运行质量检查(对受影响的文件执行 lint、类型检查和测试)。
- 检查已暂存的更改是否存在问题。
- 根据差异起草一条符合 Conventional Commits 规范的提交消息。
- 按名称暂存特定文件,并创建提交。
- 询问用户此次更改有哪些经验值得记录。
命令
git status
git diff --stat
npm run lint 2>&1 | tail -5
npm run typecheck 2>&1 | tail -5
npm test -- --changed --passWithNoTests 2>&1 | tail -10
git add <specific files>
git commit -m "<type>(<scope>): <summary>"
代码审查扫描
提交前,检查已暂存的生产代码(非测试文件)是否存在以下问题:
console.log/debugger语句(测试文件中的此类语句不予提示,详见“审查时忽略的内容”)- 没有关联工单的 TODO/FIXME/HACK 注释(例如,
TODO(JIRA-123)可以保留) - 硬编码的密钥或 API 密钥
- 遗留的仅用于测试的代码
继续之前,先指出发现的问题。
提交消息格式
<type>(<scope>): <short summary>
<body - what changed and why>
类型: feat、fix、refactor、test、docs、chore、perf、ci、style
限制
- 除非用户明确要求,否则绝不跳过质量检查。
- 按名称暂存特定文件。绝不使用
git add -A或git add .。 - 摘要不超过 72 个字符。正文说明原因,而非内容。
- 不要使用笼统的消息(例如“修复错误”“更新代码”)。
- 适用时引用问题编号。
输出
- 质量检查结果(通过/失败)
- 在已暂存更改中发现的问题
- 建议的提交消息
- 提交后的提交哈希
- 询问:是否有值得记录的经验?
审查时忽略的内容
提交前扫描时,不要提示以下内容。这些提示会带来噪声,却无法发现真正的错误:
- 阈值、配置值或功能标志的更改(限制、超时时间、重试次数)
- 不会改变运行时行为的导入顺序调整
- 仅涉及空白字符或格式的更改
- 在测试文件中添加或移除
console.log - TODO/FIXME 注释(由问题跟踪系统单独管理)
- 不会改变行为的变量或参数重命名
评论
支持 Markdown