关于 brainstorming
brainstorming 是将初步想法逐步整理为设计和规格说明的协作技能,适用于开始新项目或功能规划的人。它通过逐项澄清需求、比较方案并等待设计及文档审核,为进入实施阶段设置明确关卡。
主要功能
- 01先了解项目现状与背景
- 02逐个提出澄清问题
- 03比较两到三种方案及取舍
- 04分段呈现设计并征求认可
- 05完成规格文档审核后转入计划阶段
适用场景
- 01把新项目想法梳理成设计方案
- 02澄清功能的目标、约束和验收标准
- 03将范围过大的项目拆分为子项目
- 04在编写代码前审核设计规格
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lucianghinda/ superpowers-ruby --skill brainstorming安装后在 Claude Code 中输入/brainstorming确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
spec-document-reviewer-prompt.mdvisual-companion.mdscripts/frame-template.htmlhelper.jsserver.cjsstart-server.shstop-server.sh详细介绍
将想法头脑风暴为设计
通过自然的协作式对话,帮助将想法转化为完整的设计和规范。
首先了解当前项目背景,然后一次提出一个问题来完善想法。了解要构建的内容后,展示设计并征求用户批准。
在满足以下所有条件之前,不要编写任何代码、搭建任何项目框架、调用任何实现技能或采取任何实现行动:设计已经展示并获批,规范已经编写并提交,用户已经审阅书面规范,并且已调用 writing-plans 技能。用户在聊天中批准设计(“看起来不错,开始吧”)只会清除清单中的下一项——这并不意味着可以开始实现。无论项目看起来多么简单,这条要求都适用。反模式:“这太简单了,不需要设计”
每个项目都必须遵循此流程。待办清单、单函数工具、配置更改——所有项目都是如此。“简单”项目最容易因未经检验的假设而造成大量返工。设计可以很简短(真正简单的项目只需几句话),但你必须展示设计并获得批准。
不适用情形
- 调试/修复回归问题——使用 superpowers-ruby:systematic-debugging。如果修复最终改变了预期行为,请回到这里。
- 执行已经批准的计划——使用 superpowers-ruby:executing-plans 或 subagent-driven-development。
- 纯研究或提问——不涉及实现,就没有需要设计的内容。
清单
你必须为以下每一项创建任务,并按顺序完成:
- 了解项目背景——检查文件、文档和近期提交
- 提供视觉辅助(如果主题会涉及视觉问题)——单独发送一条消息,不要与澄清问题合并。请参阅下文的“视觉辅助”部分。
- 提出澄清问题——一次一个,了解目的、约束和成功标准
- 提出 2-3 种方案——说明权衡,并给出推荐方案
- 展示设计——根据复杂程度分节展示,并在每一节后征求用户批准
- 定稿设计文档——将持续更新的草稿(参见“随进展保存”)整理为最终文档,保存至
docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md,其中包含决策日志,并提交 - 自我审查规范——快速检查占位符、矛盾、歧义和范围(见下文)
- 用户审阅书面规范——在继续之前,请用户审阅规范文件
- 过渡到实现阶段——调用 writing-plans 技能以创建实现计划
流程
digraph brainstorming {
"Explore project context" [shape=box];
"Visual questions ahead?" [shape=diamond];
"Offer Visual Companion\n(own message, no other content)" [shape=box];
"Ask clarifying questions" [shape=box];
"Create DRAFT spec\n(append decisions as they land)" [shape=box];
"Propose 2-3 approaches" [shape=box];
"Present design sections" [shape=box];
"User approves design?" [shape=diamond];
"Finalize design doc\n(promote DRAFT, add Decisions)" [shape=box];
"Spec self-review\n(fix inline)" [shape=box];
"User reviews spec?" [shape=diamond];
"Invoke writing-plans skill" [shape=doublecircle];
"Explore project context" -> "Visual questions ahead?";
"Visual questions ahead?" -> "Offer Visual Companion\n(own message, no other content)" [label="yes"];
"Visual questions ahead?" -> "Ask clarifying questions" [label="no"];
"Offer Visual Companion\n(own message, no other content)" -> "Ask clarifying questions";
"Ask clarifying questions" -> "Create DRAFT spec\n(append decisions as they land)";
"Create DRAFT spec\n(append decisions as they land)" -> "Propose 2-3 approaches";
"Propose 2-3 approaches" -> "Present design sections";
"Present design sections" -> "User approves design?";
"User approves design?" -> "Present design sections" [label="no, revise"];
"User approves design?" -> "Ask clarifying questions" [label="no, misunderstood the goal"];
"User approves design?" -> "Finalize design doc\n(promote DRAFT, add Decisions)" [label="yes"];
"Finalize design doc\n(promote DRAFT, add Decisions)" -> "Spec self-review\n(fix inline)";
"Spec self-review\n(fix inline)" -> "User reviews spec?";
"User reviews spec?" -> "Finalize design doc\n(promote DRAFT, add Decisions)" [label="changes requested"];
"User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
}
最终步骤是调用 writing-plans。 不要调用 frontend-design、mcp-builder 或任何其他实现技能。头脑风暴之后唯一可以调用的技能是 writing-plans。
流程
理解想法:
- 先查看当前项目状态(文件、文档、近期提交)
- 在提出详细问题之前,先评估范围:如果请求描述了多个彼此独立的子系统(例如“构建一个包含聊天、文件存储、计费和分析功能的平台”),请立即指出。不要花时间询问细节来完善一个需要先拆分的项目。
- 如果项目对于单份规格说明来说过于庞大,请帮助用户拆分为多个子项目:哪些部分彼此独立、它们之间有何关联、应按什么顺序构建?然后按照常规设计流程,为第一个子项目集思广益。每个子项目都有自己的规格说明 → 计划 → 实施周期。
- 对于范围合适的项目,每次只问一个问题,逐步明确想法
- 尽可能优先使用选择题,但开放式问题也可以。如果有 AskUserQuestion 工具,请使用它呈现选项。
- 默认每条消息只问一个问题——如果某个主题需要进一步探讨,就拆分成多个问题
- 例外:如果问题确实彼此独立(一个问题的答案不会影响另一个问题),可以在一次 AskUserQuestion 调用中批量提出最多 4 个选择题。尤其适用于用户时间紧迫的情况。相互依赖的问题绝不批量提出。
- 重点了解:目的、约束、成功标准
随进展持续记录:
- 一旦开始形成实际决策,就立即创建规格说明文件草稿(顶部标注
Status: DRAFT),并在每项决策确定后将其补充进去 - 聊天记录不能作为存储——会话崩溃、上下文被压缩或中断,都不应导致头脑风暴的状态丢失。草稿文件应供后续会话继续使用。
探索方案:
- 提出 2-3 种不同方案,并说明各自的权衡
- 以对话式的方式介绍选项,并给出你的推荐及理由
- 先介绍你推荐的方案,并解释原因
呈现设计:
- 确信自己已理解要构建的内容后,呈现设计
- 根据复杂程度调整每个部分的篇幅:简单的内容用几句话,复杂的内容最多 200-300 词
- 每介绍完一个部分,就询问目前看来是否合适
- 涵盖:架构、组件、数据流、错误处理、测试
- 如果有些内容不合理,要准备好回头澄清
设计时注重隔离与清晰:
- 将系统拆分为更小的单元,每个单元都有明确的用途,通过定义清晰的接口进行通信,并且能够独立理解和测试
- 对于每个单元,你都应该能回答:它做什么、如何使用它、它依赖什么?
- 不看内部实现,也能理解一个单元的作用吗?修改内部实现时,能不影响使用方吗?如果不能,就需要重新划分边界。
- 较小且边界清晰的单元也更便于你处理——你更擅长推理能够一次性纳入上下文的代码,而且文件职责越聚焦,修改就越可靠。文件变得很大时,往往说明它承担了过多职责。
在现有代码库中工作:
- 提出更改建议之前,先了解当前结构。遵循现有模式。
- 如果现有代码中存在影响当前工作的缺陷(例如文件过大、边界不清晰、职责纠缠),请将针对性的改进纳入设计,就像优秀的开发者会改进自己正在处理的代码一样。
- 不要提出无关的重构。聚焦于服务当前目标的内容。
设计完成后
文档:
- 将正在编写的草稿提升为最终规范,保存到
docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md(移除 DRAFT 标题)- (用户对规范保存位置的偏好优先于此默认位置)
- 规范 MUST 包含
## Decisions部分:列出头脑风暴中每一项明确的用户决策,原文照录或近乎照录,并为每项附上一行理由。后续的规范评审和计划一致性检查都以此部分为依据。 - 如果可用,请使用 elements-of-style:writing-clearly-and-concisely skill
- 将设计文档提交到 git
规范自审: 编写规范文档后,以全新的视角审阅:
- **占位内容检查:**是否有任何“TBD”、“TODO”、未完成的部分或含糊的需求?修复它们。
- **内部一致性:**各部分之间是否存在矛盾?架构是否与功能描述一致?
- **范围检查:**内容是否足够聚焦,可以制定单个实施计划,还是需要拆分?
- **歧义检查:**任何需求是否可能被两种不同方式理解?如果是,选定一种并明确说明。
直接修复发现的问题。无需重新审阅,修复后继续即可。
对于复杂或风险较高的规范,还应使用与此 skill 同一目录下的 spec-document-reviewer-prompt.md 模板,派遣一个具有全新上下文的审阅子 Agent。小型规范可跳过此步骤,只进行行内检查即可。
用户审阅关卡: 规范审阅循环通过后,请用户在继续之前审阅已编写的规范:
“规范已编写并提交到
<path>。请审阅,并告知我在开始编写实施计划之前是否需要进行任何修改。”
等待用户回复。如果用户要求修改,则完成修改并重新运行规范审阅循环。只有在用户批准后才能继续。
实施:
- 调用 writing-plans skill,创建详细的实施计划
- 不要调用任何其他 skill。下一步只能是 writing-plans。
核心原则
- 一次只问一个问题——不要用多个问题让用户应接不暇
- 优先采用选择题——在可行时,这比开放式问题更容易回答
- 严格遵循 YAGNI——从所有设计中移除不必要的功能
- 探索替代方案——确定方案前始终提出 2–3 种方案
- 增量式验证——展示设计,并在继续之前获得批准
- 灵活应变——遇到不合理之处时,返回并澄清
合理化借口对照表
| 借口 | 事实 |
|---|---|
| “用户已经准确告诉我他们想要什么” | 用户给出的是解决方案,而不是其中尚未明确的决策。用 3 句话描述设计,再让用户用一个词批准,几秒钟就能把这些决策梳理出来。 |
| “用户让我跳过设计流程” | 应压缩流程,而不是跳过:尽可能精简设计,只发送一条审批消息。速度来自简洁,而非跳过关卡。 |
| “用户在聊天中批准了,所以我可以开始编码” | 聊天中的批准只完成了检查清单中的一项。编写规范 → 提交 → 请用户审阅书面文件 → 使用 writing-plans,这些步骤仍然不能省略。 |
| “跳过文档吧,内容很简单” | 已提交的规范是计划和后续会话的依据。聊天记录会消失;用户批准的只是聊天中的简述,而不是经过审阅的规范。 |
| “我把设计和代码一起展示,节省时间” | 这会破坏关卡机制——必须在开始工作前发现错误假设,否则时间已经浪费。 |
警示信号——停止
- 准备在没有已提交规范的情况下编写代码
- 把“继续吧”或“看起来不错”当作实施许可
- 打算在代码完成后再写规范,“记录我做了什么”
- 从想法直接跳到 writing-plans,中间没有展示并获批的设计
出现以上任何一种情况,都意味着:返回检查清单,完成当前事项。
Visual Companion
一个基于浏览器的伴侣工具,可在头脑风暴期间展示模型图、示意图和视觉选项。它是一种工具,而非模式——接受后并不会将每个问题都交由浏览器处理。
提供伴侣工具: 当你预计会遇到视觉类问题(模型图、布局、示意图)时,征求一次同意:
“我们正在讨论的某些内容,如果能在网页浏览器中展示给你看,可能会更容易解释。我可以在讨论过程中制作模型图、示意图、对比图及其他视觉内容。此功能仍处于早期阶段,可能会消耗较多 token。想试试吗?(需要打开本地 URL)”
此提议必须单独作为一条消息发送——不要包含其他内容,并等待回复。如果对方拒绝,则仅通过文本继续。
接受后的逐问题判断: 只有当用户通过“看”能更好地理解内容时(模型图、布局对比、示意图),才使用浏览器;所有文本内容(需求、权衡、范围)都使用终端。关于 UI 主题的问题并不自动属于视觉类问题。
如果对方接受,请先阅读详细指南再继续:skills/brainstorming/visual-companion.md