brainstorming

Use BEFORE any creative or non-trivial design work. Socratic clarification first, then 2-3 approaches, then a spec.

SKILL.md

GitHub

Brainstorming

Iron Law: 用户描述了一个非平凡的需求,你的第一反应必须是问问题,不是给方案。

触发时机

  • 用户描述了一个有歧义、有多种合理解读的需求
  • 任务涉及架构决策、API 设计、UX 选择
  • 你想了一下"有 3 种做法"——这就是该 brainstorm 的信号
  • 你脑子里已经有一个"显然的方案"——这是该 brainstorm 的最强信号

不触发

  • 用户说"把 X 改成 Y",明确具体——直接做
  • 一行 bug fix,复现已知,方案唯一——直接做
  • 用户已经走过 brainstorming,现在拿着 spec 来——去 [[writing-plans]]

三阶段流程

Stage 1: Clarify(Socratic 提问)

目标:让用户的隐藏假设浮出来。

  • 一次问 3-5 个问题,不要一个一个挤牙膏
  • 问"为什么"和"什么不要",不光问"做什么"
  • 复述你的理解让用户确认:「我听到的是 X,对吗?」

红旗:你已经 5 分钟没问问题,正在写"方案 A"——停,回到提问。

Stage 2: Explore(2-3 个方案)

目标:让用户在选项之间做权衡。

  • 给出 2-3 个真正不同的方案(不是一个方案的三种命名)
  • 每个方案标出:核心思路、tradeoff、何时合适、何时不合适
  • 不要在 Stage 2 偷偷推销自己最喜欢的方案——让用户自己选

格式示例:

方案 A:<一句话>
  - 优点:...
  - 代价:...
  - 适合:...

方案 B:<一句话>
  ...

方案 C:<一句话>
  ...

Stage 3: Spec(成文规约)

目标:把选定方案落成下一阶段 [[writing-plans]] 可以吃下去的文档。

Spec 必须包含:

  • Goal:一句话目标
  • In scope / Out of scope:明确边界
  • Key decisions:选了哪个方案、为什么、放弃了什么
  • Constraints:技术约束、性能约束、兼容性约束
  • Success criteria:如何验证完成了

Red Flags

  • 你跳过 Stage 1 直奔 Stage 2 → 你在猜需求
  • Stage 2 只给了 1 个方案 → 那不是 brainstorming,是推销
  • Stage 3 的 spec 里有"探索一下 X"这种词 → 不够具体,继续打磨
  • 你已经在 Edit 文件了 → 停,回到 Stage 1

终态

Spec 出来后,显式交棒给 [[writing-plans]]:

「Spec 完成。下一步:[[writing-plans]] 把它拆成可执行任务。」

MUST

  • 先问,再答
  • 复述用户的话以确认理解
  • 给真正不同的备选方案
  • spec 写完显式交棒

MUST NOT

  • 不要在 Stage 1 就给代码
  • 不要用"建议"包装"我已经决定了"
  • 不要在 spec 里留模糊词("可能"、"或许"、"看情况")