@culeo/specx 0.1.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.
@@ -0,0 +1,262 @@
1
+ ---
2
+ name: specx-create-design-template
3
+ description: 生成适合自己项目的 design 文档模板(功能级)。用于 specx 流程第三步 specx-design,为每个需求生成设计文档时使用。
4
+ category: software-development
5
+ tags: [specx, design, template, project-specific]
6
+ ---
7
+
8
+ # specx-create-design-template:生成项目专属 design 模板
9
+
10
+ ## 触发条件
11
+
12
+ 项目初始化时或引入 specx 时执行一次,生成的功能设计模板供后续每个需求使用。
13
+
14
+ ## 输入
15
+
16
+ 无(纯交互式)
17
+
18
+ ## 输出
19
+
20
+ `{项目根目录}/docs/specx/templates/` 下的项目专属模板(功能设计文档结构)
21
+
22
+ ---
23
+
24
+ ## 核心概念
25
+
26
+ 这个 skill 生成的是**功能设计文档模板**,不是项目架构描述。
27
+
28
+ 功能设计文档回答的是:**这个具体需求,改哪些文件、加什么代码、调用链是什么**。
29
+
30
+ 每个项目的功能设计文档结构可能不同,取决于:
31
+ - 团队关心的信息(有人要精确到函数签名,有人只关心文件级变更)
32
+ - 平台数量(单平台只需一套实现要点,多平台需要分别写)
33
+ - 团队约束(错误处理规范、线程安全要求等)
34
+
35
+ ---
36
+
37
+ ## Step 0️⃣ 判断项目场景
38
+
39
+ > 问用户
40
+
41
+ ```
42
+ 项目场景:
43
+ A. 0-1 项目 — 从零开始,团队自己定义模板结构
44
+ B. 1-N 项目 — 已有代码,扫描现有设计文档提取结构
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 路径 A:0-1 项目(团队定义)
50
+
51
+ ### Step A1️⃣ 确定平台范围
52
+
53
+ > 问用户
54
+
55
+ ```
56
+ 平台范围:
57
+ - 这个项目有哪些平台?(例如:iOS 单平台 / iOS + Android + KMP 多平台)
58
+ - 设计文档是否需要分平台写?
59
+ ```
60
+
61
+ ### Step A2️⃣ 确定章节结构
62
+
63
+ > 问用户,设计文档需要哪些章节
64
+
65
+ ```
66
+ 章节结构(描述你的实际情况):
67
+ 功能设计文档包含哪些章节?每个章节回答什么问题?(例如:
68
+ - 功能概述:做什么、放在哪个模块
69
+ - 文件变更:新增/修改哪些文件
70
+ - 调用链:入口到数据的完整路径
71
+ - 平台实现要点:各平台怎么实现
72
+ - 可复用组件:用了哪些既有组件
73
+ - 检查项:review 时关注什么)
74
+ ```
75
+
76
+ ### Step A3️⃣ 确定文件级信息粒度
77
+
78
+ > 问用户,文件变更要精确到什么程度
79
+
80
+ ```
81
+ 文件变更信息粒度:
82
+ - 精确到文件名 + 插入点(哪行/哪个方法)
83
+ - 精确到文件名 + 初步代码结构(类名/函数签名)
84
+ - 只写文件名,细节在详细设计阶段补充
85
+ ```
86
+
87
+ ### Step A4️⃣ 确定团队检查项
88
+
89
+ > 问用户,review 时关注什么
90
+
91
+ ```
92
+ 团队检查项(可多选,可自定义):
93
+ A. 线程安全
94
+ B. 内存泄漏
95
+ C. API 兼容性
96
+ D. 错误处理一致性
97
+ E. KMP expect/actual 配对(多平台)
98
+ F. 其他:{描述}
99
+ ```
100
+
101
+ ### Step A5️⃣ 生成模板
102
+
103
+ 基于 A1-A4 生成模板。
104
+
105
+ ---
106
+
107
+ ## 路径 B:1-N 项目(从现有文档提取)
108
+
109
+ ### Step B1️⃣ 收集现有设计文档
110
+
111
+ > 扫描项目目录,收集已有的设计文档
112
+
113
+ 分析 `docs/` 或同等目录下的现有设计文档,记录:
114
+ 1. 文档数量和文件名模式
115
+ 2. 每个文档的章节结构
116
+ 3. 重复出现的章节 vs 偶尔出现的章节
117
+
118
+ ### Step B2️⃣ 提取章节模式
119
+
120
+ > 从现有文档中提取共性章节
121
+
122
+ 分析以下内容:
123
+ 1. **必有章节** — 每个文档都有的是什么
124
+ 2. **可选章节** — 部分文档有的分别是什么
125
+ 3. **章节粒度** — 文件级变更 vs 代码级细节
126
+ 4. **平台处理方式** — 各平台写在一起还是分开
127
+
128
+ ### Step B3️⃣ 提取文件变更模式
129
+
130
+ > 从代码中验证文档描述的准确性
131
+
132
+ 分析以下内容:
133
+ 1. **新增文件位置** — 通常放在哪些目录
134
+ 2. **修改文件模式** — 通常改哪些类/方法
135
+ 3. **接口定义位置** — 接口放在哪个模块
136
+
137
+ ### Step B4️⃣ 确认团队检查项
138
+
139
+ > 问用户,检查项是否完整
140
+
141
+ ```
142
+ 团队检查项(可多选,可自定义):
143
+ A. 线程安全
144
+ B. 内存泄漏
145
+ C. API 兼容性
146
+ D. 错误处理一致性
147
+ E. KMP expect/actual 配对(多平台)
148
+ F. 其他:{描述}
149
+ ```
150
+
151
+ ### Step B5️⃣ 生成模板
152
+
153
+ 基于 B1-B4 提取的实际情况生成模板。**所有路径用实际值**。
154
+
155
+ ---
156
+
157
+ ## Step 6️⃣ 定义模板章节结构
158
+
159
+ 根据 Step 1 确认的平台数量,决定模板拆分方式:
160
+
161
+ ### 单平台项目
162
+
163
+ 一个主模板,包含所有章节:
164
+
165
+ ```markdown
166
+ ## 功能概述
167
+ ### 功能位置(所属模块/页面)
168
+ ### 依赖关系
169
+
170
+ ## 文件变更
171
+ ### 新增文件(含路径)
172
+ ### 修改文件(含插入点)
173
+
174
+ ## 调用链
175
+ ### 入口 → 中间层 → 数据层
176
+
177
+ ## 可复用组件
178
+ ### 已有组件
179
+ ### 新增抽象(如需)
180
+
181
+ ## 平台实现(iOS/Android/...)
182
+ ### 实现要点
183
+
184
+ ## 检查项
185
+ ### {按项目实际检查项填写}
186
+ ```
187
+
188
+ ### 多平台项目(如 iOS + KMP)
189
+
190
+ 拆成主模板 + 各平台子模板:
191
+
192
+ **主模板(design-template.md):**
193
+ ```markdown
194
+ ## 功能概述
195
+ ### 功能位置(所属模块/页面)
196
+ ### 依赖关系
197
+
198
+ ## 调用链
199
+ ### 入口 → 中间层 → 数据层
200
+
201
+ ## 可复用组件
202
+ ### 已有组件
203
+ ### 新增抽象(如需)
204
+ ```
205
+
206
+ **iOS 子模板(design-ios.md):**
207
+ ```markdown
208
+ ## iOS 文件变更
209
+ ### 新增文件(含路径)
210
+ ### 修改文件(含插入点)
211
+
212
+ ## iOS 实现要点
213
+ ### 状态管理
214
+ ### UI 层
215
+ ### 平台特定处理
216
+ ```
217
+
218
+ **KMP 子模板(design-kmp.md):**
219
+ ```markdown
220
+ ## KMP 文件变更
221
+ ### 新增文件(含路径)
222
+ ### 修改文件(含插入点)
223
+
224
+ ## KMP 实现要点
225
+ ### expect/actual 配对
226
+ ### Shared 层 Flow 处理
227
+ ### 平台无关逻辑
228
+ ```
229
+
230
+ > 单平台只生成一个模板文件。多平台生成主模板 + 各平台子模板。文件名由团队决定,上例仅为参考。
231
+
232
+ ---
233
+
234
+ ## Step 7️⃣ 输出到项目目录
235
+
236
+ 将生成的模板写入 `docs/specx/templates/`:
237
+
238
+ **单平台项目:**
239
+ ```
240
+ {项目根目录}/docs/specx/templates/
241
+ └── design-template.md
242
+ ```
243
+
244
+ **多平台项目(如 iOS + KMP):**
245
+ ```
246
+ {项目根目录}/docs/specx/templates/
247
+ ├── design-template.md ← 主模板
248
+ ├── design-ios-template.md ← iOS 平台子模板
249
+ └── design-kmp-template.md ← KMP 平台子模板
250
+ ```
251
+
252
+ > 文件数量和命名由团队自行决定。上例仅为参考。
253
+
254
+ ---
255
+
256
+ ## 质量检查
257
+
258
+ 生成模板后确认:
259
+ - [ ] 章节回答了"这个功能改哪些文件、加什么代码、怎么串联"
260
+ - [ ] 平台章节按项目实际平台命名
261
+ - [ ] 检查项包含团队既有约束
262
+ - [ ] 用户确认可以接受
@@ -0,0 +1,174 @@
1
+ ---
2
+ name: specx-create-rule
3
+ description: specx 流程辅助 skill — 为企业项目建立和维护开发规范。在适当时机帮助用户将隐性约定显性化,形成可持续遵循的规则文档。
4
+ category: software-development
5
+ tags: [specx, rule, convention, knowledge]
6
+ ---
7
+
8
+ # specx-create-rule:规则建立
9
+
10
+ ## 触发条件
11
+
12
+ **主动触发(无需用户明确要求):**
13
+
14
+ 当对话中出现以下信号时,自动考虑触发本 skill:
15
+ - 用户对 AI 输出表达了不满("不对"、"不是这个意思"、"应该按我的习惯")
16
+ - 同一类错误出现 2 次以上
17
+ - 用户纠正了 AI 的编码风格或习惯
18
+ - 讨论中涉及项目特有的约束、边界、默认值
19
+
20
+ **明确触发:**
21
+
22
+ 用户说"加个规则"、"把这个记下来"、"以后都这样写"等明确意图时,直接触发。
23
+
24
+ ---
25
+
26
+ ## 写入前判断(必做)
27
+
28
+ **在新增/修改任何规则之前,必须先判断属于哪种情况:**
29
+
30
+ | 类型 | 判断依据 | 动作 |
31
+ |------|---------|------|
32
+ | **新增** | 规则不存在,且不与任何现有规则冲突 | 新增写入 |
33
+ | **冲突** | 新规则与现有规则矛盾 | 询问用户保留哪个,删除另一个 |
34
+ | **过时** | 现有规则已不适用当前场景 | 删除旧规则,写入新规则 |
35
+ | **细化** | 现有规则过于模糊,需补充细节 | 追加到现有规则,不覆盖 |
36
+ | **替换** | 现有规则方向正确但表述不对 | 替换原文 |
37
+
38
+ **判断步骤:**
39
+ 1. 读取 `docs/specx/rule/` 下所有现有规则
40
+ 2. 与新规则对比:是否同类?是否矛盾?是否重复?
41
+ 3. 确定类型后,再执行对应动作
42
+
43
+ ---
44
+
45
+ ## 规则发现路径
46
+
47
+ ### 路径 1:项目初始化时(docs/specx/rule 不存在)
48
+
49
+ **前置判断:** `docs/specx/rule/` 目录不存在
50
+
51
+ **扫描步骤:**
52
+
53
+ 1. **找已有规范** — 检查是否有 `docs/`, `CONTRIBUTING.md`, `.eslintrc`, `tsconfig.json`, `package.json` 等配置文件
54
+ 2. **扫描源码** — 用 `search_files` 查找代码中的模式:
55
+ - 命名风格(驼峰/下划线/匈牙利)
56
+ - 目录结构约定
57
+ - 常用工具库
58
+ - 分层架构(MVVM / Clean / DDD)
59
+ 3. **推断规则** — 从扫描结果推断项目规范,写入 `docs/specx/rule/`
60
+
61
+ ### 路径 2:对话中途纠正(上下文沉淀)
62
+
63
+ **前置判断:** 用户刚刚纠正了 AI 的输出,且同类问题可能出现多次
64
+
65
+ **动作:**
66
+ 1. 理解用户纠正的本质(表面修改 vs 原则变更)
67
+ 2. 询问用户:"是否需要把这个规则固化到项目的规范文档里?"
68
+ 3. 如用户确认,从纠正内容中提炼规则,写入 `docs/specx/rule/`
69
+
70
+ ### 路径 3:用户明确提出规则
71
+
72
+ **前置判断:** 用户说"加上 X 规则"、"规定 Y 这样做"等
73
+
74
+ **动作:**
75
+ 1. **先判断** — 读取 `docs/specx/rule/` 下现有规则,确认是否已有相关规则
76
+ 2. 按判断结果执行(新增/冲突/过时/细化/替换)
77
+ 3. 更新 `docs/specx/rule/README.md`
78
+
79
+ ### 路径 4:意图不明确
80
+
81
+ **前置判断:** 用户说法模糊,无法判断是加规则还是其他操作
82
+
83
+ **动作:**
84
+ 用 `clarify` 提问:
85
+ > "你提到 '{用户原话}',是想为项目新建一条规则吗?还是其他意图?"
86
+
87
+ ---
88
+
89
+ ## 输出结构
90
+
91
+ ### docs/specx/rule/ 目录结构
92
+
93
+ ```
94
+ docs/specx/rule/
95
+ ├── README.md # 规则总览 & 索引
96
+ ├── naming.md # 命名规范
97
+ ├── workflow.md # 开发流程规范
98
+ ├── code-style.md # 代码风格规范
99
+ └── architecture.md # 架构约定
100
+ ```
101
+
102
+ ### docs/specx/rule/README.md 模板
103
+
104
+ ```markdown
105
+ # 项目规范
106
+
107
+ > 最后更新:{YYYY-MM-DD}
108
+ > 触发场景:AI 在对话中主动学习并维护
109
+
110
+ ## 索引
111
+
112
+ | 规则文件 | 适用场景 |
113
+ |---------|---------|
114
+ | naming.md | 变量/文件/目录命名 |
115
+ | workflow.md | 开发流程、提交流程 |
116
+ | code-style.md | 代码风格、格式要求 |
117
+ | architecture.md | 分层、模块边界 |
118
+
119
+ ## 最近新增规则
120
+
121
+ | 日期 | 规则摘要 | 来源对话 |
122
+ |------|---------|---------|
123
+ | {YYYY-MM-DD} | {规则简述} | {时间戳或上下文} |
124
+ ```
125
+
126
+ ### 单条规则模板
127
+
128
+ ```markdown
129
+ ## {规则标题}
130
+
131
+ **类型:** {naming / workflow / code-style / architecture / other}
132
+ **建立时间:** {YYYY-MM-DD}
133
+ **更新于:** {YYYY-MM-DD}
134
+ **触发场景:** {在什么情况下适用}
135
+ **来源:** {对话上下文摘要}
136
+
137
+ ---
138
+
139
+ **规则内容:**
140
+ {用简洁语言描述规则}
141
+
142
+ **示例:**
143
+ ```demo
144
+ # 正确示例
145
+ {正确写法}
146
+
147
+ # 错误示例
148
+ {错误写法}
149
+ ```
150
+ ```
151
+
152
+ ---
153
+
154
+ ## 创建规则质量清单
155
+
156
+ ```
157
+ [ ] 规则有明确的适用场景(何时用)
158
+ [ ] 规则有正反示例(正确 vs 错误)
159
+ [ ] 规则描述无歧义,不会被误解
160
+ [ ] 规则不与现有其他规则冲突
161
+ [ ] 已在 README.md 中建立索引
162
+ [ ] 如是新项目首次建 rule,先扫描源码推断再写入
163
+ ```
164
+
165
+ ---
166
+
167
+ ## 重要提示
168
+
169
+ - **不是一味新增** — 先判断是新增/冲突/过时/细化/替换,再决定动作
170
+ - **规则是沉淀,不是命令** — 不要强制用户接受规则,只是帮他记录
171
+ - **主动但不打扰** — 发现机会时提示用户,但不反复追问
172
+ - **溯源可查** — 每条规则标注来源对话,便于以后回溯
173
+ - **路径 1 扫描时** — 优先看既有配置文件(eslint/tsconfig/prettier),再推断隐式约定
174
+ - **冲突必须由用户决定** — AI 不能单方面决定保留哪个规则
@@ -0,0 +1,180 @@
1
+ ---
2
+ name: specx-demystify
3
+ title: 需求拆解与任务化
4
+ description: 将 PRD 或原始需求拆解为可执行的子任务清单(子需求),为后续 clarify → design → writing-plans 提供输入。核心策略:抽象层优先,先拆数据模型/状态机/数据流地基,后拆页面/交互实现层。
5
+ status: final
6
+ updated: 2026-06-04
7
+ history:
8
+ - 2026-05-28: 新增决策树(核心复杂度定位)、Step 0 前置检查(已有抽象层不重复拆)
9
+ - 2026-06-04: 迁移到 Raws/ 多源分类 + 00-子需求.md 命名规范
10
+ ---
11
+
12
+ # specx-demystify — 需求拆解与任务化
13
+
14
+ ## 1. 触发条件
15
+
16
+ 在以下情况**必须**执行 demystify:
17
+ - 接收到原始需求文档(PRD / BRD / 产品需求 / 用户反馈等),需要拆解为可执行任务
18
+ - 用户明确要求「拆需求」、「任务化」、「分解」
19
+ - 进入 specx 流程的第一步(demystify → clarify → design → writing-plans)
20
+
21
+ ## 2. 输入
22
+
23
+ | 输入 | 说明 |
24
+ |------|------|
25
+ | 原始需求来源 | 一个或多个文件,放入 `docs/specx/spaces/{yyyyMMdd}-{摘要}/Raws/` 目录,只读不修改 |
26
+ | 项目上下文 | 技术栈(iOS / KMP / Android)、现有框架规范、架构约定 |
27
+
28
+ ### Raws/ 目录规范
29
+
30
+ 所有原始来源文件(PRD、用户反馈、聊天记录、参考文献等)统一放入 `Raws/` 子目录,按分类前缀命名:
31
+
32
+ | 分类 | 前缀 | 说明 |
33
+ |------|------|------|
34
+ | 产品需求文档 | `P` | 正式 PRD / BRD / 产品需求 |
35
+ | 用户输入/语料 | `U` | 用户反馈、聊天记录、访谈纪要 |
36
+ | 参考文献 | `R` | 架构规范、竞品分析、技术参考 |
37
+ | 设计稿 | `D` | Figma / Sketch 导出的 UI spec、设计说明 |
38
+
39
+ 格式:`{前缀}{序号}-{描述}.md`
40
+
41
+ 示例:
42
+ ```
43
+ Raws/
44
+ ├── P001-用户中心PRD.md
45
+ ├── P002-订单模块补充.md
46
+ ├── U001-用户反馈汇总.md
47
+ └── R001-现有订单数据模型.md
48
+ ```
49
+
50
+ ## 3. 输出
51
+
52
+ | 输出 | 格式 | 说明 |
53
+ |------|------|------|
54
+ | 子需求目录集合 | `docs/specx/spaces/{yyyyMMdd}-{摘要}/T-{编号}-{名称}/00-子需求.md` | 每个子需求独立目录,含独立分析 |
55
+ | 拆解决策记录 | 同一 docs 目录下的 `00-拆解策略.md`(可选) | 记录选择策略 A/B 的理由 |
56
+
57
+ ## 4. 拆解策略(二选一)
58
+
59
+ ### 4.1 策略选择决策树
60
+
61
+ 执行拆解前先回答一个问题:
62
+
63
+ > **这个需求的核心复杂度在哪里?**
64
+
65
+ | 核心复杂度 | 选策略 |
66
+ |-----------|--------|
67
+ | 在**数据/状态领域**(实体定义、状态流转、领域规则、跨页面数据同步) | **策略 A**(抽象层优先) |
68
+ | 在**交互/展示领域**(页面布局、动效、内容展示、用户操作流程) | **策略 B**(按业务模块拆) |
69
+
70
+ 如果**两者都有**(多数需求如此),以主导复杂度为准,允许辅策略补充。
71
+
72
+ ### 🎯 策略 A:抽象层优先 ★ 推荐
73
+
74
+ **适用场景**:核心复杂度在数据/状态领域——实体定义、状态机、数据流、领域规则,或多个实现层共享同一数据底座。
75
+
76
+ **核心思路**:先识别需求背后的「抽象层」(数据模型、状态机、数据流、领域规则),再识别「实现层」(页面、交互、UI 组件)。抽象层是所有实现层共用的地基。
77
+
78
+ #### 如何识别抽象层 vs 实现层
79
+
80
+ | 维度 | 抽象层(先拆) | 实现层(后拆) |
81
+ |------|---------------|---------------|
82
+ | 本质 | 数据是什么、状态怎么流转 | 数据在哪里展示、用户怎么操作 |
83
+ | 复用性 | 被多个实现层依赖 | 依赖抽象层 |
84
+ | 变更影响 | 变则牵一发动全身 | 变则仅改局部 |
85
+ | 例子 | 订单状态机、商品数据模型、缓存刷新机制 | 订单列表页、订单详情页、退款弹窗 |
86
+
87
+ #### 拆解步骤
88
+
89
+ **Step 0(前置检查):确认已有抽象层**
90
+ - 检查项目是否已有数据模型规范、状态机模式、数据流约定(如已有项目的 Entity 定义、API 规范层)
91
+ - 对已有抽象层:**不重复拆,直接引用**已有规范的路径/文档
92
+ - 只拆「新增部分」——当前需求引入的新实体、新状态、新数据流
93
+ - 示例:项目已有「商品数据模型」规范 → T-01 不再定义商品模型,改为「按项目现有商品模型扩展新字段」
94
+
95
+ **Step 1:识别新增抽象层**
96
+ - 梳理需求涉及的所有「实体」(Entity)—— 有唯一标识、有生命周期的东西
97
+ - 梳理所有「值对象」(Value Object)—— 没有唯一标识、按值相等判断的东西
98
+ - 梳理「状态机」—— 实体有哪些状态、状态如何流转、流转条件是什么
99
+ - 梳理「数据流」—— 数据从哪里来(API/本地/推送)、怎么缓存、怎么刷新、怎么同步
100
+
101
+ **Step 2:识别实现层**
102
+ - 上层抽象完成后,再看这些抽象在什么场景/页面上被消费
103
+ - 每个独立的用户可见界面 = 一个实现层子需求
104
+ - 实现层子需求必须标明依赖哪些抽象层子需求
105
+
106
+ #### 拆解示例(订单管理后台)
107
+
108
+ ```
109
+ 抽象层:
110
+ T-01: 订单数据模型(Order Entity + 商品线 Item Value Object)
111
+ T-02: 订单状态机(待支付→已支付→已发货→已完成→已取消,含流转条件)
112
+ T-03: 订单数据加载/缓存/刷新机制(列表+详情的数据流)
113
+
114
+ 实现层:
115
+ T-04: 订单列表页(依赖 T-01, T-03)
116
+ T-05: 订单详情页(依赖 T-01, T-02, T-03)
117
+ T-06: 退款处理流程(依赖 T-01 订单状态机扩展)
118
+ T-07: 数据统计看板(依赖 T-01, T-03)
119
+ ```
120
+
121
+ #### 依赖关系与执行顺序
122
+
123
+ ```
124
+ 执行顺序:
125
+ Phase I(独立可并行):T-01 → T-02 → T-03
126
+ Phase II(依赖 Phase I):T-04, T-05, T-06(可并行)
127
+ Phase III(可选):T-07
128
+ ```
129
+
130
+ #### 🎯 策略 B:按业务模块拆
131
+
132
+ **适用场景**:核心复杂度在交互/展示领域——页面布局、动效、内容展示、用户操作流程,数据逻辑简单。
133
+
134
+ **方案**:直接按业务模块/用户故事拆分子需求,每块自包含。相当于「实现层」的拆法,省略抽象层拆分。
135
+
136
+ ---
137
+
138
+ ## 5. 质量检查清单
139
+
140
+ 输出前逐一确认:
141
+
142
+ - [ ] 选择了正确的拆解策略(抽象层优先 or 按业务模块)
143
+ - [ ] 抽象层子需求都被**独立识别**,未与实现层混在一起
144
+ - [ ] 实现层子需求明确标注了依赖的抽象层子需求编号
145
+ - [ ] 每个子需求的粒度可用 AI coding 一次完成(参考 writing-plans 的粒度原则)
146
+ - [ ] 子需求总数在合理范围(5~15 个,超出需考虑合并或分层)
147
+ - [ ] 抽象层子需求的执行顺序必须优先于所有依赖它的实现层子需求
148
+ - [ ] **Step 0 前置检查已执行**——确认了哪些抽象层已存在(引用路径),只拆新增部分
149
+
150
+ ## 6. 输出规范
151
+
152
+ 每个子需求目录 `/T-{编号}-{名称}/` 下:
153
+
154
+ ```
155
+ T-001-订单数据模型/
156
+ ├── 00-子需求.md # 从原始需求摘录,可独立分析
157
+ └── (后续 clarify/design/writing-plans 产物)
158
+ ```
159
+
160
+ `00-子需求.md` 模板:
161
+
162
+ ```markdown
163
+ ## T-{编号}: {子需求名称}
164
+
165
+ ### 来源
166
+ > 摘录自 `Raws/{文件名}`
167
+
168
+ {从原始需求中摘录相关段落}
169
+
170
+ ### 范围
171
+ {明确本子需求包含什么、不包含什么}
172
+
173
+ ### 依赖
174
+ - 依赖:T-{编号1}, T-{编号2}
175
+ - 被依赖:T-{编号3}, T-{编号4}
176
+
177
+ ### 类型
178
+ - [ ] 抽象层(数据模型/状态机/数据流/领域规则)
179
+ - [ ] 实现层(页面/交互/UI 组件)
180
+ ```