Install in Claude Code
Copymkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/xiaobei930/cc-best/HEAD/commands/iterate.md -o ~/.claude/commands/iterate.mdThen start a new Claude Code session; the slash command loads automatically.
Definition
iterate.md
# /iterate - 自主迭代循环
> **核心规则**: 任务完成后 **立即** 开始下一个任务,**禁止** 输出总结后等待用户。
单 session 内的自主开发循环。适合日常开发,在上下文窗口允许的范围内连续完成多个任务。
> 💡 需要长时间运行(小时级)?请直接使用 `/cc-best:cc-ralph` 命令,参考 `.claude/ralph-prompts/` 下的模板。
---
## 核心流程
```
┌─────────────────────────────────────────────────────────────────┐
│ 自主迭代循环 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 读取 progress.md → 选取任务 → 执行 → 验证 → 提交 → 更新文档 │
│ ↑ │ │
│ └──────────────────────────────────────────────┘ │
│ 自动继续下一任务 │
│ │
└─────────────────────────────────────────────────────────────────┘
```
**立即开始执行:**
1. 读取 `memory-bank/progress.md`
2. 确定当前任务
3. 按下方流程执行
---
## 执行流程
### Step 0: 检查运行模式
读取 `memory-bank/config.json`(如不存在,默认 `full` 模式):
| 模式 | 管线 | 适用场景 |
| ------ | ------------------------------- | ---------------- |
| `full` | PM → Lead → Designer → Dev → QA | 完整项目开发 |
| `lite` | Dev → Verify → Commit | 快速编码、小改动 |
**Lite 模式**: 跳过 Step 1 的角色判断,直接进入 Dev:
- 无需求文档 → 直接 `/cc-best:dev`
- 完成后 → `/cc-best:verify` → `/cc-best:commit` → 下一任务
- 不执行 PM、Lead、Designer、QA 角色
- 适合已有明确需求的快速编码场景
> 切换模式: `/cc-best:setup --interactive` 或直接编辑 `memory-bank/config.json`
**Full 模式**: 按 Step 1 的角色判断表执行完整管线。
---
### Step 1: 确定角色
| 当前状态 | 选择角色 | 动作 |
| ----------------------------------- | ----------------------- | ---------------------------------------------- |
| 无需求文档 | `/cc-best:pm` | 需求分析 |
| REQ 有待澄清项(≥1 个低置信度决策) | `/cc-best:clarify` | 需求澄清 |
| 有需求无设计 | `/cc-best:lead` | 技术设计 |
| 有设计,前端任务未设计 | `/cc-best:designer` | UI 设计指导 |
| 有任务待开发 | `/cc-best:dev` | 编码实现 |
| 有代码待验证 | `/cc-best:verify` | 综合验证(构建+类型+Lint+测试+安全) |
| 验证通过,待功能验收 | `/cc-best:qa` | 功能验收 |
| QA 通过,full 模式,3+ 文件修改 | code-simplifier Agent | 独立上下文审查 AI slop(自动跳过 lite/hotfix) |
| QA 发现实现 Bug(fix_count < 3) | `/cc-best:dev --bugfix` | 修复后重新 `/cc-best:verify` → `/cc-best:qa` |
| QA 修复循环达上限(fix_count >= 3) | `/cc-best:lead` | 🛑 熔断,重新评审技术方案 |
| QA 发现高影响需求假设错误 | `/cc-best:pm` | 重新评审需求假设 |
### Step 2: 执行任务
```
角色命令执行
├─ /cc-best:dev: 编码实现 + 单元测试
├─ /cc-best:verify: 构建 + 类型 + Lint + 测试 + 安全扫描
├─ /cc-best:qa: 功能验收 + E2E 测试
├─ 前端:浏览器验证(Playwright 截图)
└─ Simplify(可选): QA 通过后,full 模式且 3+ 文件修改时
使用 Agent 工具调用 code-simplifier(subagent 天然隔离上下文)
检查 AI slop:冗余注释、过度 try-catch、不必要抽象、重复逻辑
lite 模式和 hotfix 自动跳过
```
### Step 3: 完成任务
```
/cc-best:commit → 更新 progress.md → 读取下一任务 → 立即执行
```
**不要停下来!继续下一个任务。**
---
## 禁止行为
```
❌ 禁止:
"任务已完成,需要我继续吗?"
"当前状态如下...(等待用户响应)"
"接下来您想做什么?"
✅ 正确:
任务完成 → 更新文档 → 读取下一任务 → 立即执行
```
---
## Stall 检测(v0.9.0)
自治循环中检测"卡住"模式,避免无效重试:
| 模式 | 检测条件 | 响应 |
| -------- | --------------------------------------- | ------------------------------------ |
| 重复失败 | 连续 2 次相同错误(同文件+同错误信息) | 降级范围:缩小修改范围或换用其他方法 |
| 进度停滞 | 3 轮循环后 progress.md 无新完成任务 | 输出卡住警告,考虑切换策略 |
| 工具失败 | PostToolUseFailure 检测到 3+ 次同类失败 | 停止重试,分析根因 |
**Stall 响应策略**:
```
检测到 stall →
1. 记录当前状态到 progress.md
2. 分析 stall 原因(查看 .tool-failures.json)
3. 缩小范围 → 重试 OR 切换方法 → 重试 OR 标记为阻塞 → 停止
```
---
## PDCA 学习闭环(v0.9.0)
每轮 iterate 隐式执行 PDCA 循环:
```
Plan: 从 progress.md 选取任务,确定实现策略
Do: 执行任务(角色命令)
Check: /cc-best:verify 验证 → /cc-best:qa 验收
Act: 成功 → 提交 + 更新 progress.md
失败 → 记录原因到决策表 → 调整策略 → 重试
```
---
## 停止条件
**只有以下情况才能停止**:
1. ✅ 所有任务完成
2. ✅ 用户主动中断(Ctrl+C / Escape)
3. ✅ 遇到无法自动解决的致命错误
4. ✅ 需要用户决策的外部依赖
5. ✅ 上下文需要压缩(自动保存后输出 `/clear` 指令,等待用户执行)
6. ✅ QA↔Dev 修复循环达到 3 次上限(熔断保护)
7. ✅ Stall 检测触发且无法自动恢复
---
## 置信度检查(可选)
每完成 3 个任务或阶段切换时,可执行 `/cc-best:confidence-check` 评估当前状态:
```
完成 TSK-001 → 完成 TSK-002 → 完成 TSK-003 → /cc-best:confidence-check → 继续
↑ 每 3 个任务可选执行一次
```
**注意**:这是可选步骤,不在每次编辑后执行。只在以下时机使用:
- 管线阶段切换(PM→Lead, Lead→Dev, Dev→QA)
- 每完成 3 个任务后
- 感觉不确定时
---
## 上下文自动压缩
> **原则**: 自动完成所有准备工作,将用户操作缩减到最少。
### 触发条件(满足任一)
| 信号 | 条件 | 说明 |
| --------- | ------------------- | --------------------------- |
| 任务计数 | 每完成 **3 个任务** | 主动评估是否需要压缩 |
| Hook 提醒 | 工具调用 ≥ 40 次 | suggest-compact.js 输出警告 |
| 系统提示 | 上下文使用率 > 70% | Claude Code 内置提示 |
### 自动压缩流程
```
触发条件满足
↓
① 自动保存: 更新 progress.md(当前任务状态 + 下一步)
↓
② 自动提交: 如有未提交变更,执行 /cc-best:commit
↓
③ 生成摘要: 创建 _compact_summary.md
↓
④ 输出指令(唯一需要用户操作的步骤):
┌─────────────────────────────────────────┐
│ 🔄 上下文已自动保存,请执行: │
│ │
│ /clear │
│ │
│ 然后输入: │
│ │
│ /cc-best:catchup && /cc-best:iterate │
└─────────────────────────────────────────┘
```
### 与之前行为的区别
| 维度 | 旧行为(等待) | 新行为(自动) |
| -------- | --------------------------------- | ----------------------------------- |
| 状态保存 | 手动执行 compact-context | **自动**保存 progress.md + 提交 |
| 摘要生成 | 手动执行 compact-context | **自动**生成 \_compact_