循环的工作方式
- 你提供任务(内联文本、已有笔记的 UUID,或恢复)
- 创建一张带复选框的绿色置顶笔记
- Claude 开始执行第一个任务
- Stop hook 拦截 Claude 的退出,并加载下一个任务
- 每个完成的任务在 SlashNote 里自动打勾
- 重复,直到所有任务完成,或你暂停/停止
Stop hook 是关键机制 — 它在还有任务时阻止 Claude 退出。
模式
新任务(内联)
/note-loop 写测试、实现功能、更新文档
创建一张带复选框的绿色置顶笔记,并立即开始执行。
从已有笔记(UUID)
/note-loop A550DE30-9B73-4CE5-A138-38F848471329
读取已有笔记里未勾选的复选框,并开始执行。
预约稍后(新终端)
/note-loop <uuid> --new-session 2h
/note-loop <uuid> --new-session --sonnet
按指定延迟打开一个新的终端会话。可选模型(Opus、Sonnet、Haiku)和权限模式(plan、acceptEdits、bypassPermissions)。
恢复
/note-loop
找到已有的 note-loop 笔记,从未勾选的条目继续。
循环控制
| 命令 | 效果 |
|---|---|
/note-loop pause | 立即暂停 — 之后用 /note-loop 继续 |
/note-loop pause after | 优雅暂停 — 完成当前任务后停止 |
/note-loop skip <原因> | 带原因跳过当前任务,进入下一个 |
/note-loop stop <原因> | 完全停止 loop,显示最终摘要 |
/note-loop list | 列出所有进行中/已预约的 loop |
/note-loop cancel <uuid> | 取消一个已预约的 loop |
每个暂停/停止动作都会显示进度摘要:已完成、已跳过、剩余,以及完成百分比。
安全机制
| 安全项 | 说明 |
|---|---|
| 最大迭代次数 | max(30, tasks * 3) — 随任务数量变化 |
| 每任务尝试次数 | 3 次后标记为 blocked |
| 暂停/停止 | 随时 /note-loop pause 或 /note-loop stop |
| 状态文件 | JSON 状态可在会话重启后留存 |
| blocked 的任务 | 保持未勾选,留待手动跟进 |
进度跟踪
置顶笔记上的实时进度图会显示:
- 已完成的任务(绿色)
- 剩余的任务(灰色)
每当 Stop hook 处理完一个任务,图表会自动更新。
预约菜单
用 --new-session 但不带时间时,会出现一个菜单:
| 选项 | 说明 |
|---|---|
| 立即运行 | 打开新终端并立即开始 |
| 1 分钟后 | 短暂延迟,便于确认设置 |
| 30 分钟后 | 先完成手头的工作 |
| 2 小时后 | 预约稍后 |
你也可以输入自定义时间(1h 30m、at 18:00)。
智能目录识别
在新终端会话里预约 loop 时,这个技能会自动识别工作目录:
- 真实目录(如
/Users/you/project)直接使用 - 虚拟目录(如
/code、Docker 路径)会被识别并拒绝 - 如果无法确定目录,SlashNote 里会打开一个可编辑的配置面板,你可以手动设置目录
这样新终端会话总是在正确的项目根目录里运行。
已有配置
如果某张笔记已经有了预约配置(来自之前的 /note-loop 运行),技能会复用它:
- 目录、模型和权限模式都会保留
- 开始前你可以在配置面板里编辑任意字段
- 配置面板会显示当前设置供你检查
状态文件
Loop 状态保存在 .claude/slashnote-loop.local.md(JSON 格式)。这个文件记录:
- 活动状态、当前任务索引
- 已完成和 blocked 的任务列表
- 迭代计数和上限
- 暂停/停止的原因和时间戳