主厨之选对决 omakase-off

主厨之选对决是一个软件开发辅助技能,用于在项目初期或设计阶段遇到不确定的架构决策时,提供并行探索多种实现方案的自动化流程。它通过检测用户的犹豫不决,自动生成多个变体方案,并行实施、测试和评估,最终通过客观测试结果选出最优方案,旨在提高决策效率和方案质量。 **关键词:** 软件开发、架构决策、并行探索、A/B测试、自动化评估、代码生成、测试驱动、方案对比、决策辅助、敏捷开发、DevOps、AI辅助编程

架构设计 0 次安装 0 次浏览 更新于 2/28/2026

name: omakase-off description: 此技能应作为构建/创建/实现请求的入口。触发条件为“构建X”、“创建Y”、“实现Z”、“添加功能”、“尝试两种方法”、“不确定哪种方法”。提供“共同头脑风暴”或“主厨之选并行探索”选项。在头脑风暴期间检测犹豫不决时,提供并行探索选项。

主厨之选对决

主厨之选探索 - 当你不确定要构建什么时,并行探索不同的方法。

测试厨房开发的一部分:

  • omakase-off - 主厨之选探索(不同方法/方案)
  • cookoff - 相同食谱,多位厨师竞争(相同方案,多种实现)

核心原则: 让犹豫不决在头脑风暴中自然浮现,然后并行实施多种方法,让真实的代码和测试来决定最佳解决方案。

三个触发条件

触发条件 1:头脑风暴之前

时机: “我想构建…”、“创建一个…”、“实现…”、“添加一个功能…”

呈现:

在我们详细讨论之前,您希望:

1. 共同头脑风暴 - 我们将逐步探讨需求和设计
2. 主厨之选 - 我将生成3-5个最佳方法,并行实现它们,
   并通过测试选出优胜者

触发条件 2:头脑风暴期间(犹豫不决检测)

检测信号:

  • 在架构决策上连续出现2次以上不确定的回应
  • 短语:“不确定”、“不知道”、“都可以”、“你选吧”、“没偏好”

检测到时:

您似乎对方法很灵活。您希望:
1. 我来选择看起来最好的并继续头脑风暴
2. 并行探索多种方法(主厨之选对决)

触发条件 3:明确请求

  • “尝试两种方法”、“探索两者”、“主厨之选”
  • “实现两个变体”、“看看哪个更好”

工作流程概述

阶段 描述
0. 入口 呈现头脑风暴与主厨之选的选择
1. 头脑风暴 设计期间的被动“槽位”检测
1.5. 决策 如果检测到槽位,提供并行探索选项
2. 计划 为每个变体生成实施计划
3. 实施 在单条消息中分派所有代理
4. 评估 场景测试 → 新鲜视角 → 评审幸存者
5. 完成 完成优胜者,清理失败者

完整阶段详情请参见 references/detailed-workflow.md

目录结构

docs/plans/<功能名称>/
  design.md                  # 来自头脑风暴的共享上下文
  omakase/
    variant-<简写>/
      plan.md                # 此变体的实施计划
    result.md                # 最终报告

.worktrees/
  variant-<简写>/            # 主厨之选变体工作树

槽位分类

类型 示例 值得探索?
架构性 存储引擎、框架、认证方法
琐碎性 文件位置、命名、配置格式

只有架构性决策会成为并行探索的槽位。

变体限制

最多5-6个实现。 不要进行完整的组合爆炸:

  1. 识别主要轴线(对架构影响最大)
  2. 沿该轴线创建变体
  3. 用自然配对填充次要槽位

关键规则

  1. 在单条消息中分派所有变体 - 多个任务工具,一条消息
  2. 必须使用场景测试 - 非手动验证
  3. 对幸存者进行新鲜视角评审 - 在评审比较之前必需
  4. 始终清理失败者 - 移除工作树和分支
  5. 编写 result.md - 记录尝试了什么以及优胜者胜出的原因

协调的技能

依赖项 用途
brainstorming 修改流程,包含被动槽位检测
writing-plans 为每个变体生成实施计划
git-worktrees 为每个变体创建独立的工作树
parallel-agents 并行分派所有变体子代理
scenario-testing 对所有变体运行相同的场景测试
fresh-eyes 对幸存者进行质量评审 → 作为评审的输入
finish-branch 处理优胜者(合并/PR),清理失败者

示例流程

用户:“我需要构建一个CLI待办事项应用。”

Claude:[触发 omakase-off]
在我们深入之前,您希望如何着手?
1. 共同头脑风暴
2. 主厨之选

用户:“1”

Claude:[进行头脑风暴,检测到在存储方案上的犹豫不决]

您似乎对存储方案很灵活(JSON vs SQLite)。您希望:
1. 并行探索 - 我将实现两个变体
2. 最佳猜测 - 我选择JSON(更简单)

用户:“1”

[为 variant-json, variant-sqlite 创建计划]
[在单条消息中分派并行代理]
[对两者运行场景测试]
[对幸存者进行新鲜视角评审]
[呈现比较结果,用户选择优胜者]
[清理失败者,完成优胜者分支]