mcpField
B
brainstorming

brainstorming

github.com/julianromliAgent 工作流21349 次安装4 天前更新
代码仓库

关于 brainstorming

brainstorming 是将项目构想整理为经确认设计和规格说明的协作技能。它引导 Agent 收集背景、逐项澄清需求、比较方案、审核设计,并转入实施规划。

主要功能

  1. 01探索项目背景
  2. 02逐次提出澄清问题
  3. 03比较方案及其取舍
  4. 04提交设计供确认
  5. 05编写并审查设计规格
  6. 06转入实施规划

适用场景

  1. 01编码前澄清需求
  2. 02拆分大型项目
  3. 03确认架构与范围
  4. 04实施前审查设计

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/julianromli/ai-skills --skill brainstorming

安装后在 Claude Code 中输入/brainstorming确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

spec-document-reviewer-prompt.md
visual-companion.md
scripts/
frame-template.html
helper.js
server.cjs
start-server.sh
stop-server.sh

详细介绍

将想法构思成设计方案

通过自然的协作对话,帮助将想法打磨成完整的设计方案和规格说明。

先了解当前项目的背景,然后一次提出一个问题来完善想法。了解要构建的内容后,展示设计方案并征求用户批准。

在展示设计方案并获得用户批准之前,不要调用任何实现技能、编写代码、搭建任何项目脚手架或采取任何实现行动。无论项目看起来多么简单,这条规则都适用。

反面模式:“这太简单了,不需要设计”

每个项目都必须遵循此流程。待办清单、单功能实用程序、配置更改——所有项目都一样。“简单”的项目最容易因未经审视的假设而造成大量无谓工作。设计方案可以很简短(对于确实简单的项目,几句话即可),但你必须展示方案并获得批准。

检查清单

你必须为以下各项分别创建任务,并按顺序完成:

  1. 探索项目背景 — 检查文件、文档和近期提交
  2. 提供视觉辅助材料(如果主题涉及视觉问题)— 必须单独发送消息,不能与澄清问题合并。请参阅下方的“视觉辅助材料”部分。
  3. 提出澄清问题 — 一次一个,了解目的、约束条件和成功标准
  4. 提出 2-3 种方案 — 说明各自的权衡,并给出推荐方案
  5. 展示设计方案 — 按复杂程度划分章节,逐节征求用户批准
  6. 编写设计文档 — 保存到 docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md 并提交
  7. 自我审查规格说明 — 快速检查占位符、矛盾、歧义和范围(见下文)
  8. 用户审阅书面规格说明 — 请用户在继续之前审阅规格说明文件
  9. 过渡到实现阶段 — 调用 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];
    "Propose 2-3 approaches" [shape=box];
    "Present design sections" [shape=box];
    "User approves design?" [shape=diamond];
    "Write design doc" [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" -> "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?" -> "Write design doc" [label="yes"];
    "Write design doc" -> "Spec self-review\n(fix inline)";
    "Spec self-review\n(fix inline)" -> "User reviews spec?";
    "User reviews spec?" -> "Write design doc" [label="changes requested"];
    "User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
}

流程的终止状态是调用 writing-plans。 不要调用 frontend-design、mcp-builder 或任何其他实现技能。构思之后唯一可以调用的技能是 writing-plans。

流程

理解想法:

  • 先查看当前项目状态(文件、文档、近期提交)。
  • 在询问详细问题之前,先评估范围:如果请求描述了多个相互独立的子系统(例如“构建一个包含聊天、文件存储、计费和分析功能的平台”),请立即指出。对于需要先拆分的项目,不要花时间通过提问细化其详情。
  • 如果项目对于单份规格说明来说过于庞大,请帮助用户将其拆分为多个子项目:哪些部分相互独立,它们之间有什么关系,应该按什么顺序构建?然后通过常规设计流程讨论第一个子项目。每个子项目都有自己的规格说明 → 计划 → 实施周期。
  • 对于范围合适的项目,每次只问一个问题来细化想法。
  • 尽可能优先使用选择题,但开放式问题也可以。
  • 每条消息只问一个问题;如果某个主题需要进一步探讨,就将其拆分成多个问题。
  • 专注于理解:目的、约束和成功标准。

探索方案:

  • 提出 2-3 种不同的方案,并说明各自的权衡。
  • 以对话的方式介绍选项,给出你的建议和理由。
  • 先介绍你推荐的选项,并解释原因。

呈现设计:

  • 确认自己已经理解要构建的内容后,再呈现设计。
  • 根据各部分的复杂程度调整篇幅:简单的部分用几句话说明,复杂的部分最多写 200-300 字。
  • 每介绍完一部分,都询问目前看来是否合适。
  • 涵盖:架构、组件、数据流、错误处理和测试。
  • 如果有内容说不通,要准备好返回并澄清。

