mcpField
S
spark

spark

github.com/wishworldbetter开发50541 次安装23 周前更新
代码仓库

关于 spark

这项头脑风暴技能通过协作提问和审阅,将想法整理为获批的设计规范。它要求先取得设计批准,再撰写规范,并在交付后停止,不进入实现阶段。

主要功能

  1. 01了解项目现状
  2. 02逐个提出澄清问题
  3. 03比较 2–3 种方案及取舍
  4. 04分段呈现并确认设计
  5. 05编写并自检设计规范
  6. 06在实现前停止

适用场景

  1. 01明确新项目的需求
  2. 02将大型项目拆分为多个规范
  3. 03比较架构方案
  4. 04在实现前审阅设计

安装

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

$npx skills add https://github.com/wishworldbetter/seedex-skills --skill spark

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

包含的文件

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

README.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/spark/YYYY-MM-DD-<topic>-design.md 并提交
  7. 自我审查规格说明 — 快速检查占位符、矛盾、歧义和范围(见下文)
  8. 用户审阅书面规格说明 — 继续之前,请用户审阅规格说明文件
  9. 向用户交付规格说明并停止 — 报告规格说明文件路径;不要调用其他技能,也不要开始实现

流程

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];
    "Deliver spec path to user and STOP" [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?" -> "Deliver spec path to user and STOP" [label="approved"];
}

**最终状态是向用户交付规格说明。停止。**不要调用其他技能,不要开始制定实现计划,也不要编写代码。报告规格说明文件路径,然后结束本轮对话——用户将决定如何处理规格说明。

流程

理解想法:

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

探索方案:

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

呈现设计:

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

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

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

在现有代码库中工作:

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

设计之后

文档:

  • 将经过验证的设计(规格说明)写入 docs/spark/YYYY-MM-DD-<topic>-design.md
    • (用户对规格说明存放位置的偏好优先于此默认位置)
  • 将设计文档提交到 git

规格说明自我审查: 写完规格说明文档后,以全新的视角审阅:

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

直接修复发现的问题。无需重新审查,修复后继续。

用户审查关卡: 规格说明审查循环通过后,请用户在继续之前审阅已编写的规格说明:

“规格说明已编写并提交到 <path>。请审阅,并告诉我在开始编写实施计划之前是否需要修改。”

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

完成 — 在此停止:

  • 向用户报告规格说明文件路径,然后结束当前轮次。
  • 不要调用任何其他技能。
  • 不要开始制定实施计划或编写任何代码。
  • 由用户自行决定如何处理规格说明。

核心原则

  • 一次只问一个问题——不要一次提出多个问题让用户不知所措
  • 优先采用多选题——在可行时,这比开放式问题更容易回答
  • 严格遵循 YAGNI——从所有设计中移除不必要的功能
  • 探索备选方案——确定方案前,始终提出 2–3 种方法
  • 逐步验证——展示设计,并在继续前获得批准
  • 保持灵活——遇到不合理之处时,返回并澄清

视觉辅助工具

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

提供视觉辅助工具: 当你预计接下来的问题会涉及视觉内容(模型图、布局、图表)时,请先征求一次同意:

“我们接下来要讨论的某些内容,或许通过网页浏览器展示会更容易理解。我可以逐步制作模型图、图表、对比图和其他可视化内容。这项功能还比较新,可能会消耗较多令牌。想试试吗?(需要打开一个本地 URL)”

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

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

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

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

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

评论

支持 Markdown