| name | code-review-loop |
| description | 每 5 分钟自动审查一次当前未提交的代码变更(git diff),在当前会话期间循环执行。
会话结束或 Claude 进程被终止时循环自动失效(session-only,不写入磁盘、不跨会话残留)。
当用户说“定时审查代码 / 每5分钟审查一次 / 开始审查循环 / 停止审查循环”时激活。
|
| version | 1.0.0 |
| author | Hermes |
| allowed-tools | ["Bash","CronCreate","CronList","CronDelete"] |
| metadata | {"hermes":{"tags":["code-review","loop","cron","watch","automation","session-only"]}} |
🔁 Code Review Loop — 定时代码审查循环
每 5 分钟审查一次当前的代码变更(git diff),在当前会话期间持续循环。
不持久化:会话结束或进程被杀,循环自动失效,不会跨会话残留。
触发时机
- 用户说“定时审查代码 / 每 5 分钟审查一次 / 开始审查循环” → 启动
- 用户说“停止审查 / 停止循环 / 结束审查” → 停止
执行流程
1. 启动循环
调用 CronCreate 创建一个 session-only 定时任务:
| 参数 | 值 | 说明 |
|---|
cron | */5 * * * * | 每 5 分钟触发一次 |
prompt | 见下方「每轮审查 prompt」 | 每次触发时注入对话的指令 |
recurring | true | 周期性任务 |
durable | false | 关键:不写入 scheduled_tasks.json,进程结束即失效 |
创建后,向用户回报:
- ✅ 循环已启动 + 返回的 job ID
- 停止方式:关闭会话/杀进程即自动停止,或说“停止审查循环”主动停止
2. 每轮审查 prompt
将以下文本原样作为 CronCreate 的 prompt 参数(cron 每次触发时注入对话):
[定时代码审查] 审查当前未提交的代码变更:
1. 先运行 `git status --short` 和 `git diff --stat` 判断是否有变更
2. 无变更 → 只回复“✅ 暂无新变更”,立即结束本轮(不空跑、不编造问题)
3. 有变更 → 运行 `git diff` 取出变更,审查 bug / 安全 / 逻辑错误,按 严重 / 中等 / 轻微 分级,每条格式:`文件:行 — 问题 — 建议`
4. 只审查、不修改代码
3. 停止循环
两种方式(都满足“用户终止即失效”):
- 被动:关闭会话 / 杀掉 Claude Code 进程 → session-only 任务随之消失(因为
durable: false)
- 主动:调用
CronList 找到本循环的 job ID → CronDelete 删除
核心规则
- 只读:审查循环绝不修改代码,只报告问题
- 不空跑:无 diff 时必须立即结束本轮,避免浪费 token
durable 必须为 false:否则会落盘并跨会话残留,违反“终止即失效”要求
- 7 天上限:Claude Code 的周期任务最多跑 7 天会自动过期(硬限制),需要长期运行时重新启动
注意事项
- 审查范围默认是未提交的变更(
git status + git diff,含已暂存和未暂存,不含已 commit 的)
- 触发受 REPL 空闲约束:你正在对话时不会打断,当前一轮结束后才 fire
- 调整间隔改
cron 字段即可(如 */10 * * * * 为 10 分钟,0 * * * * 为每小时)