名称:头脑风暴 描述:在编写代码或实施计划之前,用于创建或开发任何事物时——通过结构化的苏格拉底式提问、替代方案探索和渐进式验证,将粗略的想法提炼为完整的设计方案
将想法转化为设计
概述
通过结构化提问和替代方案探索,将粗略的想法转化为完整的设计方案。
核心原则: 通过提问来理解、探索替代方案、逐步呈现设计以进行验证。
在会话开始时宣布使用此技能。
何时使用此技能
在以下情况下激活此技能:
- 请求包含“我有一个关于…的想法”或“我想构建…”
- 用户询问“帮我设计…”或“…的最佳方法是什么”
- 需求模糊或高度概括
- 可能有多种方法可行
- 在编写任何代码或实施计划之前
三阶段流程
| 阶段 | 关键活动 | 工具使用 | 输出 |
|---|---|---|---|
| 1. 理解 | 提问(一次一个) | 使用 AskUserQuestion 进行选择 | 目的、约束、成功标准 |
| 2. 探索 | 提出 2-3 种方法 | 使用 AskUserQuestion 进行方法选择 | 包含权衡的架构选项 |
| 3. 设计呈现 | 以 200-300 字为单位呈现 | 开放式问题 | 包含验证的完整设计 |
阶段 1:理解
目标: 收集目的、约束和成功标准。
流程:
- 检查工作目录中的当前项目状态
- 一次提出一个问题以完善想法
- 呈现多项选择选项时使用 AskUserQuestion 工具
- 收集:目的、约束、成功标准
工具使用: 使用 AskUserQuestion 提出包含 2-4 个清晰选项的澄清性问题。
示例:“身份验证数据应存储在哪里?”选项包括会话存储、本地存储、Cookie,每个都附带权衡描述。
完整阶段 1 示例请参见 references/example-session-auth.md。
阶段 2:探索
目标: 提出 2-3 种不同的架构方法,并明确说明其权衡。
流程:
- 提出 2-3 种不同的方法
- 对于每种方法:核心架构、权衡、复杂性评估
- 使用 AskUserQuestion 工具将方法呈现为结构化选择
- 在有用时包含权衡比较表
权衡格式:
| 方法 | 优点 | 缺点 | 复杂性 |
|---|---|---|---|
| 选项 1 | 好处 | 缺点 | 低/中/高 |
| 选项 2 | 好处 | 缺点 | 低/中/高 |
| 选项 3 | 好处 | 缺点 | 低/中/高 |
完整阶段 2 示例请参见 references/example-session-dashboard.md,其中包含 SSE、WebSockets 和轮询的比较。
阶段 3:设计呈现
目标: 逐步呈现完整设计,并验证每个部分。
流程:
- 以 200-300 字为单位呈现
- 涵盖:架构、组件、数据流、错误处理、测试
- 每个部分后询问:“到目前为止看起来对吗?”
- 使用开放式问题以允许自由形式的反馈
典型部分:
- 架构概述
- 组件详情
- 数据流
- 错误处理
- 安全考虑
- 实施优先级
验证模式: 每个部分后,在继续下一部分之前暂停以获取反馈。
工具使用指南
使用 AskUserQuestion 工具用于:
- 阶段 1:包含 2-4 个清晰选项的澄清性问题
- 阶段 2:架构方法选择(2-3 种替代方案)
- 任何具有明确、互斥选择的决策
- 当选项有明确的权衡需要解释时
好处:
- 结构化呈现选项及其描述
- 清晰的权衡可见性
- 强制明确选择(防止模糊的“可能两者都”的回答)
使用开放式问题用于:
- 阶段 3:设计验证
- 当需要详细反馈或解释时
- 当用户应描述自己的需求时
- 当结构化选项会限制创造性输入时
非线性进展
灵活性是关键。 需要时返回——不要强制线性进展。
返回阶段 1 当:
- 用户在阶段 2 或 3 中揭示新的约束
- 验证显示需求存在根本性差距
- 某些内容不合理
返回阶段 2 当:
- 用户在阶段 3 中质疑所选方法
- 新信息表明其他方法会更好
继续前进当:
- 所有需求都清晰
- 所选方法已验证
- 没有新的约束出现
关键原则
| 原则 | 应用 |
|---|---|
| 一次一个问题 | 阶段 1:每条消息一个单一问题,使用 AskUserQuestion 进行选择 |
| 结构化选择 | 使用 AskUserQuestion 工具呈现 2-4 个包含权衡的选项 |
| 无情地应用 YAGNI | 从所有设计中移除不必要的功能 |
| 探索替代方案 | 在确定之前始终提出 2-3 种方法 |
| 渐进式验证 | 分部分呈现设计,验证每个部分 |
| 灵活进展 | 需要时返回——灵活性 > 刚性 |
头脑风暴完成后
考虑以下可选后续步骤:
- 在项目的设计文档中记录设计
- 将设计分解为可操作的实施任务
- 为隔离开发创建 git 分支或工作区
使用 assets/design-doc-template.md 和 assets/decision-matrix-template.md 中的模板进行结构化文档记录。
示例
完整头脑风暴会话:
references/example-session-auth.md- 身份验证存储设计(JWT vs Session vs Cookies)references/example-session-dashboard.md- 实时仪表板设计(SSE vs WebSockets vs Polling)
输出模板:
assets/design-doc-template.md- 结构化设计文档格式assets/decision-matrix-template.md- 加权决策比较格式