@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,126 @@
1
+ ---
2
+ name: specx-design
3
+ description: specx 流程第三步 — 实现规划。在既有框架下规划功能落地。
4
+ category: software-development
5
+ tags: [specx, design, implementation]
6
+ ---
7
+
8
+ # specx-design:实现规划
9
+
10
+ ## 触发条件
11
+
12
+ 当 spec.md 完成,需要规划「在现有框架下怎么实现」时使用。
13
+
14
+ **输入:** `01-clarify.md` + `02-spec.md`
15
+ **输出:** 按 `docs/specx/templates/` 下的项目专属模板填写(文件名和结构由项目模板定义)
16
+
17
+ ## 前置:了解项目背景(可选)
18
+
19
+ 如果对需求背景、领域概念等有疑问,可查阅 `docs/specx/wiki/` 中的已有知识沉淀。
20
+
21
+ ---
22
+
23
+ ## 核心思想
24
+
25
+ 企业项目大多是从 1-N,不存在技术选型问题。
26
+
27
+ design 的职责是:**在既有框架下,规划这个功能怎么落地。**
28
+
29
+ | 问题 | 回答 |
30
+ |------|------|
31
+ | 这个功能在现有框架的哪个位置 | 模块 / 页面 / 现有组件 |
32
+ | 模块之间怎么组织 | 划分、依赖关系、平台边界 |
33
+ | **各平台详细设计** | 在平台文档里写具体文件变更和实现要点 |
34
+
35
+ ## 文件产出规范
36
+
37
+ 设计文档(由项目专属模板定义文件名)添加文件头(新建时为 `draft`):
38
+
39
+ ```yaml
40
+ ---
41
+ status: draft
42
+ updated: {YYYY-MM-DD}
43
+ history:
44
+ - "v1: 初始创建"
45
+ ---
46
+ ```
47
+
48
+ 新建时为 `draft` 状态。
49
+
50
+ ---
51
+
52
+ ## 流程(Step-by-Step)
53
+
54
+ ### Step 0️⃣ 检查项目专属模板
55
+
56
+ **先检查** `docs/specx/templates/` 下是否有项目专属模板(项目模板定义了设计文档的文件名和结构)。
57
+
58
+ **判断:**
59
+ - ✅ 存在 → 用项目专属模板,继续 Step 1
60
+ - ❌ 不存在 → **先跑 `specx-create-design-template` skill 生成专属模板**,再继续
61
+
62
+ > 项目专属模板是团队自己定义的,比通用模板更贴合项目实际。
63
+
64
+ ---
65
+
66
+ ### Step 1️⃣ 读 spec.md + clarify.md + 项目模板
67
+
68
+ 读三个文件:
69
+ - `01-clarify.md` — 理解功能背景和用户场景
70
+ - `02-spec.md` — 验收标准和功能描述
71
+ - `docs/specx/templates/` 下的项目专属模板 — 了解设计文档格式和必填章节
72
+
73
+ ---
74
+
75
+ ### Step 2️⃣ 规划整体架构
76
+
77
+ 按项目专属模板的格式,填写整体架构章节。
78
+
79
+ > 整体架构回答:这个功能在现有框架的哪个位置、模块之间怎么组织、各层之间怎么衔接。
80
+
81
+ ---
82
+
83
+ ### Step 3️⃣ 各平台详细设计
84
+
85
+ 按项目专属模板填写。文件名和结构由 `docs/specx/templates/` 下的模板定义。
86
+
87
+ **模板来源:** `docs/specx/templates/` 下的项目专属模板(Step 0 确认过存在)。
88
+
89
+ ---
90
+
91
+ ## 质量检查
92
+
93
+ design 完成后自检:
94
+
95
+ ```markdown
96
+ - [ ] 整体架构回答了:功能在现有框架的哪个位置、模块之间怎么组织、各层之间怎么衔接
97
+ - [ ] 各平台详细设计有具体文件变更(精确到包路径和文件名)
98
+ - [ ] 平台边界清晰,没有不清不楚的跨层调用
99
+ - [ ] 和 spec.md 可交叉验证(spec 里的每个验收标准在 design 中有对应实现路径)
100
+ - [ ] 没有引入框架没有的新模式
101
+ - [ ] 可复用组件已列出,没有重复造轮子
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 适用项目类型
107
+
108
+ > 模板从 `docs/specx/templates/` 读取(项目专属)。首次使用需先跑 `specx-create-design-template` 生成模板。
109
+
110
+ ---
111
+
112
+ ## 中断恢复(恢复模式)
113
+
114
+ > ⚠️ 如果之前中断或未完成,从这里开始
115
+
116
+ **动作:** 读取 `docs/specx/templates/` 下的项目专属模板,确认设计文档的文件名和结构,然后检查已有文档的完成度。
117
+
118
+ **判断逻辑:**
119
+ ```
120
+ 读取设计文档(按模板定义的文件名):
121
+ ├── 有整体架构但详细设计为空 → 继续详细设计
122
+ ├── 整体架构缺失 → 回退 Step 2
123
+ └── 全部完成 → 跳到质量检查
124
+ ```
125
+
126
+
@@ -0,0 +1,225 @@
1
+ ---
2
+ name: specx-docs-align
3
+ description: specx 流程第三步 — 文档对齐。通过对话式逐个问题检查 clarify.md、spec.md、design.md 之间的一致性,发现问题立即修正。
4
+ category: software-development
5
+ tags: [specx, requirements, alignment, consistency]
6
+ ---
7
+
8
+ # specx-docs-align:文档对齐检查
9
+
10
+ ## 触发条件
11
+
12
+ 当需要检查 specx 文档链的一致性时使用:
13
+
14
+ - clarify.md 完成 → 检查与 spec.md 之间是否对齐
15
+ - spec.md 完成 → 检查与 design.md 之间是否对齐
16
+ - 任意文档修改后 → 发现不一致需要修正
17
+
18
+ **输入:** `01-clarify.md`、`02-spec.md`、`03-design.md`(可选)
19
+ **输出:** 直接修正文档,不输出报告
20
+
21
+ ---
22
+
23
+ ## 核心思想
24
+
25
+ ### 对话式修正,而非报告式
26
+
27
+ ```
28
+ 读文档
29
+
30
+ 发现一个问题
31
+
32
+ 问一个问题 → 等回答 → 修正文档
33
+
34
+ 继续检查
35
+
36
+ 重复,直到无问题
37
+ ```
38
+
39
+ ---
40
+
41
+ ## 文档问题类型
42
+
43
+ | 问题类型 | 说明 | 处理方式 |
44
+ |---------|------|---------|
45
+ | **漂移(Drift)** | clarify.md 说 A,spec.md 写 B | 问:以哪个为准?然后修正 |
46
+ | **冲突(Conflict)** | 两个文档描述互相矛盾 | 问:应该以哪个为准?然后修正 |
47
+ | **遗漏(Gap)** | clarify.md 写了 spec.md 没有 | 问:需要加到 spec.md 吗? |
48
+ | **过度实现** | spec.md/design.md 超出 clarify.md | 问:这个要保留还是删除? |
49
+ | **名词不一致** | 同一个东西,不同名字 | 问:统一用哪个词?然后全局替换 |
50
+
51
+ ---
52
+
53
+ ## 流程(Step-by-Step)
54
+
55
+ ### Step 1️⃣ 收集文档
56
+
57
+ **动作:** 读取同一子需求下的所有相关文档
58
+
59
+ ```
60
+ clarify.md = 01-clarify.md(必须)
61
+ spec.md = 02-spec.md(必须)
62
+ design.md = 03-design.md(如有)
63
+ ```
64
+
65
+ ---
66
+
67
+ ### Step 2️⃣ 名词对齐(先做这个)
68
+
69
+ > ⚠️ 名词不一致是其他所有问题的根源,先统一
70
+
71
+ **动作:** 扫描三个文档中的关键名词
72
+
73
+ **发现名词不一致时:**
74
+ ```
75
+ 发现名词不一致:
76
+ - clarify.md 用「{词A}」
77
+ - spec.md 用「{词B}」
78
+ - design.md 用「{词C}」(如有)
79
+
80
+ 统一用哪个?
81
+ A. 「{词A}」
82
+ B. 「{词B}」
83
+ C. 「{词C}」
84
+ D. 其他:{输入}
85
+ ```
86
+
87
+ 用户选择后,执行全局替换。
88
+
89
+ ---
90
+
91
+ ### Step 3️⃣ 需求覆盖检查
92
+
93
+ **动作:** 对比 clarify.md 和 spec.md
94
+
95
+ **发现遗漏时(clarify.md 有,spec.md 没有):**
96
+ ```
97
+ 发现遗漏:
98
+ - clarify.md 有「{需求点}」
99
+ - spec.md 没有
100
+
101
+ 需要加到 spec.md 吗?
102
+ A. 加到 spec.md
103
+ B. 从 clarify.md 中删除
104
+ C. 其他:{说明}
105
+ ```
106
+
107
+ **发现过度实现时(spec.md 有,clarify.md 没有):**
108
+ ```
109
+ 发现过度实现:
110
+ - spec.md 有「{需求点}」
111
+ - clarify.md 没有
112
+
113
+ 这个要保留吗?
114
+ A. 保留,加到 clarify.md
115
+ B. 从 spec.md 中删除
116
+ C. 其他:{说明}
117
+ ```
118
+
119
+ ---
120
+
121
+ ### Step 4️⃣ 描述漂移检查
122
+
123
+ **动作:** 对比同一需求的描述是否一致
124
+
125
+ **发现漂移或冲突时:**
126
+ ```
127
+ 发现{漂移/冲突}:
128
+ - clarify.md:「{描述A}」
129
+ - spec.md:「{描述B}»
130
+
131
+ 以哪个为准?
132
+ A. 以 clarify.md 为准 → 修正 spec.md
133
+ B. 以 spec.md 为准 → 修正 clarify.md
134
+ C. 综合两者 → 输入:{综合方案}
135
+ ```
136
+
137
+ ---
138
+
139
+ ### Step 5️⃣ 设计实现检查(如果 design.md 存在)
140
+
141
+ **动作:** 对比 spec.md 和 design.md
142
+
143
+ **发现不一致时:**
144
+ ```
145
+ 发现设计不一致:
146
+ - spec.md:「{描述A}」
147
+ - design.md:「{描述B}»
148
+
149
+ 以哪个为准?
150
+ A. 以 spec.md 为准 → 修正 design.md
151
+ B. 以 design.md 为准 → 修正 spec.md
152
+ C. 其他:{说明}
153
+ ```
154
+
155
+ ---
156
+
157
+ ### Step 6️⃣ 完成
158
+
159
+ **停止条件:**
160
+ ```
161
+ ✅ 无发现问题
162
+ ```
163
+
164
+ **完成标记:**
165
+ ```
166
+ 在 01-clarify.md 或 02-spec.md 的更新记录中追加:
167
+ | {YYYY-MM-DD} | docs-align 完成,无问题 |
168
+
169
+ 如果修正了文档内容,在历史中追加记录(保持原状态不变):
170
+ ```yaml
171
+ updated: {YYYY-MM-DD}
172
+ history:
173
+ - "v1: ..."
174
+ - "v2: docs-align 修正: {简要说明}"
175
+ ```
176
+ ```
177
+
178
+ ---
179
+
180
+ ## 修正执行规则
181
+
182
+ ### 修正前必须确认
183
+
184
+ ```
185
+ 修正前必须问用户,不能直接改。
186
+ 一次只问一个问题。
187
+ 等回答后再执行修正。
188
+ ```
189
+
190
+ ### 修正后验证
191
+
192
+ ```
193
+ 修正后,再次快速扫描相关文档,确认:
194
+ - 没有引入新的不一致
195
+ - 没有遗漏其他相关位置
196
+ ```
197
+
198
+ ---
199
+
200
+ ## 重要提示
201
+
202
+ - **clarify.md 是基准** — spec.md/design.md 不能超出 clarify.md 范围
203
+ - **名词优先统一** — 先统一名词,再检查其他问题
204
+ - **不输出报告** — 直接修正,发现一个修一个
205
+ - **不累积问题** — 发现问题立即问,不堆在一起问
206
+ - **clarify 是源头** — 如果 clarify.md 错了,先修正 clarify.md
207
+
208
+ ---
209
+
210
+ ## 质量检查清单
211
+
212
+ align 完成后,确认:
213
+
214
+ ```
215
+ align 质量自检
216
+ ━━━━━━━━━━━━━━━━━━━━━━
217
+ [ ] 名词已统一(全局替换完成)
218
+ [ ] clarify.md 的每个需求点都有 spec.md 对应
219
+ [ ] spec.md 没有超出 clarify.md 范围
220
+ [ ] 同一需求的描述无漂移
221
+ [ ] 无互相冲突的描述
222
+ [ ] 如有 design.md,已与 spec.md 对齐
223
+ [ ] 无遗漏(clarify.md 有 → spec.md 都有)
224
+ [ ] 无过度实现(spec.md 有 → clarify.md 都有或已确认删除)
225
+ ```
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: specx-executing-plans
3
+ description: Use when you have a task list (04-tasks.md) ready and need to implement it — executes tasks in order, marks progress, and stops when blocked.
4
+ category: software-development
5
+ tags: [specx, execution, implementation]
6
+ ---
7
+
8
+ # specx-executing-plans:执行任务清单
9
+
10
+ ## 触发条件
11
+
12
+ 当 `04-tasks.md` 已完成,需要按清单执行编码时使用。
13
+
14
+ ## 输入
15
+
16
+ - `04-tasks.md`(来自 specx-writing-plans)
17
+ - 对应的设计文档(防止代码漂移的锚点)
18
+
19
+ ## 输出
20
+
21
+ 已完成的代码变更,任务清单更新为已执行状态。
22
+
23
+ ---
24
+
25
+ ## 核心原则
26
+
27
+ **按计划执行,对照设计文档,不凭空发挥。**
28
+
29
+ 任务清单是行动清单,设计文档是锚点。每个任务完成后,对照设计文档检查是否符合预期。有问题立即停下,不猜。
30
+
31
+ ---
32
+
33
+ ## Step 1️⃣ 加载任务清单和设计文档
34
+
35
+ 1. 读 `04-tasks.md`
36
+ 2. 读对应的设计文档
37
+ 3. 理解整体结构:有多少任务,依赖关系如何,并行组有哪些
38
+ 4. 从 Task 1 开始,按顺序执行
39
+
40
+ ---
41
+
42
+ ## Step 2️⃣ 执行单个任务
43
+
44
+ 对每个任务:
45
+
46
+ 1. **标记进行中**:在清单中标注 `🔄 进行中`
47
+ 2. **执行每个 Step**:按清单中的 checkbox 步骤执行
48
+ 3. **对照设计文档验证**:检查是否符合设计意图
49
+ 4. **运行验证**:检查代码是否符合预期
50
+ 4. **标记完成**:标注 `✅ 完成`
51
+
52
+ ---
53
+
54
+ ## Step 3️⃣ 遇到问题立即停下
55
+
56
+ | 情况 | 处理方式 |
57
+ |------|---------|
58
+ | 缺少依赖 | 停下,问用户 |
59
+ | 测试失败 | 停下,查原因,不盲目修复 |
60
+ | 步骤不清晰 | 停下,问用户 |
61
+ | 发现计划错误 | 停下,反馈给用户 |
62
+
63
+ > **遇到问题不猜、不跳过、不强行推进。**
64
+
65
+ ---
66
+
67
+ ## Step 4️⃣ 更新任务状态
68
+
69
+ 每完成一个任务,更新 `04-tasks.md`:
70
+
71
+ ```markdown
72
+ ### Task 1: {任务描述}
73
+ 状态: ✅ 完成
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 质量检查
79
+
80
+ - [ ] 每个 Task 执行后验证通过
81
+ - [ ] 遇到问题立即停下,不盲目继续
82
+ - [ ] 任务状态已更新
83
+ - [ ] 所有 Must 优先级的任务已完成
@@ -0,0 +1,183 @@
1
+ ---
2
+ name: specx-writing-plans
3
+ description: Use after specx-design completes — converts the design document into an actionable task list with file changes, dependencies, and parallel execution groups.
4
+ category: software-development
5
+ tags: [specx, planning, spec-driven]
6
+ ---
7
+
8
+ # specx-writing-plans:设计文档转任务清单
9
+
10
+ ## 触发条件
11
+
12
+ 当 specx-design 完成设计文档后,需要拆解为可执行任务时使用。
13
+
14
+ ## 前置:了解项目背景(可选)
15
+
16
+ 如果对需求背景、领域概念等有疑问,可查阅 `docs/specx/wiki/` 中的已有知识沉淀。
17
+
18
+ ## 输入
19
+
20
+ - specx-design 的输出(项目模板定义的文件名和结构)
21
+
22
+ ## 输出
23
+
24
+ `04-tasks.md`,保存在子需求目录下。
25
+
26
+ 文档包含:
27
+ - 任务清单(带编号、文件变更、依赖关系)
28
+ - 优先级(MoSCoW)
29
+ - 并行执行组
30
+ - 依赖关系图
31
+
32
+ ---
33
+
34
+ ## 核心原则
35
+
36
+ **从设计文档推导任务,不凭空想象。**
37
+
38
+ 每个任务对应设计文档中的一个或一组文件变更。
39
+
40
+ ---
41
+
42
+ ## Step 1️⃣ 分析设计文档结构
43
+
44
+ 读 specx-design 的输出,回答:
45
+
46
+ 1. 涉及哪些模块/平台?(iOS / Android / KMP / Shared)
47
+ 2. 有哪些文件变更?(新增文件、修改文件)
48
+ 3. 哪些可以并行,哪些必须串行?
49
+
50
+ ---
51
+
52
+ ## Step 2️⃣ 提取任务
53
+
54
+ 从设计文档中的文件变更推导任务。
55
+
56
+ 对于每个任务,记录:
57
+
58
+ - **任务描述**:做什么(动词 + 对象)
59
+ - **文件变更**:改哪个文件、新增哪个文件
60
+ - **涉及模块**:哪个平台
61
+
62
+ ---
63
+
64
+ ## Step 3️⃣ 标记并行组
65
+
66
+ 对于每个任务,回答:
67
+
68
+ - 它依赖哪个任务的完成?
69
+ - 哪个任务依赖它?
70
+
71
+ 标记:
72
+ - `[P]` = 可并行(无前置依赖)
73
+ - 无标记 = 有依赖,必须串行
74
+
75
+ ---
76
+
77
+ ## Step 4️⃣ 分配优先级(MoSCoW)
78
+
79
+ | 优先级 | 含义 |
80
+ |--------|------|
81
+ | **Must** | 必须做,没有它功能不可用 |
82
+ | **Should** | 应该做,重要但非关键 |
83
+ | **Could** | 可以做,提升体验,非必需 |
84
+ | **Won't** | 这次不做,明确排除 |
85
+
86
+ ---
87
+
88
+ ## Step 5️⃣ 输出任务清单
89
+
90
+ 每个任务用 `Task N` 编号,编号体现依赖关系。
91
+
92
+ 文件顶部添加文件头(新建时为 `draft`):
93
+
94
+ ```yaml
95
+ ---
96
+ status: draft
97
+ updated: {YYYY-MM-DD}
98
+ history:
99
+ - "v1: 初始创建"
100
+ ---
101
+ ```
102
+
103
+ 新建时为 `draft` 状态。
104
+
105
+ ```markdown
106
+ ## 任务清单:{功能名称}
107
+
108
+ ### Task 1: {任务描述}
109
+
110
+ **文件变更:**
111
+ - 新增:`{文件路径}`
112
+ - 修改:`{文件路径}`
113
+
114
+ **模块:** {iOS / KMP / Android / Shared}
115
+ **优先级:** {Must / Should / Could / Won't}
116
+
117
+ **执行步骤:**
118
+ - [ ] **Step 1:** {具体操作}
119
+ - [ ] **Step 2:** {具体操作}
120
+
121
+ ---
122
+
123
+ ### Task 2: {任务描述}
124
+
125
+ **文件变更:** ...
126
+ **模块:** ...
127
+ **优先级:** {Must / Should / Could / Won't}
128
+ **依赖:** Task 1
129
+
130
+ **执行步骤:**
131
+ - [ ] **Step 1:** {具体操作}
132
+
133
+ ---
134
+
135
+ ### Task 3: {任务描述} [P] ← 无依赖,可与 Task 1 并行
136
+
137
+ ...
138
+ ```
139
+
140
+ > `[P]` = 可并行。标注在任务标题后,同行有多个 `[P]` 表示可并行执行。
141
+
142
+ ---
143
+
144
+ ### 依赖关系图
145
+
146
+ ```mermaid
147
+ graph LR
148
+ Task 1 --> Task 2
149
+ Task 1 --> Task 3
150
+ Task 2 --> Task 4
151
+ Task 3 --> Task 4
152
+ ```
153
+
154
+ **检查:**
155
+ - [ ] 无循环依赖(每个节点只指向编号更大的任务)
156
+ - [ ] 每个有依赖的任务都明确了依赖哪个 Task
157
+
158
+ ---
159
+
160
+ ## 粒度标准
161
+
162
+ AI coding 的粒度不看人类时间,看文件数量和跨层程度。
163
+
164
+ | 类型 | 判断标准 | 处理方式 |
165
+ |------|---------|---------|
166
+ | **过大** | 涉及 5+ 个文件,或跨 3+ 层,或多平台同时改 | 按模块或平台拆成多个子任务 |
167
+ | **合适** | 涉及 1-4 个文件,同一层或相邻层 | 保持 |
168
+ | **过小** | 只需改 1 个文件的 1 处(如加个参数、改个注释) | 合并到相邻任务 |
169
+
170
+ **判断维度:**
171
+ - **文件数量** — 例如:单任务涉及多少文件
172
+ - **跨层程度** — 例如:只改 UI / 改 UI+数据层 / 改 UI+数据层+网络层
173
+ - **多平台** — 例如:是否 iOS / Android / KMP 同时改
174
+
175
+ ---
176
+
177
+ ## 质量检查
178
+
179
+ - [ ] 每个任务有明确的文件变更
180
+ - [ ] 优先级已标注(Must / Should / Could)
181
+ - [ ] 并行任务已标记 `[P]`
182
+ - [ ] 依赖关系无循环
183
+ - [ ] 依赖关系图已绘制