name: 并行探索 description: “指导使用 git worktrees 并行探索多个实现方法。当面临有多个有效路径的决策时使用。触发条件:探索选项、比较方法、并行探索。”
并行探索技能
指导使用 git worktrees 并行探索多个实现方法的过程。
任务
- 识别何时并行探索有价值
- 定义要探索的独特方法
- 为每种方法创建隔离的 worktrees
- 并行执行探索
- 评估和比较结果
- 合并最佳解决方案
何时使用并行探索
好候选
- 架构决策 - 不同的模式(例如,微服务 vs 单体架构)
- 库选择 - 动手比较类似库
- 算法选择 - 同一问题的不同方法
- API 设计 - 不同的接口设计
- 性能优化 - 多种优化策略
不值得并行化
- 简单、明确的决策
- 有明显单一方法的任务
- 非常小的变更
- 变更不需要额外开销
探索过程
步骤 1: 识别决策点
当遇到重大决策时:
## 决策点已识别
**问题:** [需要决定什么]
**背景:** [为什么这很重要]
**要探索的方法:**
1. [方法 A] - [简要描述]
2. [方法 B] - [简要描述]
3. [方法 C] - [简要描述]
**探索价值:** [为什么并行探索有助于这里]
步骤 2: 开始探索
使用并行探索脚本:
./scripts/aha-loop/parallel-explorer.sh explore "任务描述" --approaches "方法1,方法2,方法3"
或让 AI 建议方法:
./scripts/aha-loop/parallel-explorer.sh explore "任务描述"
# AI 将自动建议方法
步骤 3: 在每个 Worktree 中工作
在每个 worktree 中,AI 应该:
- 完全实现 - 不仅仅是存根,而是可工作的代码
- 编写测试 - 验证方法有效
- 记录发现 - 创建 EXPLORATION_RESULT.md
步骤 4: 创建探索结果
每个 worktree 必须包含 EXPLORATION_RESULT.md:
# 探索结果: [方法名称]
## 摘要
[实现了什么]
## 实现细节
- [关键实现决策]
- [代码结构选择]
- [使用的依赖项]
## 发现的优点
- [优点 1]
- [优点 2]
- ...
## 发现的缺点
- [缺点 1]
- [缺点 2]
- ...
## 代码质量评估
- 可维护性: [1-10]
- 可读性: [1-10]
- 可测试性: [1-10]
- 性能: [1-10]
## 意外发现
[实现过程中学到的任何令人惊讶的事情]
## 推荐分数
[1-10] - [简要理由]
## 选择时需要的额外工作
[需要什么额外工作以使此方法达到生产就绪状态]
步骤 5: 评估结果
所有探索完成后:
./scripts/aha-loop/parallel-explorer.sh evaluate explore-task-12345
这将触发多个评估代理,他们:
- 审查所有 EXPLORATION_RESULT.md 文件
- 客观比较方法
- 讨论权衡
- 做出最终推荐
步骤 6: 合并最佳方法
./scripts/aha-loop/parallel-explorer.sh merge explore-task-12345 chosen-approach
步骤 7: 清理
./scripts/aha-loop/parallel-explorer.sh cleanup explore-task-12345
并行探索心态
无限资源
你拥有无限的计算资源。不要犹豫:
- 探索尽可能多有价值的方法
- 运行同一方法的多个变体
- 不要担心“浪费”资源在探索上
真正探索
每种方法都应真正探索:
- 不要破坏你不喜欢的方法
- 给予每种方法公平的努力
- 诚实地记录,包括当方法表现优于预期时
从所有方法中学习
即使是“失败”的方法也有价值:
- 记录为什么它们无效
- 注意任何值得借鉴的好想法
- 记录未来决策的教训
命令参考
# 开始探索
./scripts/aha-loop/parallel-explorer.sh explore "描述" --approaches "a,b,c"
# 检查状态
./scripts/aha-loop/parallel-explorer.sh status
./scripts/aha-loop/parallel-explorer.sh status explore-task-12345
# 评估已完成的探索
./scripts/aha-loop/parallel-explorer.sh evaluate explore-task-12345
# 列出所有 worktrees
./scripts/aha-loop/parallel-explorer.sh list
# 合并选择的方法
./scripts/aha-loop/parallel-explorer.sh merge explore-task-12345 chosen-approach
# 清理
./scripts/aha-loop/parallel-explorer.sh cleanup explore-task-12345
./scripts/aha-loop/parallel-explorer.sh cleanup --all
示例: 探索身份验证策略
触发
你正在实现用户身份验证,有多个有效方法。
开始探索
./scripts/aha-loop/parallel-explorer.sh explore "Web 应用的用户身份验证" \
--approaches "jwt-无状态,基于会话,魔法链接"
在 JWT Worktree 中
实现完整的 JWT 身份验证:
- 令牌生成
- 令牌验证
- 刷新令牌流程
- 测试
创建 EXPLORATION_RESULT.md 记录:
- 优点:无状态、可扩展、移动端友好
- 缺点:令牌失效复杂、请求较大
- 分数:7/10
在 Session Worktree 中
实现基于会话的身份验证:
- 会话创建
- 会话存储(Redis/数据库)
- 会话中间件
- 测试
创建 EXPLORATION_RESULT.md 记录:
- 优点:易于失效、请求较小
- 缺点:需要会话存储、有状态
- 分数:8/10
在 Magic Link Worktree 中
实现无密码魔法链接:
- 邮件发送
- 链接生成
- 链接验证
- 测试
创建 EXPLORATION_RESULT.md 记录:
- 优点:无需管理密码、良好用户体验
- 缺点:依赖邮件、可能有延迟
- 分数:6/10
评估
多个评估代理审查所有三种方法并产生:
- 比较表
- 最终推荐(基于会话的简单性)
- 建议借鉴 JWT 的令牌轮换想法
合并
./scripts/aha-loop/parallel-explorer.sh merge explore-auth-12345 session-based
嵌套探索
在探索过程中,你可能发现新的决策点。你可以:
- 推迟 - 记下来以备后用,继续当前探索
- 嵌套 - 在 worktree 中启动子探索
对于嵌套探索,创建一个子目录:
.worktrees/
explore-auth-12345/
jwt/
.worktrees/ # 嵌套探索
explore-refresh-67890/
rotating-tokens/
sliding-window/
与可观察性集成
将探索决策记录到 logs/ai-thoughts.md:
## 2026-01-29 14:00:00 | 任务: PRD-003 | 阶段: 探索
### 决策点
需要确定身份验证策略。
### 正在探索的方法
1. JWT(无状态)
2. 基于会话(有状态)
3. 魔法链接(无密码)
### 探索状态
已启动并行探索:explore-auth-12345
### 预期结果
将评估所有三种方法并合并最佳方法。
检查清单
开始探索前:
- [ ] 决策点清晰识别
- [ ] 存在多个有效方法
- [ ] 方法有显著差异
- [ ] 探索努力是合理的
探索期间:
- [ ] 每种方法真正实现
- [ ] 为每种编写测试
- [ ] 创建 EXPLORATION_RESULT.md
探索后:
- [ ] 所有方法公平评估
- [ ] 最终推荐记录
- [ ] 最佳方法合并
- [ ] worktrees 清理完毕