用途
Omakase-Off 是一个技能,作为构建、创建、实现类请求的入口门。它适用于当你还不确定要构建什么时,通过并行探索不同方案来帮助决策。它是 Test Kitchen Development 的一部分,与 cookoff(同一方案、多个实现竞争)并列。
核心原则:让犹豫在头脑风暴中自然浮现,然后并行实现多种方案,让真实代码和测试来决定最佳解。
主要能力
三个触发点
触发点 1:头脑风暴之前
当出现“我想构建……”“创建一个……”“实现……”“添加一个功能……”等请求时,会呈现选择:
- 一起头脑风暴——逐步探索需求和设计
- Omakase(厨师精选)——生成 3-5 个最佳方案,并行实现,让测试选出胜者
触发点 2:头脑风暴期间(犹豫检测)
检测信号:
- 在架构决策上连续出现 2 个以上不确定回应
- 短语:“不确定”“不知道”“都行”“你选”“没有偏好”
检测到时,会询问是否要并行探索多种方案。
触发点 3:明确请求
- “两种方案都试试”“都探索一下”“omakase”
- “实现两个变体”“看看哪个更好”
工作流概览
| 阶段 | 描述 |
|---|---|
| 0. 入口 | 呈现头脑风暴 vs omakase 选择 |
| 1. 头脑风暴 | 设计期间被动检测槽位 |
| 1.5. 决策 | 若检测到槽位,提供并行探索 |
| 2. 规划 | 为每个变体生成实现计划 |
| 3. 实现 | 在单条消息中派发所有智能体 |
| 4. 评估 | 场景测试 → 全新视角 → 评判幸存者 |
| 5. 完成 | 完成胜者,清理败者 |
完整阶段细节见 references/detailed-workflow.md。
目录结构
docs/plans/<name>/ design.md # 来自头脑风暴的共享上下文 omakase/ variant-<name>/ plan.md # 此变体的实现计划 result.md # 最终报告
.worktrees/ variant-<name>/ # Omakase 变体工作树
槽位分类
| 类型 | 示例 | 值得探索? |
|---|---|---|
| 架构性 | 存储引擎、框架、认证方式 | 是 |
| 琐碎 | 文件位置、命名、配置格式 | 否 |
只有架构性决策会成为并行探索的槽位。
变体限制
最多 5-6 个实现。不要做完全组合爆炸:
- 确定主轴(最大架构影响)
- 沿该轴创建变体
- 用自然配对填充次要槽位
使用方式
关键规则
- 在单条消息中派发所有变体——多个 Task 工具,一条消息
- 必须使用 scenario-testing——而非手动验证
- 对幸存者进行全新视角审查——在评判比较之前必需
- 始终清理败者——移除工作树和分支
- 编写 result.md——记录尝试了什么以及胜者为何胜出
编排的技能
| 依赖 | 用途 |
|---|---|
brainstorming |
带被动槽位检测的修改流程 |
writing-plans |
为每个变体生成实现计划 |
git-worktrees |
为每个变体创建隔离工作树 |
parallel-agents |
并行派发所有变体子智能体 |
scenario-testing |
对所有变体运行相同场景 |
fresh-eyes |
对幸存者进行质量审查 → 作为评判输入 |
finish-branch |
处理胜者(合并/PR),清理败者 |
适用场景
示例流程
用户:“我需要构建一个 CLI 待办事项应用。”
Claude:[触发 omakase-off] 在我们深入之前,你希望如何推进?
- 一起头脑风暴
- Omakase(厨师精选)
用户:“1”
Claude:[头脑风暴继续,检测到存储方面的犹豫]
你似乎在存储方面比较灵活(JSON vs SQLite)。你希望:
- 并行探索——我会实现两个变体
- 最佳猜测——我会选 JSON(更简单)
用户:“1”
[为 variant-json、variant-sqlite 创建计划] [在单条消息中派发并行智能体] [对两者运行场景测试] [对幸存者进行全新视角审查] [呈现比较,用户选择胜者] [清理败者,完成胜者分支]
限制
- 变体上限为 5-6 个实现,避免组合爆炸
- 只有架构性决策会成为并行探索的槽位,琐碎决策不探索
- 必须使用 scenario-testing 而非手动验证
- 评判比较前必须对幸存者进行全新视角审查
- 必须清理败者工作树和分支
- 必须编写 result.md 记录尝试内容和胜出原因
- 关于收费、价格、平台等具体信息暂未提供