SoloLoop 迭代循环插件 - 让 Claude 在同一任务上持续迭代直到完成
npx claudepluginhub maxlee/sololoop顽强循环引擎 v9 - 新增目标记忆机制(Goal Memory)、周期性重锚、漂移检测、决策记录功能
Claude Code 迭代循环插件,让 Claude 在同一任务上持续迭代直到完成。
SoloLoop 通过 Stop Hook 机制拦截 Claude 的退出尝试,将相同的 prompt 反复输入,实现自引用的迭代改进。
v8 增强版本:新增插件包装器模式、会话恢复检测、重复失败检测、使用统计追踪。
v9 目标记忆版本:新增目标记忆机制(PlanMem),提供目标锚定、周期性重锚、漂移检测功能,解决长时间自主执行中的目标遗忘和漂移问题。
用户运行 /sololoop:sololoop "任务描述" --max 10
↓
Claude 处理任务
↓
Claude 尝试退出
↓
Stop Hook 拦截,检查 Promise 标记
↓
重复直到 Promise 匹配或达到最大迭代次数
| 特性 | v8 | v9 |
|---|---|---|
| 目标记忆 | 无 | .sololoop/ 目录存储目标锚点 |
| 自动初始化 | 无 | 首次使用自动创建目标文件 |
| 周期性重锚 | 无 | 每 N 次迭代强制重读目标 |
| 漂移检测 | 无 | 检测输出是否偏离核心约束 |
| 决策记录 | 无 | /sololoop:log 记录重要决策 |
| 状态显示 | 无 | /sololoop:status 查看目标状态 |
| 特性 | v7 | v8 |
|---|---|---|
| 插件包装器 | 无 | /sololoop:wrap 包装任意插件命令 |
| 会话恢复 | 无 | SessionStart Hook 检测未完成循环 |
| 重复失败检测 | 无 | 连续 3 次相同错误时建议换策略 |
| 使用统计 | 无 | /sololoop:stats 查看统计数据 |
| 优雅退出 | 基础 | 增强的退出状态和原因说明 |
| 问题 | v6 | v7 |
|---|---|---|
| hooks.json 格式 | 扁平数组(错误) | 嵌套对象(官方规范) |
| OpenSpec 默认 Promise | DONE | 无默认值 |
| Stop Hook 触发 | 从未触发 | 正常工作 |
| 特性 | v5 | v6 |
|---|---|---|
| 退出条件 | 复选框 100% 或 Promise | 仅 Promise 驱动 |
| 变更列表 | 手动输入名称 | + 触发符快速列出 |
| 默认 Promise | 无 | DONE |
| 自我审查 | 无 | Prompt 包含审查指引 |
# 1. 添加 SoloLoop 作为 marketplace
/plugin marketplace add maxlee/sololoop
# 2. 安装插件
/plugin install sololoop@sololoop-marketplace
安装后直接使用:
# 纯循环模式
/sololoop:sololoop "你的任务描述" --max 10
# OpenSpec 集成模式
/sololoop:openspec feature-name --max 10
# 1. 克隆仓库到本地
git clone https://github.com/maxlee/sololoop.git ~/sololoop
# 2. 在 Claude Code 中安装插件
/plugin install ~/sololoop
跳过所有权限确认,让迭代循环更加流畅:
claude --dangerously-skip-permissions --plugin-dir /path/to/sololoop
⚠️ 注意:此模式会跳过所有安全确认,仅建议在受信任的项目中使用。
claude --plugin-dir /path/to/sololoop
查看插件加载详情:
claude --debug --plugin-dir /path/to/sololoop
# 基本用法(默认最多 10 次迭代)
/sololoop:sololoop "实现一个计算器函数"
# 指定最大迭代次数
/sololoop:sololoop "编写单元测试" --max 15
# 使用完成标记
/sololoop:sololoop "重构代码" --promise "DONE" --max 20
# 查看帮助
/sololoop:sololoop --help
# 取消循环
/sololoop:cancel-sololoop
使用 /sololoop:openspec 命令与 OpenSpec 无缝集成:
# 🆕 v6: 列出所有可用变更
/sololoop:openspec +
# 基本用法
/sololoop:openspec feature-name
# 指定最大迭代次数
/sololoop:openspec feature-name --max 20
# 使用完成标记(v6 默认为 DONE)
/sololoop:openspec feature-name --promise "DONE" --max 15
前置条件:
openspec/ 目录)openspec/changes/<feature-name>/tasks.md 文件🆕 v6 + 触发符:
快速查看所有可用的 OpenSpec 变更:
/sololoop:openspec +
输出示例:
📂 可用的 OpenSpec 变更:
✅ user-auth
✅ payment-integration
⚠️ new-feature (缺少 tasks.md)
请使用完整命令:
/sololoop:openspec <feature-name>
🆕 v6 Promise 驱动退出:
v6 移除了「复选框 100% = 自动退出」的逻辑,改为 Promise 驱动:
<promise>DONE</promise> 才能退出OpenSpec 模式工作流:
<promise>DONE</promise> 退出循环自动构建的 Prompt:
按照 openspec/changes/<feature-name>/tasks.md 实现所有任务。
参考规格:openspec/changes/<feature-name>/specs/
项目约定:openspec/project.md(如存在)
## 任务执行规则
1. 完成每个任务后在 tasks.md 中勾选对应复选框
2. 复选框完成不会自动退出循环
3. 完成所有任务后,进行自我审查:
- 检查是否有遗漏的任务
- 检查是否有需要改进的地方
- 确认代码质量符合预期
4. 确认一切完成后,输出 <promise>DONE</promise> 退出循环
SoloLoop 提供 Manus 工作流最佳实践的 Steering 模板,包含:
# 初始化 Steering 模板到项目
/sololoop:init-steering
# 使用时通过 # 手动触发
#manus-rules 执行复杂的重构任务...
💡 这些规则通过 Claude Code 原生 Steering 机制实现,与 SoloLoop 循环引擎完全解耦。
使用 /sololoop:wrap 命令将循环能力应用到任意插件命令:
# 基本用法:包装其他插件命令
/sololoop:wrap "@code-review:review src/"
# 指定最大迭代次数
/sololoop:wrap "@linter:fix ." --max 5
# 使用完成标记
/sololoop:wrap "@test:run" --promise "ALL_TESTS_PASSED" --max 15
工作原理:
wrap_mode: true参数说明:
| 参数 | 必需 | 默认值 | 说明 |
|---|---|---|---|
<plugin-command> | 是 | - | 要包装的插件命令,需用引号包裹 |
--max <N> | 否 | 10 | 最大迭代次数 |
--promise <TEXT> | 否 | - | 完成标记文本 |
查看 SoloLoop 使用统计:
/sololoop:stats
输出示例:
📊 SoloLoop 使用统计
总会话数: 42
总迭代数: 156
平均迭代: 3.7
Development marketplace for Superpowers core skills library
Harness-native ECC skills, hooks, rules, MCP conventions, and operator workflows
Open Design — local-first design app exposed to coding agents over MCP. Install once with your agent's plugin command and projects/files/skills are reachable through stdio.