通过协作对话使用 AskUserQuestionTool 将想法转化为完整的设计和规格说明。
首先检查模型,然后确定意图(新建或更新),了解当前项目背景,提出问题(每次最多 2 个相关问题)以完善想法。理解要构建的内容后,展示设计并获取用户批准,然后撰写设计文档。
.sdd-workspace 配置文件中 workspace_path 指定的根目录{workspace}/spec/ 下在任何操作之前,必须读取工作区配置:
.sdd-workspaceworkspace_path 作为工作区根目录 {workspace}/sdd-global-init 初始化工作区。" 并 停止验证工作区目录存在,如果不存在提示用户重新初始化。
在展示设计并获得用户批准之前,**不要**调用任何实现技能、编写任何代码、搭建任何项目或采取任何实现行动。这适用于每个项目,无论看似多么简单。
每个项目都要经过这个过程。待办事项列表、单功能工具、配置更改——都是如此。"简单"项目是未经审视的假设造成最多浪费工作的地方。设计可以很短(对于真正简单的项目只需几句话),但你 必须 展示并获得批准。
你 必须 为每个项目创建任务并按顺序完成:
模型检查 — 检测当前模型是否为 Opus(检查 system prompt 中的模型信息);如果不是 Opus,输出纯文本建议(非阻塞:无论如何都继续)
确定意图 — 使用 AskUserQuestionTool 询问:"新建需求" 或 "更新已有需求"
{workspace}/spec/ 中与今天日期匹配的现有 feature_YYYYMMDD_* 文件夹,找到最大序列号,自动生成下一个 YYYYMMDD_F{NNN},然后 AI 生成 kebab-case 主题(最多 5 个词)并通过 AskUserQuestionTool 让用户确认/修改{workspace}/spec/ 中所有 feature_* 文件夹;如果 ≤4 个,作为 AskUserQuestionTool 选项列出;如果 >4 个,显示最近的 3-4 个作为选项(用户可通过 "Other" 输入)检查现有文档 — 检查 {workspace}/spec/feature_YYYYMMDD_FNNN_topic/spec-design.md 是否存在;如果存在,读取它
探索项目背景 — 检查文件、文档、最近的提交
{workspace}/spec/global/ 存在:
a. 读取 {workspace}/spec/global/constraints.md 了解架构约束(新功能必须遵守)
b. 读取 {workspace}/spec/global/index.md 了解已完成功能的全貌
c. 读取相关的 {workspace}/spec/global/domains/*.md 了解该领域的现有决策提出澄清问题 — 每次最多 2 个相关问题,通过 AskUserQuestionTool,了解目的/约束/成功标准
提出 2-3 种方案 — 包含权衡和你的推荐
展示设计 — 分部分展示,通过 AskUserQuestionTool 获取每个部分的批准
撰写设计文档 — 保存到 {workspace}/spec/feature_YYYYMMDD_FNNN_topic/spec-design.md
生成设计配图 — 撰写文档时,收集需要视觉说明的部分的配图规格(使用下面的两层触发规则);写完后,启动一个后台子代理批量生成所有配图 via /gen-image;保存到 {workspace}/spec/feature_YYYYMMDD_FNNN_topic/images/,在 spec-design.md 中用  引用
dot
digraph brainstorming {
"Model check" [shape=box];
"Determine intent\n(new/update)" [shape=diamond];
"Auto-generate ID + confirm topic" [shape=box];
"Select existing feature" [shape=box];
"Check existing doc" [shape=box];
"Explore project context" [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];
"Generate design images" [shape=doublecircle];
"Model check" -> "Determine intent\n(new/update)";
"Determine intent\n(new/update)" -> "Auto-generate ID + confirm topic" [label="new"];
"Determine intent\n(new/update)" -> "Select existing feature" [label="update"];
"Auto-generate ID + confirm topic" -> "Check existing doc";
"Select existing feature" -> "Check existing doc";
"Check existing doc" -> "Explore project context";
"Explore project context" -> "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" -> "Collect image specs";
"Collect image specs" -> "Launch subagent\n(batch gen images)" [label="background"];
"Launch subagent\n(batch gen images)" [shape=doublecircle];
}
终止状态是在写完设计文档后启动后台子代理生成配图。 主流程 不等待 子代理完成。立即向用户输出纯文本消息(中文),建议下一步: /sdd-writing-plans。 不要自动 git commit。
模型检查:
检查 system prompt 中的模型信息(例如 "powered by the model named Opus" 或包含 "opus" 的模型 ID)
如果不是 Opus:输出以下纯文本消息并立即继续(非阻塞): text
⚠️ 当前模型不是 Opus,建议切换到 Opus 以获得最佳头脑风暴质量。输入 /model 切换模型。
确定意图并生成 feature ID:
YYYYMMDDspec/ 目录中匹配 feature_YYYYMMDD_F*(相同日期)的文件夹spec/ 中所有 feature_* 目录YYYYMMDD 日期{workspace}/spec/feature_YYYYMMDD_FNNN_topic/spec-design.md 是否已存在理解想法:
{workspace}/spec/global/ 存在,读取 {workspace}/spec/global/constraints.md、 {workspace}/spec/global/index.md 和相关的 {workspace}/spec/global/domains/*.md 了解现有架构约束和已完成功能——新设计必须与这些约束保持一致;如果需要新的/更改的约束,在设计文档中明确标注探索方案:
展示设计:
写文档:
{workspace}/spec/feature_YYYYMMDD_FNNN_topic/spec-design.md生成设计配图:
两层触发系统——AI 决定哪些部分需要配图,不需要用户确认,配图数量无上限:
强制(必须生成):
建议(AI 根据信息密度判断):
配图类型 style mapping:
配图类型Style prefix宽高比UI 交互流Clean flat flowchart, minimal16:9页面布局/线框图Figma-style wireframe3:4 或 9:16(竖屏)/ 16:9(横屏)架构/数据流Technical diagram, vector style16:9概念图示Flat design, soft pastel1:1 或 16:9状态机/状态转换Clean flat state diagram, rounded nodes with arrows, minimal16:9实体关系图Technical ER diagram, vector style, standard entity notation16:9
配图生成工作流:
 占位符引用run_in_background: true),通过为每个规格调用 /gen-image 批量生成所有配图子代理 prompt 模板:
Generate the following design images for
{workspace}/spec/feature_YYYYMMDD_FNNN_topic/images/. For each image, call/gen-imagewith the specified parameters. Images: [list of {filename, description, style_prefix, aspect_ratio}]
通用配图参数:
Text labels in Simplified Chinese unless technical English terms1K(草稿质量)NN-type.png(例如 01-flow.png, 02-wireframe.png, 03-state.png, 04-er.png){workspace}/spec/feature_YYYYMMDD_FNNN_topic/images/NN-type.png启动子代理后,向用户输出(中文):"✅ 设计文档已写入 {workspace}/spec/feature_YYYYMMDD_FNNN_topic/spec-design.md,配图正在后台生成中(完成后会通知)。\n\n 建议下一步: 运行 /sdd-writing-plans 生成执行计划。"
设计文档用 中文 撰写。"方案设计" 部分没有固定的子部分——根据功能需要动态组织(例如架构、API 设计、数据模型、用户场景、交互流程等)。
markdown
# Feature: YYYYMMDD_FNNN - topic
## 需求背景
描述当前的问题或动机,为什么需要这个 feature。
## 目标
- 核心目标 1
- 核心目标 2
## 方案设计
(根据需求项目情况,动态增加子章节,如架构设计、接口设计、数据模型、用户场景与交互流程等)
> 在适合的章节中插入设计配图:``
## 实现要点
关键技术决策、难点、依赖。
## 约束一致性
说明本方案与 `{workspace}/spec/global/constraints.md` 中架构约束的一致性。如有新增或变更约束,在此标注。
(如 `{workspace}/spec/global/` 不存在则省略此章节)
## 验收标准
- [ ] 标准 1
- [ ] 标准 2
/gen-image 批量生成所有配图,不阻塞主流程