create-vibe-workflow 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +248 -57
  2. package/dist/adapters/next-only/skills.recommend.json +1 -0
  3. package/dist/adapters/node-api/skills.recommend.json +1 -0
  4. package/dist/cli.js +163 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/generator.d.ts.map +1 -1
  7. package/dist/generator.js +255 -44
  8. package/dist/generator.js.map +1 -1
  9. package/dist/questions.d.ts +11 -1
  10. package/dist/questions.d.ts.map +1 -1
  11. package/dist/questions.js +103 -16
  12. package/dist/questions.js.map +1 -1
  13. package/dist/templates/claude-md/CLAUDE.zh-CN.md +51 -46
  14. package/dist/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
  15. package/dist/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
  16. package/dist/templates/commands/gstack/cso.md.ejs +213 -0
  17. package/dist/templates/commands/gstack/office-hours.md.ejs +109 -0
  18. package/dist/templates/commands/gstack/review.md.ejs +192 -0
  19. package/dist/templates/commands/gstack/ship.md.ejs +256 -0
  20. package/dist/templates/commands/opsx/apply.md.ejs +106 -0
  21. package/dist/templates/commands/opsx/archive.md.ejs +88 -0
  22. package/dist/templates/commands/opsx/explore.md.ejs +84 -0
  23. package/dist/templates/commands/opsx/propose.md.ejs +185 -0
  24. package/dist/templates/commands/superpowers/brainstorm.md.ejs +240 -0
  25. package/dist/templates/commands/superpowers/tdd.md.ejs +230 -0
  26. package/dist/templates/commands/superpowers/verify.md.ejs +211 -0
  27. package/dist/templates/commands/workflow/plan.md.ejs +219 -0
  28. package/dist/templates/hooks/check-deps.mjs +66 -65
  29. package/dist/templates/memory/.gitkeep +0 -0
  30. package/dist/templates/memory/MEMORY.md.ejs +88 -0
  31. package/dist/templates/memory/dev-notes.md.ejs +61 -0
  32. package/dist/templates/memory/troubleshooting.md.ejs +30 -0
  33. package/dist/templates/rules/agents.md +49 -49
  34. package/dist/templates/rules/coding-style.md +156 -117
  35. package/dist/templates/rules/development-workflow.md +103 -50
  36. package/dist/templates/rules/git-workflow.md +103 -47
  37. package/dist/templates/rules/hooks.md +159 -0
  38. package/dist/templates/rules/hooks.md.ejs +159 -0
  39. package/dist/templates/rules/memory.md +106 -0
  40. package/dist/templates/rules/memory.md.ejs +106 -0
  41. package/dist/templates/rules/patterns.md +117 -48
  42. package/dist/templates/rules/performance.md +108 -0
  43. package/dist/templates/rules/performance.md.ejs +108 -0
  44. package/dist/templates/rules/security.md +52 -37
  45. package/dist/templates/rules/testing.md +83 -30
  46. package/dist/templates/settings/settings.template.json +18 -2
  47. package/dist/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
  48. package/dist/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
  49. package/dist/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
  50. package/dist/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
  51. package/dist/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
  52. package/dist/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
  53. package/dist/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
  54. package/dist/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
  55. package/dist/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
  56. package/dist/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
  57. package/dist/templates/skills/skill-manifest.json +59 -0
  58. package/dist/templates/skills/skills-lock.template.json +12 -0
  59. package/dist/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
  60. package/dist/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
  61. package/dist/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
  62. package/dist/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
  63. package/dist/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
  64. package/dist/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
  65. package/dist/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
  66. package/dist/utils.d.ts +40 -0
  67. package/dist/utils.d.ts.map +1 -0
  68. package/dist/utils.js +110 -0
  69. package/dist/utils.js.map +1 -0
  70. package/package.json +2 -2
  71. package/templates/claude-md/CLAUDE.zh-CN.md +51 -46
  72. package/templates/claude-md/next-only/CLAUDE.zh-CN.md +46 -0
  73. package/templates/claude-md/node-api/CLAUDE.zh-CN.md +47 -0
  74. package/templates/commands/gstack/cso.md.ejs +213 -0
  75. package/templates/commands/gstack/office-hours.md.ejs +109 -0
  76. package/templates/commands/gstack/review.md.ejs +192 -0
  77. package/templates/commands/gstack/ship.md.ejs +256 -0
  78. package/templates/commands/opsx/apply.md.ejs +106 -0
  79. package/templates/commands/opsx/archive.md.ejs +88 -0
  80. package/templates/commands/opsx/explore.md.ejs +84 -0
  81. package/templates/commands/opsx/propose.md.ejs +185 -0
  82. package/templates/commands/superpowers/brainstorm.md.ejs +240 -0
  83. package/templates/commands/superpowers/tdd.md.ejs +230 -0
  84. package/templates/commands/superpowers/verify.md.ejs +211 -0
  85. package/templates/commands/workflow/plan.md.ejs +219 -0
  86. package/templates/hooks/check-deps.mjs +66 -65
  87. package/templates/memory/.gitkeep +0 -0
  88. package/templates/memory/MEMORY.md.ejs +88 -0
  89. package/templates/memory/dev-notes.md.ejs +61 -0
  90. package/templates/memory/troubleshooting.md.ejs +30 -0
  91. package/templates/rules/agents.md +49 -49
  92. package/templates/rules/coding-style.md +156 -117
  93. package/templates/rules/development-workflow.md +103 -50
  94. package/templates/rules/git-workflow.md +103 -47
  95. package/templates/rules/hooks.md +159 -0
  96. package/templates/rules/memory.md +106 -0
  97. package/templates/rules/patterns.md +117 -48
  98. package/templates/rules/performance.md +108 -0
  99. package/templates/rules/security.md +52 -37
  100. package/templates/rules/testing.md +83 -30
  101. package/templates/settings/settings.template.json +18 -2
  102. package/templates/skills/advanced/caveman/SKILL.md.ejs +144 -0
  103. package/templates/skills/advanced/diagnose/SKILL.md.ejs +159 -0
  104. package/templates/skills/advanced/grill-with-docs/SKILL.md.ejs +154 -0
  105. package/templates/skills/advanced/improve-codebase-architecture/SKILL.md.ejs +172 -0
  106. package/templates/skills/backend/backend-patterns/SKILL.md.ejs +263 -0
  107. package/templates/skills/database/database-migrations/SKILL.md.ejs +202 -0
  108. package/templates/skills/database/postgres-patterns/SKILL.md.ejs +235 -0
  109. package/templates/skills/devops/deployment-patterns/SKILL.md.ejs +228 -0
  110. package/templates/skills/devops/docker-patterns/SKILL.md.ejs +215 -0
  111. package/templates/skills/frontend/frontend-patterns/SKILL.md.ejs +195 -0
  112. package/templates/skills/skill-manifest.json +59 -0
  113. package/templates/skills/skills-lock.template.json +12 -0
  114. package/templates/skills/testing/e2e-testing/SKILL.md.ejs +224 -0
  115. package/templates/skills/workflow/coding-standards/SKILL.md.ejs +143 -0
  116. package/templates/skills/workflow/search-first/SKILL.md.ejs +103 -0
  117. package/templates/skills/workflow/security-review/SKILL.md.ejs +146 -0
  118. package/templates/skills/workflow/strategic-compact/SKILL.md.ejs +108 -0
  119. package/templates/skills/workflow/tdd-workflow/SKILL.md.ejs +104 -0
  120. package/templates/skills/workflow/verification-loop/SKILL.md.ejs +144 -0
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: "OPSX: Explore"
3
+ description: "以探索模式分析问题、研究代码、比较方案,不修改任何代码"
4
+ category: "Workflow"
5
+ tags: ["探索", "分析", "研究", "OpenSpec"]
6
+ ---
7
+
8
+ # OPSX: Explore
9
+
10
+ ## 职责
11
+
12
+ 这是一个 **探索姿态**,不是固定工作流。当用户对某个问题还没有清晰想法时,用这个命令自由探索。**禁止修改任何代码或文件**。
13
+
14
+ ## 你可以做
15
+
16
+ - ✅ **阅读代码**:理解现有实现、接口定义、模块结构
17
+ - ✅ **搜索查询**:用 Grep / Glob 查找相关代码
18
+ - ✅ **分析问题**:定位 Bug 根因、性能瓶颈、设计缺陷
19
+ - ✅ **画图说明**:用 ASCII 图表(流程图、架构图、时序图)帮助理解
20
+ - ✅ **提问澄清**:向用户询问更多细节
21
+ - ✅ **方案对比**:列出多个方案的优劣,辅助决策
22
+ - ✅ **技术调研**:分析某个库 / API / 模式的适用性
23
+ - ✅ **风险评估**:识别实现某个功能可能的风险点
24
+ - ✅ **阅读文档**:查看项目的文档、设计文档、PRD 等
25
+
26
+ ## 你不能做
27
+
28
+ - ❌ **修改任何代码文件**
29
+ - ❌ **创建新文件**
30
+ - ❌ **运行修改文件的命令**(如代码生成器 scaffold)
31
+ - ❌ **标记任务为完成**
32
+ - ❌ **做出设计决策**(只能提供分析供用户决策)
33
+
34
+ ## 常见场景
35
+
36
+ ### 场景 1:模糊的想法
37
+
38
+ 用户说"我想要一个登录功能",但不确定具体要什么。你可以:
39
+ 1. 检查项目是否有已有的认证方案
40
+ 2. 分析常见的登录方案(邮箱密码 / OAuth / 手机号)
41
+ 3. 列出每种方案的优劣
42
+ 4. 询问用户的具体需求
43
+
44
+ ### 场景 2:问题调查
45
+
46
+ 用户说"列表页面很慢"。你可以:
47
+ 1. 查看列表页面代码
48
+ 2. 分析数据查询、渲染逻辑
49
+ 3. 查找潜在性能瓶颈
50
+ 4. 给出优化建议(不实现)
51
+
52
+ ### 场景 3:方案比较
53
+
54
+ 用户说"用 Prisma 还是 Drizzle?"。你可以:
55
+ 1. 阅读项目现有数据库代码
56
+ 2. 对比两个 ORM 的特性和项目适配度
57
+ 3. 给出推荐和理由
58
+ 4. 让用户决策
59
+
60
+ ### 场景 4:代码理解
61
+
62
+ 用户说"这个模块怎么工作的?"你可以:
63
+ 1. 阅读模块代码
64
+ 2. 绘制数据流图
65
+ 3. 解释关键逻辑
66
+
67
+ ## 结束方式
68
+
69
+ 探索没有强制产出,可以自然结束:
70
+
71
+ | 情况 | 做法 |
72
+ |------|------|
73
+ | 用户明确了想法 | 建议下一步运行 `/opsx:propose` |
74
+ | 用户要做决策 | 提供分析摘要,让用户决策 |
75
+ | 用户没有进一步问题 | 询问"还有什么需要探索的吗?" |
76
+ | 用户决定实现 | 建议 `/opsx:propose` → `/opsx:apply` |
77
+
78
+ ## 提示
79
+
80
+ - 探索时不预设结论,保持开放心态
81
+ - 多问"为什么",帮用户理清真实需求
82
+ - 画 ASCII 图表非常有价值,比文字描述高效得多
83
+ - 如果发现明显的问题(如安全漏洞),可以指出但 **不要修复**
84
+ - 探索过程中如果用户提出"能不能帮我改一下",提醒用户切换到 apply 模式
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: "OPSX: Propose"
3
+ description: "将需求想法转化为结构化规格文档(提案 + 设计 + 任务拆解),项目根目录下的 openspec/changes/ 中"
4
+ category: "Workflow"
5
+ tags: ["需求", "规划", "规格", "OpenSpec"]
6
+ ---
7
+
8
+ # OPSX: Propose
9
+
10
+ ## 职责
11
+
12
+ 将用户的一个需求想法(自然语言描述)转化为可执行的结构化规格文档。产出三个文件到 `openspec/changes/<change-name>/` 目录:
13
+
14
+ | 文件 | 内容 |
15
+ |------|------|
16
+ | `proposal.md` | 做什么 & 为什么做、范围界定、P0/P1 优先级划分 |
17
+ | `design.md` | 怎么做、架构方案、关键决策 |
18
+ | `tasks.md` | 可检查的任务清单(每个任务 = 一个独立 commit) |
19
+
20
+ ## 工作模式
21
+
22
+ <%= USER_LEVEL === 'vibe-coder' ? `
23
+ ### 面向非专业编程人员(Vibe Coder)
24
+
25
+ 用户可能没有技术背景。你的任务是:
26
+ - **引导式提问**:用自然语言追问,帮用户理清需求
27
+ - **翻译成技术语言**:把用户的"我想要一个登录页面"翻译为功能规格
28
+ - **不做假设**:不清楚的地方用 AskUserQuestion 确认
29
+ - **给出选项**:设计方案时给 2-3 个选项,说明各自优劣
30
+ ` : `
31
+ ### 面向专业开发者
32
+
33
+ - 可以直接讨论技术方案、架构选型
34
+ - 关注实现效率和技术合理性
35
+ - 可以复用项目已有的模式和约定
36
+ ` %>
37
+
38
+ ## 步骤
39
+
40
+ ### 步骤 1:理解需求
41
+
42
+ - 接收用户自然语言描述的需求
43
+ - 如果描述模糊,用 **AskUserQuestion** 追问澄清:
44
+ - "这个功能解决谁的什么问题?"
45
+ - "你觉得什么样的输出算做完了?"
46
+ - "有没有类似的参考?"
47
+ - 提炼出核心目标和验收标准(1-3 条)
48
+
49
+ ### 步骤 2:确定变更名称
50
+
51
+ - 从需求描述中提取关键词,推导 kebab-case 的变更名称
52
+ - 示例:"添加用户登录功能" → `add-user-login`
53
+ - 示例:"修复订单列表分页问题" → `fix-order-pagination`
54
+ - 如不确定,向用户确认名称
55
+
56
+ ### 步骤 3:创建目录结构
57
+
58
+ 创建 `openspec/changes/<change-name>/` 目录,包含三个文件:
59
+ - `proposal.md`
60
+ - `design.md`
61
+ - `tasks.md`
62
+
63
+ > 如果 `openspec/` 目录不存在,先创建它并添加 `.gitkeep`。
64
+
65
+ ### 步骤 4:编写 proposal.md
66
+
67
+ **做什么 & 为什么做**
68
+ ```
69
+ # 提案:<变更名称>
70
+
71
+ ## 概述
72
+ 用 1-3 句话说明要做什么,为什么做。
73
+
74
+ ## 用户故事
75
+ 作为 <角色>,
76
+ 我想要 <功能/能力>,
77
+ 以便 <业务价值>。
78
+
79
+ ## 验收标准
80
+ - [ ] P0: ...
81
+ - [ ] P0: ...
82
+ - [ ] P1: ...
83
+
84
+ ## 范围界定
85
+
86
+ ### 在范围内
87
+ - 功能 A
88
+ - 功能 B
89
+
90
+ ### 不在范围内(明确排除)
91
+ - 功能 X(后续迭代)
92
+ - 功能 Y(不相关)
93
+
94
+ ## 优先级
95
+
96
+ ### P0(本次必须完成)
97
+ - ...
98
+
99
+ ### P1(设计时考虑,本次不实现)
100
+ - ...
101
+ ```
102
+
103
+ - P0 是必须完成的核心功能,P1 是后续迭代
104
+ - 验收标准要可检查(能用 yes/no 回答)
105
+
106
+ ### 步骤 5:编写 design.md
107
+
108
+ **怎么做**
109
+ ```
110
+ # 设计:<变更名称>
111
+
112
+ ## 架构方案
113
+ <描述整体方案,含组件/模块交互>
114
+
115
+ ## 关键决策
116
+
117
+ ### 决策 1:<标题>
118
+ - **选项**: A / B / C
119
+ - **选择**: A
120
+ - **理由**: ...
121
+ - **影响**: ...
122
+
123
+ ## 数据流
124
+ <数据如何流转,核心流程>
125
+
126
+ ## 接口/API(如适用)
127
+ <接口定义、参数、返回值>
128
+
129
+ ## 影响分析
130
+ <会影响哪些已有模块,是否需要迁移>
131
+ ```
132
+
133
+ - 保持简洁,重点在关键决策和数据流
134
+ - 不需要过度设计,够下一个步骤的任务拆解用即可
135
+
136
+ ### 步骤 6:编写 tasks.md
137
+
138
+ **任务清单**
139
+ ```
140
+ # 任务:<变更名称>
141
+
142
+ ## P0 任务(本次实现)
143
+
144
+ - [ ] `<commit-message>` — <描述>(~<估算行数> 行)
145
+ 涉及文件:<file1>, <file2>
146
+
147
+ ## P1 任务(后续迭代)
148
+
149
+ - [ ] `<commit-message>` — <描述>
150
+ ```
151
+
152
+ - 每个任务对应一个独立 commit
153
+ - 每个任务 50-300 行变更
154
+ - 按照实现顺序排列(依赖前置)
155
+ - 对每个任务标注涉及的文件(方便 AI 定位上下文)
156
+
157
+ ### 步骤 7:展示摘要
158
+
159
+ 生成完成后,用简洁格式向用户展示摘要:
160
+
161
+ ```
162
+ ## 摘要
163
+
164
+ 变更:<change-name>
165
+
166
+ ### 做什么
167
+ <一句话说明>
168
+
169
+ ### P0 任务
170
+ 1. ...
171
+ 2. ...
172
+
173
+ ### P1(后续)
174
+ - ...
175
+ - ...
176
+
177
+ 已生成:openspec/changes/<change-name>/
178
+ ```
179
+
180
+ ## 提示
181
+
182
+ - 如果项目已有其他 `openspec/changes/` 中的提案,先阅读它们以保持一致风格
183
+ - 如果项目有既定的架构约定(如 NestJS 模块结构),在 design.md 中遵循
184
+ - Proposal.md 保持业务语言,design.md 可以进入技术细节
185
+ - 不确定的技术方案,**先研究再决定**,而不是猜测
@@ -0,0 +1,240 @@
1
+ ---
2
+ name: "Brainstorm"
3
+ description: "将模糊想法转化为具体设计文档,在写任何代码前执行。源自 Superpowers brainstorming"
4
+ category: "Planning"
5
+ tags: ["设计", "规划", "头脑风暴", "Superpowers"]
6
+ ---
7
+
8
+ # Brainstorm
9
+
10
+ ## 职责
11
+
12
+ 将用户的一个模糊想法或需求,通过结构化思考转化为具体设计文档。**禁止编写任何实现代码**——本命令的唯一产出是一份设计文档。
13
+
14
+ ## HARD GATE(硬性约束)
15
+
16
+ > **禁止:**
17
+ > - 编写任何实现代码
18
+ > - 创建任何项目脚手架
19
+ > - 修改任何源代码文件
20
+ > - 生成代码片段(除设计文档中的伪代码示例外)
21
+ >
22
+ > **唯一允许的产出:**
23
+ > - `docs/designs/YYYY-MM-DD-<topic>.md` 设计文档
24
+ > - 相关 git commit(仅包含设计文档)
25
+
26
+ ## 工作模式
27
+
28
+ <%= USER_LEVEL === 'vibe-coder' ? `
29
+ ### 面向非专业编程人员(Vibe Coder)
30
+
31
+ 用户可能没有技术背景。你的职责是翻译器和引导者:
32
+ - **用自然语言交流**:避免技术术语,或用通俗比喻解释
33
+ - **帮用户理清想法**:用户可能只有一个模糊的需求,通过提问帮他们聚焦
34
+ - **翻译技术概念**:把用户的"我想要一个类似淘宝的页面"翻译为功能模块
35
+ - **给出简单选项**:设计方案时给 2-3 个选项,用日常语言说明优劣
36
+ - **逐步确认**:每完成一个设计部分就询问"这个部分你觉得对吗?"
37
+ - **控制范围**:提醒用户不要一次做太多,聚焦最小可行方案
38
+ ` : `
39
+ ### 面向专业开发者
40
+
41
+ - 可以直接讨论技术方案、架构模式、设计模式
42
+ - 关注实现效率、可维护性、技术合理性
43
+ - 可以复用项目已有的模式和约定
44
+ - 使用适当的抽象层级讨论(领域层、应用层、基础设施层)
45
+ - 关注可测试性、可扩展性、性能边界
46
+ ` %>
47
+
48
+ ## 步骤
49
+
50
+ ### 步骤 1:探索项目上下文
51
+
52
+ 在开始设计前,了解当前项目:
53
+
54
+ 1. 读取 `docs/` 目录下已有的设计文档和 PRD
55
+ 2. 检查项目结构(`src/`、`packages/` 等)了解已有约定
56
+ 3. 查看最近的 git commit 了解开发节奏
57
+ 4. 如果项目有 `CLAUDE.md`,阅读项目说明
58
+ 5. 如果项目有 `openspec/` 目录,阅读最近的提案
59
+
60
+ **目的**:确保新设计不重复已有功能,符合项目既有模式。
61
+
62
+ ### 步骤 2:逐一问 clarifying questions
63
+
64
+ 一次只问 **一个问题**,等待用户回答后再问下一个。
65
+
66
+ **必须先澄清的问题:**
67
+
68
+ | 问题 | 目的 |
69
+ |------|------|
70
+ | "这个功能解决谁的什么问题?" | 确定用户和目标 |
71
+ | "你觉得什么样的输出算做完了?" | 确定验收标准 |
72
+ | "有没有类似的参考(网站、应用、截图)?" | 对齐视觉/功能预期 |
73
+ | "这个功能影响现有功能吗?" | 确定影响范围 |
74
+ | "你希望什么时候能用上?" | 确定时间约束 |
75
+
76
+ **约束确认:**
77
+
78
+ <%= USER_LEVEL === 'vibe-coder' ? `
79
+ - "你希望用户登录后才能用,还是所有人能用?"
80
+ - "数据存哪里方便?电脑本地还是服务器?"
81
+ - "多少人会用这个功能?"
82
+ ` : `
83
+ - "认证方案用什么?JWT / Session / OAuth?"
84
+ - "数据存储用现有 DB 还是引入新的存储?"
85
+ - "预期并发量级?这可能影响架构选择。"
86
+ ` %>
87
+
88
+ ### 步骤 3:提出 2-3 个方案
89
+
90
+ 针对需求,提出 2-3 个可行方案,每个方案包括:
91
+
92
+ ```
93
+ ## 方案 A:<名称>
94
+ - **做法**:简短的实现描述
95
+ - **优点**:2-3 个优点
96
+ - **缺点**:1-2 个缺点
97
+ - **复杂度**:低/中/高
98
+ - **预估工时**:<时间估算>
99
+
100
+ ## 方案 B:<名称>
101
+ ...
102
+
103
+ ## 方案 C(可选):<名称>
104
+ ...
105
+ ```
106
+
107
+ **提出推荐方案**并说明理由:
108
+
109
+ ```
110
+ ## 推荐:方案 <X>
111
+ 理由:<1-2 句话说明为什么推荐该方案>
112
+ ```
113
+
114
+ 用户确认方案后再进入下一步。
115
+
116
+ ### 步骤 4:分部分设计,逐部分确认
117
+
118
+ 将设计拆分为以下部分,**每完成一部分就向用户确认**:
119
+
120
+ #### 第一部分:功能范围
121
+
122
+ ```
123
+ ## 功能范围
124
+
125
+ ### 在范围内(本次做)
126
+ - 功能 A
127
+ - 功能 B
128
+
129
+ ### 不在范围内(明确排除)
130
+ - 功能 C(后续迭代)
131
+ - 功能 D(不相关)
132
+ ```
133
+
134
+ #### 第二部分:数据模型(如有)
135
+
136
+ ```
137
+ ## 数据模型
138
+
139
+ ### 实体
140
+ - **User**:id, name, email, role, createdAt
141
+ - **Order**:id, userId, status, total, createdAt
142
+
143
+ ### 关系
144
+ - User 1:N Order
145
+ ```
146
+
147
+ #### 第三部分:用户界面 / API
148
+
149
+ ```
150
+ ## 界面 / API
151
+
152
+ ### 页面/端点
153
+ 1. `/login` — 登录页面(邮箱 + 密码)
154
+ 2. `/register` — 注册页面
155
+ ...
156
+ ```
157
+
158
+ #### 第四部分:数据流
159
+
160
+ ```
161
+ ## 数据流
162
+
163
+ ### 核心流程
164
+ 1. 用户访问页面 →
165
+ 2. 系统检查认证状态 →
166
+ 3. 未认证用户重定向到登录页 →
167
+ 4. ...
168
+ ```
169
+
170
+ <%= USER_LEVEL === 'vibe-coder' ? `
171
+ 每次确认时用通俗语言:"这个部分你看对不对?有需要调整的地方吗?"
172
+ ` : `
173
+ 每次确认:"这个设计部分是否符合预期?有没有需要补充的技术细节?"
174
+ ` %>
175
+
176
+ ### 步骤 5:编写设计文档
177
+
178
+ 写入 `docs/designs/YYYY-MM-DD-<topic>.md`,格式:
179
+
180
+ ```markdown
181
+ # 设计:<项目名称>
182
+
183
+ ## 概述
184
+ <1-3 句话说明这个设计要做什么>
185
+
186
+ ## 背景
187
+ <为什么需要这个功能,解决什么问题>
188
+
189
+ ## 方案选择
190
+ <选中的方案和理由>
191
+
192
+ ## 功能范围
193
+ ### 范围内
194
+ ### 范围外
195
+
196
+ ## 数据模型
197
+ ...
198
+
199
+ ## 界面 / API
200
+ ...
201
+
202
+ ## 数据流
203
+ ...
204
+
205
+ ## 影响分析
206
+ <会影响哪些已有模块,是否需要迁移>
207
+
208
+ ## 验收标准
209
+ - [ ] P0: ...
210
+ - [ ] P1: ...
211
+
212
+ ## 设计日期
213
+ <%= GENERATED_AT.split('T')[0] %>
214
+
215
+ ## 设计者
216
+ create-vibe-workflow / Brainstorm command
217
+ ```
218
+
219
+ > 如果 `docs/designs/` 目录不存在,先创建。
220
+
221
+ ### 步骤 6:提交设计文档
222
+
223
+ ```bash
224
+ git add docs/designs/YYYY-MM-DD-<topic>.md
225
+ git commit -m "docs: 添加 <topic> 设计文档"
226
+ ```
227
+
228
+ ## 设计原则
229
+
230
+ - **先理解再设计**:没有理解需求之前不要急于给方案
231
+ - **保持聚焦**:控制范围,避免功能蔓延
232
+ - **逐部分确认**:不要在全部完成后才让用户反馈
233
+ - **记录决策**:设计文档要记录"为什么选 A 不选 B"
234
+ - **足够就好**:设计文档不是详细规格,够下一步规划用即可
235
+
236
+ ## 下一步
237
+
238
+ 设计文档提交后,建议用户运行:
239
+ - `/plan` — 将设计拆解为 commit 级任务
240
+ - 然后进入开发阶段