为隔离性和清晰性而设计:

  • 将系统拆分为更小的单元,每个单元都有明确的用途,通过定义清晰的接口进行通信,并且能够独立理解和测试。
  • 对每个单元,你都应该能够回答:它做什么、如何使用,以及依赖什么?
  • 不看内部实现,别人能理解一个单元的作用吗?你能在不破坏使用方的情况下更改内部实现吗?如果不能,就需要改进边界。
  • 更小且边界清晰的单元也更便于你开展工作——你可以一次在上下文中掌握的代码,更有利于你推理;文件职责明确时,你的修改也更可靠。文件变得庞大时,通常意味着它承担了过多职责。

在现有代码库中工作:

  • 提出更改方案前,先了解当前结构。遵循现有模式。
  • 如果现有代码中的问题会影响当前工作(例如,文件过于庞大、边界不清晰、职责纠缠),请将有针对性的改进纳入设计,就像优秀的开发者会改进自己正在处理的代码一样。
  • 不要提议无关的重构。专注于服务当前目标的内容。

设计之后

文档:

  • 将经过验证的设计(规范)写入 docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
    • (用户对规范文件位置的偏好优先于此默认位置)
  • 如果可用,请使用 elements-of-style:writing-clearly-and-concisely 技能
  • 将设计文档提交到 git

规范自审: 写完规范文档后,以全新的视角检查:

  1. 占位符扫描: 是否有任何“待定”“待办”、未完成的部分或含糊的要求?修复它们。
  2. 内部一致性: 各章节之间是否存在矛盾?架构是否与功能描述相符?
  3. 范围检查: 这是否足够聚焦,可以制定单个实现计划?还是需要拆分?
  4. 歧义检查: 是否有任何要求可能被理解为两种不同的意思?如果有,选择一种并明确说明。

直接在原文中修复所有问题。无需重新审查——修复后继续。

用户审查关卡: 规范审查循环通过后,请用户审查已编写的规范,再继续:

“规范已编写并提交到 <path>。请审查并告知我,在开始编写实现计划之前是否需要进行任何更改。”

等待用户回复。如果用户要求更改,就进行修改并重新运行规范审查循环。只有在用户批准后才能继续。

实现:

  • 调用 writing-plans 技能,创建详细的实现计划
  • 不要调用其他任何技能。下一步只能是 writing-plans。

核心原则

  • 一次只问一个问题——不要一次提出多个问题,以免让用户应接不暇
  • 优先选择题——条件允许时,选择题比开放式问题更容易回答
  • 严格遵循 YAGNI——从所有设计中删除不必要的功能
  • 探索替代方案——确定方案前,始终提出 2–3 种方案
  • 增量验证——展示设计,并在继续之前获得批准
  • 保持灵活——遇到不合理之处时,返回并澄清

视觉辅助工具

这是一个基于浏览器的辅助工具,可在头脑风暴期间展示模型图、图表和视觉选项。它是一种工具,而不是一种模式。接受使用该辅助工具,意味着在适合视觉呈现的问题中可以使用它;并不意味着每个问题都要通过浏览器处理。

提供使用辅助工具: 如果你预计接下来的问题会涉及视觉内容(模型图、布局、图表),请主动提出一次以征求同意:

“我们正在处理的某些内容,如果能在网页浏览器中展示,可能会更容易解释。我可以在讨论过程中制作模型图、图表、对比图和其他视觉内容。此功能仍较新,可能会消耗较多 token。想试试吗?(需要打开本地 URL)”

此提议必须单独发送一条消息。 不要将它与澄清问题、背景摘要或任何其他内容合并。消息中只能包含上面的提议,不得包含其他内容。等待用户回复后再继续。如果用户拒绝,就继续使用纯文本进行头脑风暴。

针对每个问题分别决定: 即使用户接受了,也要针对每个问题分别决定使用浏览器还是终端。判断标准是:用户通过观看是否会比阅读更容易理解?

  • 使用浏览器处理本身具有视觉属性的内容——模型图、线框图、布局对比、架构图、并排展示的视觉设计
  • 使用终端处理文本内容——需求问题、概念选择、权衡列表、A/B/C/D 文本选项、范围决策

问题涉及 UI 并不意味着它自动属于视觉问题。“这里的个性指什么?”是一个概念问题——使用终端。“哪种向导布局更合适?”是一个视觉问题——使用浏览器。

如果用户同意使用辅助工具,请在继续之前阅读详细指南: skills/brainstorming/visual-companion.md

评论

支持 Markdown