广度优先
同一层级的所有问题修完再深入:
- 第一轮:修复所有类型错误
- 第二轮:修复所有 lint 警告
- 第三轮:提高测试覆盖率
- 第四轮:优化性能
提示、观察、再提示,直到满意。这是 AI 辅助开发中最核心的循环。不要期望一步到位 — 迭代优化才是常态。
带着清晰的意图和约束开始:
创建一个用户资料卡的 React 组件。- 展示头像、姓名、简介- 包含编辑按钮- 使用 Tailwind CSS- 移动端响应式Claude 生成代码后,评估:
提供有针对性的修正:
不错的开始。需要以下修改:1. 头像应该是圆形,不是方形2. 编辑按钮只在查看自己资料时显示(添加 isOwner 属性)3. 简介超过 3 行后截断,显示"展开更多"继续迭代直到满意:
好多了。还有一点:- 添加数据加载时的骨架屏状态| 模式 | 示例 |
|---|---|
| 指明位置 | ”第 23 行:把 === 改成 ==” |
| 明确动作 | ”在表单外层添加错误边界” |
| 给出原因 | ”删除 console.log,因为它会泄露用户数据” |
| 标注优先级 | ”关键:修复 SQL 注入。可选:添加分页。“ |
| 反模式 | 为什么无效 | 更好的替代 |
|---|---|---|
| ”做得更好” | 没有方向 | ”通过提取验证逻辑来提高可读性" |
| "这不对” | 没有具体说明 | ”日期格式应该是 ISO 8601,不是 Unix 时间戳" |
| "我不喜欢” | 太主观 | ”使用函数组件替代类组件" |
| "修复 bug” | 太模糊 | ”修复:1) 第 12 行的空值检查,2) 循环的越界错误” |
Claude 可以在明确完成标准的情况下自我迭代。
持续改善代码质量,直到:1. 所有测试通过2. 没有 TypeScript 错误3. ESLint 零警告
每次迭代后运行检查并修复问题。满足所有标准后停止。迭代直到满足:- 95 分位响应时间 < 100ms- 测试覆盖率 > 80%- 所有无障碍检查通过- 打包大小 < 200KB使用 PostToolUse hook 在每次编辑后自动运行验证。例如,配置 Edit 工具的 hook 自动运行 lint 和测试。Claude 看到失败后可以自我修正。
当迭代过程中上下文膨胀时:
/compact
继续优化搜索算法。我们已经取得了不错的进展,聚焦在剩余问题上。在取得重要进展后:
进展不错。我们做个阶段性提交:- 提交当前内容- 列出剩余问题- 继续下一个优先事项脚本和自动化生成是迭代优化投资回报率最高的场景 — 实践中报告可节省 70-90% 的时间。脚本自包含、可独立测试,且能立即产生价值。
大多数生产就绪的脚本在 3-7 次迭代后出炉:
| 迭代 | 重点 | 提示模式 |
|---|---|---|
| 1 | 基本功能 | ”创建一个 [目标] 的脚本” |
| 2-3 | 约束 + 边缘情况 | ”添加 [约束]。处理 [边缘情况]。“ |
| 4-5 | 加固 | ”添加错误处理、日志、输入验证” |
| 6-7 | 打磨 | ”针对 [指标] 优化。添加使用文档。“ |
# 迭代 1 — 基本功能创建一个列出 Kubernetes 命名空间中 Pod 的 PowerShell 函数。
# 迭代 2 — 添加过滤添加:按标签选择器和 Pod 状态过滤。显示:Pod 名称、状态、运行时间、重启次数。# 迭代 3 — 添加操作添加:删除匹配过滤条件的 Pod 的能力。要求:删除前确认。
# 迭代 4 — 错误处理处理:kubectl 未找到、无效命名空间、权限拒绝。添加:-Verbose 标志的详细日志。# 迭代 5 — 生产就绪添加:dry-run 模式、JSON 输出用于管道、帮助文档。确保:在 Windows、Linux、macOS 上均可运行。当前脚本:[粘贴或引用]
迭代目标:[具体改进]
约束条件:- 必须保留:[要保持的现有行为]- 不能:[要避免的事项]- 目标环境:[操作系统、shell、运行时]
成功标准:[如何验证此次迭代有效]广度优先
同一层级的所有问题修完再深入:
深度优先
完全做完一个区域再转到下一个:
优先级驱动
按重要性排序处理:
一种专门的迭代模式:Claude 审查代码 -> 修复 -> 再审查,直到收敛。
┌─────────────────────────────────────────┐│ 审查自动修正循环 ││ ││ 审查(找出问题) ││ ↓ ││ 修复(应用修正) ││ ↓ ││ 再审查(验证修复) ││ ↓ ││ 收敛(改动极少)→ 完成 ││ ↑ ││ └──── 重复(设置最大次数) │└─────────────────────────────────────────┘对这个 PR 进行带自动修正的审查:1. 多 Agent 审查(3 个聚焦不同范围的 Agent)2. 修复所有 🔴 必须修复的问题3. 再审查,确认修复没有引入新问题4. 修复所有 🟡 应该修复的问题5. 最终审查一次6. 当只剩 🟢 可选改进时停止
最大迭代次数:3如果某次迭代改动少于 5 行,提前停止| 护栏 | 目的 | 实现方式 |
|---|---|---|
| 最大迭代次数 | 防止无限循环 | 硬限制:3 次 |
| 质量门禁 | 确保修复有效 | 每次迭代前运行 tsc && lint |
| 受保护文件 | 防止风险变更 | 跳过:package.json、migrations、.env |
| 变更阈值 | 判断是否收敛 | 变更少于 5 行则退出 |
| 回滚能力 | 恢复错误修复 | 每次迭代前 git commit |
# 错误"其实还是换个方案吧..."(重复 5 次)
# 正确确定一个方案后在其中迭代。如果方案本身有误,明确重新开始。# 错误无限改进,永不停止
# 正确设定"足够好"的标准:- 测试通过- 覆盖主要用例- 没有关键问题→ 发布它,后续再改进# 错误迭代 50 次后忘了目标是什么
# 正确定期重述目标:"提醒:我们在构建速率限制器。当前状态:基本实现可用。下一步:添加 Redis 后端。"