ai-spec-tool 0.1.2 → 0.1.3
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.
- package/README.md +8 -1
- package/assets/.agents/skills/bugfix/SKILL.md +33 -17
- package/assets/.agents/skills/plan/SKILL.md +39 -319
- package/assets/.agents/skills/plan/assets/templates/plan.md +47 -0
- package/assets/.agents/skills/plan-executor/SKILL.md +88 -305
- package/assets/.agents/skills/plan-executor/assets/templates/module-plan.md +26 -0
- package/assets/.agents/skills/plan-executor/assets/templates/project-plan.md +24 -0
- package/assets/.agents/skills/plan-executor/assets/templates/summary-module.md +17 -0
- package/assets/.agents/skills/plan-executor/assets/templates/summary-plan.md +18 -0
- package/assets/.agents/skills/plan-executor/assets/templates/summary-project.md +16 -0
- package/assets/.agents/skills/rules-creator/SKILL.md +25 -5
- package/assets/.agents/skills/rules-creator/assets/architecture-gen.md +59 -210
- package/assets/.agents/skills/rules-creator/assets/conventions-gen.md +85 -0
- package/assets/.agents/skills/rules-creator/assets/glossary-gen.md +46 -0
- package/assets/.agents/skills/rules-creator/assets/interface-gen.md +62 -0
- package/assets/.agents/skills/rules-creator/assets/ui-architecture-gen.md +35 -286
- package/assets/.agents/skills/rules-creator/assets/ui-template-gen.md +24 -114
- package/assets/.agents/skills/spec-executor/SKILL.md +53 -109
- package/assets/AGENTS.md +14 -30
- package/assets/docs/_shared/adr/README.md +4 -0
- package/assets/docs/_shared/conventions.md +37 -0
- package/assets/docs/_shared/glossary.md +4 -0
- package/assets/docs/architecture/README.md +6 -0
- package/assets/docs/plan/README.md +11 -0
- package/assets/docs/plan/index.yaml +2 -0
- package/assets/docs/plan/summary.md +2 -0
- package/assets/docs/requirements/README.md +5 -0
- package/assets/docs/requirements/index.yaml +2 -0
- package/assets/docs/specs/README.md +6 -0
- package/bin/ai-spec-tool.js +60 -10
- package/package.json +1 -1
- package/assets/.agents/skills/rules-creator/assets/naming-rule-gen.md +0 -77
- package/assets/.agents/skills/rules-creator/assets/vision-gen.md +0 -613
|
@@ -1,225 +1,59 @@
|
|
|
1
|
-
# Architecture File Generator (Spec) —
|
|
1
|
+
# Architecture File Generator (Spec) — Multi-Project
|
|
2
2
|
|
|
3
3
|
## 0) 生成目标(不可变)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* 禁止讨论:
|
|
11
|
-
|
|
12
|
-
* 具体框架
|
|
13
|
-
* 具体库
|
|
14
|
-
* 具体实现代码
|
|
15
|
-
* 允许讨论:
|
|
16
|
-
|
|
17
|
-
* 架构形态
|
|
18
|
-
* 模块职责
|
|
19
|
-
* 依赖边界
|
|
20
|
-
* 文件与目录落点规则
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 0.1 前置依赖(强制)
|
|
25
|
-
|
|
26
|
-
* `docs/global/vision.md`
|
|
27
|
-
|
|
28
|
-
### 流程(不可跳过)
|
|
29
|
-
|
|
30
|
-
1. 读取并理解 `vision.md`
|
|
31
|
-
2. 若缺失 → **只允许输出以下内容**:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
缺少依赖 [docs/global/vision.md]
|
|
35
|
-
回复「Y」开始创建依赖。
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
3. 若存在 → 继续后续流程
|
|
4
|
+
- 输出文件(每个 project 各一份):
|
|
5
|
+
- `./docs/architecture/<project>/architecture.md`
|
|
6
|
+
- `./docs/architecture/<project>/layer_rules.yaml`
|
|
7
|
+
- 输出格式:Markdown + YAML
|
|
8
|
+
- 语言:中文
|
|
9
|
+
- **rules-creator 不做任何依赖检查**
|
|
39
10
|
|
|
40
11
|
---
|
|
41
12
|
|
|
42
|
-
## 1)
|
|
13
|
+
## 1) Project 发现与确认(强制)
|
|
43
14
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
15
|
+
1. 扫描 `/projects/*`:
|
|
16
|
+
- 若存在一个或多个目录:列为候选 project(名称=目录名)
|
|
17
|
+
- 若不存在或为空:必须询问用户本仓库要建立哪些 project
|
|
18
|
+
2. 对每个 project,询问:
|
|
19
|
+
- 类型(frontend / backend / other)
|
|
20
|
+
- 框架(单一框架名)
|
|
21
|
+
- code_root(默认 `/projects/<project>`)
|
|
22
|
+
3. 用户确认后,生成对应的 `docs/architecture/<project>/` 文件
|
|
47
23
|
|
|
48
24
|
---
|
|
49
25
|
|
|
50
|
-
##
|
|
51
|
-
|
|
52
|
-
> ⚠️ 本题用于确定本项目的**框架组合**,以约束 AI 后续产出一致性。
|
|
53
|
-
> 允许选择 **1–3 个框架** 组成组合(例如「前端 + 后端」),
|
|
54
|
-
> **每个条目必须是单一框架**,禁止在同一条目中拼接多个框架(例如「X + Y」)。
|
|
55
|
-
|
|
56
|
-
### 系统建议(一次性给出)
|
|
57
|
-
|
|
58
|
-
基于 `vision.md` 判定交付形态后,系统给出 1–2 组框架组合备选,并对每个备选用 **2–4 句**说明:
|
|
59
|
-
|
|
60
|
-
* 适合点(为什么匹配目标 / 迭代速度 / 风险)
|
|
61
|
-
* 代价点(会带来什么约束或复杂度)
|
|
62
|
-
* 适用边界(本项目哪些范围用它)
|
|
63
|
-
|
|
64
|
-
输出格式(固定):
|
|
65
|
-
|
|
66
|
-
**方案 A:框架组合**
|
|
67
|
-
|
|
68
|
-
* 前端:<框架名>(目录:`/projects/<frontend>`)
|
|
69
|
-
* 后端:<框架名>(目录:`/projects/<backend>`)
|
|
70
|
-
* 其他(可选):<框架名>(目录:`/projects/<other>`)
|
|
71
|
-
* 互通方式:<高层次说明,例如:契约驱动 / API 约定 / 共享协议文件>
|
|
26
|
+
## 2) 架构内容(每个 project 都需完成)
|
|
72
27
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
28
|
+
### Q1. 架构形态与职责
|
|
29
|
+
系统给出建议,用户确认/修改:
|
|
30
|
+
- 本 project 的职责范围
|
|
31
|
+
- 与其他 project 的协作边界
|
|
76
32
|
|
|
77
|
-
|
|
33
|
+
### Q2. 分层与职责(Layered Model)
|
|
34
|
+
系统生成建议分层(按该 project 类型),用户确认/修改:
|
|
35
|
+
- 每层职责
|
|
36
|
+
- 允许的模块类型
|
|
78
37
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
38
|
+
### Q3. 依赖规则(结构化 YAML)
|
|
39
|
+
系统生成 `layer_rules.yaml`,必须覆盖所有层级:
|
|
40
|
+
- 字段:`from / allow / forbid / notes`
|
|
41
|
+
- `allow/forbid` 互斥且穷尽
|
|
83
42
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
* 适用边界:…
|
|
43
|
+
### Q4. 目录与落点规则
|
|
44
|
+
明确本 project 的目录落点与边界
|
|
87
45
|
|
|
88
|
-
###
|
|
46
|
+
### Q5. 跨项目互通规则(若存在多个 project)
|
|
47
|
+
说明互通方式、契约落点、修改边界、版本兼容策略
|
|
89
48
|
|
|
90
|
-
|
|
91
|
-
|
|
49
|
+
### Q6. 禁止事项(Extra Forbids)
|
|
50
|
+
3–6 条可判定的禁止规则
|
|
92
51
|
|
|
93
52
|
---
|
|
94
53
|
|
|
95
|
-
##
|
|
54
|
+
## 3) 输出结构(固定)
|
|
96
55
|
|
|
97
|
-
|
|
98
|
-
> 作为后续依赖规则与代码落点的基础参考。
|
|
99
|
-
|
|
100
|
-
### Step 1:系统生成模块建议(必须)
|
|
101
|
-
|
|
102
|
-
系统需基于以下依据动态生成模块模型:
|
|
103
|
-
|
|
104
|
-
* Q1 选择的框架组合(按各框架分别给出模块类型建议)
|
|
105
|
-
* `vision.md` 描述的产品目标与复杂度
|
|
106
|
-
* 当前阶段对可维护性与演进速度的需求
|
|
107
|
-
|
|
108
|
-
系统将给出一组**推荐的分层类型**,用于说明各层职责边界与协作关系。
|
|
109
|
-
|
|
110
|
-
**以下为一组示例模块类型(仅作为范例):**
|
|
111
|
-
|
|
112
|
-
* Adapter:负责对接并隔离外部系统,作为内部调用的统一入口
|
|
113
|
-
* Core:提供与业务无关的基础能力或通用功能
|
|
114
|
-
* Service:承载主要业务流程与状态规则
|
|
115
|
-
* ComponentLogic:负责组件级逻辑与状态组织,不涉及展示
|
|
116
|
-
* ComponentView:负责组件的展示结构与交互呈现
|
|
117
|
-
* Component:组合逻辑模块与视图模块,形成可复用的组件单元
|
|
118
|
-
|
|
119
|
-
> 实际模块名称、数量与职责可根据项目需求进行调整,但应保持职责单一、边界清晰、依赖方向明确。
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
### Step 2:用户确认
|
|
124
|
-
|
|
125
|
-
> 对这份「分层与职责建议」:
|
|
126
|
-
> A) 接受作为当前项目的模块划分参考
|
|
127
|
-
> B) 调整(可修改模块名称、职责描述或合并 / 拆分模块)
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Q3. 依赖规则(Dependency Rules)— 结构化强制规则
|
|
132
|
-
|
|
133
|
-
### Step 1:系统生成依赖规则(必须)
|
|
134
|
-
|
|
135
|
-
系统必须输出**结构化依赖规则**(YAML),并覆盖所有层级:
|
|
136
|
-
|
|
137
|
-
* 使用字段:`from / allow / forbid / notes`
|
|
138
|
-
* `allow/forbid` 只接受分层名称(Adapter/Core/Service/ComponentLogic/ComponentView/Component)
|
|
139
|
-
* `allow` 与 `forbid` 必须互斥且穷尽
|
|
140
|
-
* 必须覆盖所有层级,保证可被 AI 直接解析
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
### Step 2:用户确认
|
|
145
|
-
|
|
146
|
-
> 对这份「依赖规则(结构化)」:
|
|
147
|
-
> A) 接受
|
|
148
|
-
> B) 修改(请直接改文字)
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Q4. 目录与落点规则(Project Layout Rules)
|
|
153
|
-
|
|
154
|
-
> ⚠️ 本题必须结合:
|
|
155
|
-
>
|
|
156
|
-
> * 当前专案实际目录结构
|
|
157
|
-
> * Q1 选定的技术栈方向
|
|
158
|
-
> * Q2 模块模型
|
|
159
|
-
> * Q3 模块依赖规则
|
|
160
|
-
|
|
161
|
-
### Step 1:系统生成草案(必须)
|
|
162
|
-
|
|
163
|
-
系统需提供:
|
|
164
|
-
|
|
165
|
-
1. **目录与落点清单**(每条目录只负责一种职责)
|
|
166
|
-
2. **一句总规则**:所有模块必须落在对应目录,不得跨目录落点
|
|
167
|
-
3. **跨框架互通落点规则**:明确契约/接口/共享协议的落点位置与修改边界
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## Q4.1 跨项目互通规则(Inter-Project Rules)
|
|
172
|
-
|
|
173
|
-
> ⚠️ 本题用于明确 `/projects` 下多个工程之间的协作边界与互通方式,
|
|
174
|
-
> 以避免实现时出现重复定义、协议不一致或跨工程越界修改。
|
|
175
|
-
|
|
176
|
-
### Step 1:系统生成草案(必须)
|
|
177
|
-
|
|
178
|
-
系统需提供:
|
|
179
|
-
|
|
180
|
-
1. **互通方式清单**:每一组 project 之间如何互通(API / 契约 / 共享协议等)
|
|
181
|
-
2. **契约落点位置**:协议或接口定义文件放在哪里(例如 `/projects/<frontend>/...` 或 `/projects/<backend>/...` 或共享目录)
|
|
182
|
-
3. **修改边界**:哪些工程可修改、哪些只能读取
|
|
183
|
-
4. **版本与兼容**(若适用):协议变更时的兼容策略
|
|
184
|
-
|
|
185
|
-
### Step 2:用户确认
|
|
186
|
-
|
|
187
|
-
> 对这份「跨项目互通规则」:
|
|
188
|
-
> A) 接受
|
|
189
|
-
> B) 修改(请直接改)
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
### Step 2:用户确认
|
|
194
|
-
|
|
195
|
-
> 对这份「目录与模块落点规则」:
|
|
196
|
-
> A) 接受
|
|
197
|
-
> B) 修改(请直接改)
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## Q5. 禁止事项(Extra Forbids)
|
|
202
|
-
|
|
203
|
-
> ⚠️ 本题用于补充 **不属于依赖矩阵** 的特殊禁令,
|
|
204
|
-
> 例如业务裁决位置、状态机归属、SSOT 写入边界等。
|
|
205
|
-
|
|
206
|
-
### Step 1:系统生成草案(必须)
|
|
207
|
-
|
|
208
|
-
系统需提供 **3–6 条**「特殊禁令」,要求:
|
|
209
|
-
|
|
210
|
-
* 不重复 `layer_rules` 已覆盖的依赖方向限制
|
|
211
|
-
* 禁令必须是可判定的行为约束(可被 executor 核对)
|
|
212
|
-
* 语气必须为「禁止」或「不得」
|
|
213
|
-
|
|
214
|
-
### Step 2:用户确认
|
|
215
|
-
|
|
216
|
-
> 对这份「禁止事项」:
|
|
217
|
-
> A) 接受
|
|
218
|
-
> B) 修改(请直接改)
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## 最终输出结构(固定)
|
|
56
|
+
`architecture.md` 结构:
|
|
223
57
|
|
|
224
58
|
```md
|
|
225
59
|
# 项目架构(Architecture)
|
|
@@ -236,14 +70,29 @@ layer_rules: ...
|
|
|
236
70
|
## 禁止事项
|
|
237
71
|
```
|
|
238
72
|
|
|
73
|
+
`layer_rules.yaml` 结构:
|
|
74
|
+
```yaml
|
|
75
|
+
layer_rules:
|
|
76
|
+
- from: <Layer>
|
|
77
|
+
allow: [<Layer>, ...]
|
|
78
|
+
forbid: [<Layer>, ...]
|
|
79
|
+
notes: <optional>
|
|
80
|
+
```
|
|
81
|
+
|
|
239
82
|
---
|
|
240
83
|
|
|
241
|
-
##
|
|
84
|
+
## 4) 对话输出(唯一允许的文字输出)
|
|
85
|
+
|
|
86
|
+
<<<
|
|
87
|
+
已完成 Architecture 文件的生成:
|
|
88
|
+
`<文件名>`(需为可点击超链接)
|
|
242
89
|
|
|
243
|
-
|
|
90
|
+
已完成 Layer Rules 文件的生成:
|
|
91
|
+
`<文件名>`(需为可点击超链接)
|
|
244
92
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
3
|
|
93
|
+
【下一步】请选择一项:
|
|
94
|
+
1. 若包含前端 project → 生成 UI 规范(ui-architecture)
|
|
95
|
+
2. 生成通用规范(conventions)或术语表(glossary)
|
|
96
|
+
3. 进入计划生成(plan)
|
|
97
|
+
请回复:1/2/3
|
|
98
|
+
>>>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Conventions File Generator (Spec)
|
|
2
|
+
|
|
3
|
+
## 0) 生成目标(不可变)
|
|
4
|
+
- 输出文件:`./docs/_shared/conventions.md`
|
|
5
|
+
- 输出格式:Markdown
|
|
6
|
+
- 语言:中文为主
|
|
7
|
+
- **rules-creator 不做任何依赖检查**
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1) 交互入口(必须逐步询问)
|
|
12
|
+
|
|
13
|
+
依序询问并确认:
|
|
14
|
+
1. 项目目标与范围(做什么 / 不做什么)
|
|
15
|
+
2. 成功标准(可验证)
|
|
16
|
+
3. 文档与 spec 的写作约束(是否禁止实现细节)
|
|
17
|
+
4. 命名规范(文件/目录/变量/类)
|
|
18
|
+
5. 依赖表达方式(引用 layer rules / architecture 的方式)
|
|
19
|
+
6. 状态文件规则(`.processing.md` / `.done.md` 的含义与使用时机)
|
|
20
|
+
7. 计划执行流程(Plan → Project-Plan → Module-Plan → Spec-Executor)
|
|
21
|
+
|
|
22
|
+
每题都需要用户确认(A 接受 / B 修改)。
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2) 输出结构(固定)
|
|
27
|
+
|
|
28
|
+
```md
|
|
29
|
+
# 通用规范(Conventions)
|
|
30
|
+
|
|
31
|
+
## 项目目标与范围
|
|
32
|
+
## 成功标准
|
|
33
|
+
## 文档与 Spec 书写规范
|
|
34
|
+
## 命名规范
|
|
35
|
+
## 依赖表达方式
|
|
36
|
+
## 状态文件规则
|
|
37
|
+
## 计划执行流程
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 计划执行流程(固定要求)
|
|
41
|
+
- 生成多个 `project-plan.md` 后:先给出每个 project 的简短摘要,询问是否修改,确认后继续。
|
|
42
|
+
- 生成多个 `<module>-plan.md` 后:先给出每个 module 的简短摘要,询问是否修改,确认后才可进入 spec-executor。
|
|
43
|
+
- 所有多题澄清必须标注进度:`问题[当前/总数]`。
|
|
44
|
+
- 所有关键流程阶段必须标注进度:`流程[当前/总数]`。
|
|
45
|
+
- 优先使用 `docs/plan/index.yaml` 作为计划索引;若不存在再扫描目录。
|
|
46
|
+
- 生成 plan / project-plan / module-plan 后应产出对应 `summary.md` 以降低后续读取成本。
|
|
47
|
+
- summary 文件路径建议:
|
|
48
|
+
- `docs/plan/<plan-id>/summary.md`
|
|
49
|
+
- `docs/plan/<plan-id>/projects/<project>/summary.md`
|
|
50
|
+
- `docs/plan/<plan-id>/projects/<project>/modules/<module>.summary.md`
|
|
51
|
+
- summary 模板参考:
|
|
52
|
+
- `assets/templates/summary-plan.md`
|
|
53
|
+
- `assets/templates/summary-project.md`
|
|
54
|
+
- `assets/templates/summary-module.md`
|
|
55
|
+
- 若存在 Interface 规格书:
|
|
56
|
+
- 其路径必须写入 `plan.md / project-plan.md / module-plan.md`
|
|
57
|
+
- 最终写入每个 `module-spec.md` 的 frontmatter
|
|
58
|
+
|
|
59
|
+
## 规格书优先规则
|
|
60
|
+
- 当接口与 DB 细节讨论已清晰,可先生成 Interface 规格书,再进入 plan。
|
|
61
|
+
|
|
62
|
+
## Interface 规格书
|
|
63
|
+
- 位置:`docs/requirements/<spec-id>.md`
|
|
64
|
+
- 索引:`docs/requirements/index.yaml`
|
|
65
|
+
- 命名:`001-支付流程` 形式
|
|
66
|
+
|
|
67
|
+
#### 进度标识示例(必须遵守)
|
|
68
|
+
- `问题[1/4] 这次变更的目标是什么?`
|
|
69
|
+
- `问题[2/4] 这次的成功标准有哪些?`
|
|
70
|
+
- `流程[1/3] 读取 plan 并建立执行清单`
|
|
71
|
+
- `流程[2/3] 生成 project-plan 与 module-plan`
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 3) 对话输出(唯一允许的文字输出)
|
|
76
|
+
|
|
77
|
+
<<<
|
|
78
|
+
已完成通用规范文件的生成:
|
|
79
|
+
`<文件名>`(需为可点击超链接)
|
|
80
|
+
|
|
81
|
+
【下一步】请选择一项:
|
|
82
|
+
1. 生成术语表(glossary)
|
|
83
|
+
2. 生成系统架构(architecture)
|
|
84
|
+
请回复:1/2
|
|
85
|
+
>>>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Glossary File Generator (Spec)
|
|
2
|
+
|
|
3
|
+
## 0) 生成目标(不可变)
|
|
4
|
+
- 输出文件:`./docs/_shared/glossary.md`
|
|
5
|
+
- 输出格式:Markdown
|
|
6
|
+
- 语言:中文为主
|
|
7
|
+
- **rules-creator 不做任何依赖检查**
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1) 交互入口(必须逐步询问)
|
|
12
|
+
|
|
13
|
+
请用户列出本项目关键术语(至少 8 个),并逐条确认:
|
|
14
|
+
- 术语
|
|
15
|
+
- 定义
|
|
16
|
+
- 边界(包含/不包含)
|
|
17
|
+
- 常见误用(可选)
|
|
18
|
+
|
|
19
|
+
若用户给不全:你必须给出建议清单让用户挑选。
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2) 输出结构(固定)
|
|
24
|
+
|
|
25
|
+
```md
|
|
26
|
+
# 术语表(Glossary)
|
|
27
|
+
|
|
28
|
+
## 术语
|
|
29
|
+
- **<Term>**:<定义>
|
|
30
|
+
- 范围:<包含/不包含>
|
|
31
|
+
- 常见误用:<可选>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 3) 对话输出(唯一允许的文字输出)
|
|
37
|
+
|
|
38
|
+
<<<
|
|
39
|
+
已完成术语表文件的生成:
|
|
40
|
+
`<文件名>`(需为可点击超链接)
|
|
41
|
+
|
|
42
|
+
【下一步】请选择一项:
|
|
43
|
+
1. 生成系统架构(architecture)
|
|
44
|
+
2. 生成计划(plan)
|
|
45
|
+
请回复:1/2
|
|
46
|
+
>>>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Interface Spec Generator (Spec)
|
|
2
|
+
|
|
3
|
+
## 0) 生成目标(不可变)
|
|
4
|
+
- 输出文件:`./docs/requirements/<spec-id>.md`
|
|
5
|
+
- 索引文件:`./docs/requirements/index.yaml`
|
|
6
|
+
- 输出格式:Markdown + YAML
|
|
7
|
+
- 语言:中文为主
|
|
8
|
+
- **rules-creator 不做任何依赖检查**
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1) 命名规则(强制)
|
|
13
|
+
- `<spec-id>` 采用 `001-支付流程` 这种格式
|
|
14
|
+
- 递增 index 由 `docs/requirements/index.yaml` 决定
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2) 内容范围(强制)
|
|
19
|
+
此规格书允许实现细节,必须包含:
|
|
20
|
+
- DB 设计(表、字段、索引、约束、迁移)
|
|
21
|
+
- API/接口设计(路径、方法、参数、响应、状态码)
|
|
22
|
+
- 关键流程与状态变更
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 3) 输出结构(固定)
|
|
27
|
+
|
|
28
|
+
```md
|
|
29
|
+
---
|
|
30
|
+
spec_id: <spec-id>
|
|
31
|
+
scope: <一句话范围>
|
|
32
|
+
projects: [<project>, ...]
|
|
33
|
+
created_at: <YYYY-MM-DD>
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
# 规格书(Interface)
|
|
37
|
+
|
|
38
|
+
## 背景与目标
|
|
39
|
+
## 数据库设计
|
|
40
|
+
## 接口设计
|
|
41
|
+
## 流程与状态
|
|
42
|
+
## 边界与非目标
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 4) 二次确认(强制)
|
|
48
|
+
写完后输出一段摘要,让用户确认/修改。
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 5) 对话输出(唯一允许的文字输出)
|
|
53
|
+
|
|
54
|
+
<<<
|
|
55
|
+
已完成规格书文件的生成:
|
|
56
|
+
`<文件名>`(需为可点击超链接)
|
|
57
|
+
|
|
58
|
+
【下一步】请选择一项:
|
|
59
|
+
1. 进入计划生成(plan)
|
|
60
|
+
2. 继续补充规格书
|
|
61
|
+
请回复:1/2
|
|
62
|
+
>>>
|