ai-spec-tool 0.1.2 → 0.1.4

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 CHANGED
@@ -8,11 +8,18 @@ Installable agents + rules for AI spec workflows.
8
8
  npx ai-spec-tool init
9
9
  ```
10
10
 
11
+ Optional:
12
+ ```bash
13
+ npx ai-spec-tool init --ask
14
+ npx ai-spec-tool init --force
15
+ ```
16
+
11
17
  ### What it does
12
18
 
13
19
  - Installs `.agents/` into the current project (merge-safe).
20
+ - Scaffolds `docs/` base structure (no preset projects).
14
21
  - Updates/creates `AGENTS.md` using an anchored block so local edits are preserved.
15
- - Conflicts are written as `*.incoming` next to the original file.
22
+ - Conflicts are written as `*.incoming` next to the original file (unless `--force` or `--ask` resolves them).
16
23
 
17
24
  ### AGENTS.md update strategy
18
25
 
package/assets/AGENTS.md CHANGED
@@ -1,30 +1 @@
1
- 你必须先分析用户在开发专案中的需求类型,并严格分类:
2
-
3
- - plan执行(plan-executor)
4
- 用户想要执行plan文件
5
- `./docs/plan`为plan文件路径,去里面找用户描述的plan
6
- 1.若plan文件后缀为.processing.md
7
- → 使用 skill: spec-executor
8
- 2.若plan文件后缀为.done.md
9
- 回复用户 > 此plan已完成
10
- 3.若plan文件后缀为.md
11
- → 使用 skill: plan-executor
12
-
13
- - 规则文件创建(rules-creator)
14
- 用户想要生成规则文件
15
- → 使用 skill: rules-creator
16
-
17
- - 异常修复(bugfix)
18
- 用户提供报错信息或描述异常行为
19
- → 使用 skill: bugfix
20
-
21
- - 功能增修(update)
22
- 用户希望修改或新增功能
23
- - 若该功能不需要建立一个目前不存在的系统 → 直接修改代码与对应 spec
24
- - 若该功能需要建立一个新的系统/修改已有系统就可以 → 使用 skill: plan
25
-
26
- - 系统规划(plan)
27
- 用户明确需要一个新的系统、模块或功能体系
28
- → 使用 skill: plan
29
-
30
- 若意图并非以上,直接回答用户即可
1
+ 若有./docs/global/architecture.md,当对话满足#plan模式自动触发条件: 执行 skills spec-creator
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: plan
3
+ description: 当用户想要执行一个plan
4
+ ---
5
+ #依赖检查
6
+
7
+ 依赖文件清单:
8
+ - ./docs/global/vision.md
9
+ - ./docs/global/architecture.md
10
+ - ./docs/projects/*/architecture.md
11
+
12
+ ACTION: 请先检查专案环境下是否存在依赖清单内的所有文档
13
+ IF: 存在缺失文件
14
+ 输出规则:
15
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
16
+ - __MISSING_FILE_NAME__ 缺失的文件名
17
+ - 若有多个缺失文件就多行显示
18
+ - 若用户选择 开始创建文档: 执行 skill: spec-creator
19
+ ACTION:
20
+ <<结合输出规则,输出以下内容>>
21
+ ## 您需要先创建文档:
22
+ - __MISSING_FILE_NAME__
23
+ ---
24
+ 1) 开始创建文档
25
+ <<输出以上内容,不得再输出任何其他内容>>
26
+ ENDIF
27
+
28
+ ACTION: 阅读所有依赖文件内容来了解专案,并在遵守文件内定义的规范约束下执行后续步骤
29
+ IF: 对话记录尚未符合./docs/global/architecture.md的 #plan模式自动触发条件
30
+ 继续和用户聊相关话题,直到 #plan模式自动触发条件 满足
31
+ ENDIF
32
+
33
+ #输出文件
34
+ *仅在以上所有流程完成后才执行
35
+
36
+ 输出格式:Markdown
37
+ 语言:中文为主
38
+ 输出文件内容规则:
39
+ __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
40
+ __2__ 列出架构能力目标(列表)。
41
+ 不得写功能描述。
42
+ 每条必须可被success_criteria验证。
43
+ __3__ 列出可验证完成标准(列表)。
44
+ 格式:用户行为 -> 系统状态变化 -> 可观察结果。
45
+ 必须覆盖所有goal。
46
+ __4__ 列出明确不做事项(列表)。
47
+ 不得引入新的领域主权。
48
+ __5__ 以 module 为单位列出本 plan 涉及的所有 modules
49
+ 必须覆盖所有受影响 子项目(project)
50
+ 必须覆盖所有受影响 module(包括 change:none)
51
+ 必须遵守 layer 依赖方向。
52
+ * 必须以 **module 为单位** 描述
53
+ * 每个 module **必须包含以下字段**:
54
+ * name
55
+ * project
56
+ * layer type
57
+ * change(add | update | refactor | remove | none)
58
+ * purpose
59
+ * capabilities(reads / writes / events / subscribes / calls)
60
+ * ownership(ssot_facts / state_owner)
61
+ * dependencies(must / forbid)
62
+ * constraints(must / must_not)
63
+ * collaboration
64
+ * 若 state_owner = true,必须包含 state_model
65
+
66
+ __6__ 定义关键use_cases。
67
+ 每条必须映射到某个module并体现状态变化。
68
+
69
+ * use_cases:
70
+ - trigger:
71
+ actor:
72
+ action:
73
+ target:
74
+ outcome:
75
+
76
+ __7__ 记录已确定的实际接口/DB栏位/函数格式结构结论(列表)。
77
+ 必须结构化、可直接复用;不写讨论过程。
78
+
79
+ * contracts:
80
+ - type: api | db | function
81
+ name:
82
+ spec:
83
+ project:
84
+
85
+ __8__ 定义hard规则(列表)。
86
+ 必须为全局不可违反架构规则。
87
+ 违反则判定plan无效。
88
+ __9__ 提供最小修改流程。
89
+ 必须:
90
+ - 覆盖所有modules
91
+ - 每步只包含一个module
92
+ - 使用有序列表
93
+ - 按依赖自底向上排序
94
+ - 不得包含实现细节、函数名、API、文件路径
95
+ - 若依赖顺序无法确定,必须停止并提示补问
96
+ __PLAN_NAME__ 为<index>-<plan目标>
97
+ <index>:根据 `./docs/plan/` 目录下已有文件夹数量,以递增顺序生成(001, 002, 003 ...)
98
+ <plan目标>:根据本次变更的核心意图自动总结生成,不包含技术名词或实现细节
99
+ 输出文件内容结构:
100
+ <<以下为实际输出文件格式,需结合输出规则生成部分动态内容>>
101
+ #### intent
102
+ #goal
103
+ __2__
104
+
105
+ #success_criteria
106
+ __3__
107
+
108
+ #non_goals
109
+ __4__
110
+
111
+ #### modules
112
+ __5__
113
+
114
+ #### flows
115
+ __6__
116
+
117
+ #### contracts
118
+ __7__
119
+
120
+ #### rules
121
+ __8__
122
+
123
+ #### execution_steps
124
+ __9__
125
+
126
+ <<以上为实际输出文件格式,需结合输出规则生成部分动态内容>>
127
+
128
+ [MARK:1]
129
+ 输出规则:
130
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
131
+ - __输出文件内容__ 显示基于[输出文件内容规则/输出文件内容结构]总结输出文件内容
132
+ ACTION:
133
+ <<结合输出规则,输出以下内容>>
134
+ ```md
135
+ __输出文件内容__
136
+ ```
137
+ <<输出以上内容>>
138
+ ACTION:
139
+ <<输出以下内容>>
140
+ ## 是否接受将以上总结输出并保存成文件?
141
+ ---
142
+ 1) 接受
143
+ 2) 提出修改
144
+ <<输出以上内容,不得再输出任何其他内容>>
145
+ IF: 用户选择接受
146
+ ACTION: 将最终确认的输出版本保存到./docs/plan/__PLAN_NAME__/plan.md
147
+ ACTION:
148
+ <<输出以下内容>>
149
+ > ✅文件已保存于./docs/plan/__PLAN_NAME__/plan.md
150
+ <<输出以上内容>>
151
+ ENDIF
152
+
153
+ IF: 用户没有选择接受
154
+ ACTION: 带着用户的修改提议,回到[MARK:1]重新执行
155
+ ENDIF
156
+
157
+ 输出规则:
158
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
159
+ - plan执行时候请依照execution_steps,一序执行实际的代码修改
160
+ ACTION:
161
+ <<结合输出规则,输出以下内容>>
162
+ ## 接下来
163
+ ---
164
+ 1) 依照plan计划执行代码修改
165
+ 2) 直接描述
166
+ <<输出以上内容,不得再输出任何其他内容>>
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: spec-creator
3
+ description: 当用户想要生成某个spec.md
4
+ ---
5
+ 输出规则:
6
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
7
+ - 若用户选择vision: 执行 assets/vision_gen.md 内容
8
+ - 若用户选择architecture: 执行 assets/architecture_gen.md 内容
9
+ - 若用户选择project_architecture: 执行 assets/project_architecture_gen.md 内容
10
+ IF: 你可以通过上下文确定用户想要生成什么文件
11
+ ACTION: 直接执行对应的 xxx_gen.md 内容
12
+ ENDIF
13
+
14
+
15
+ ACTION:
16
+ <<结合输出规则,输出以下内容>>
17
+ ## 请选择您想生成的文件
18
+ ---
19
+ 1) vision
20
+ 2) architecture
21
+ 3) project_architecture
22
+ <<输出以上内容,不得再输出任何其他内容>>
@@ -0,0 +1,242 @@
1
+ #依赖检查
2
+
3
+ 依赖文件清单:
4
+ - ./docs/global/vision.md
5
+
6
+ ACTION: 请先检查专案环境下是否存在依赖清单内的所有文档
7
+ IF: 存在缺失文件
8
+ 输出规则:
9
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
10
+ - __MISSING_FILE_NAME__ 缺失的文件名
11
+ - 若有多个缺失文件就多行显示
12
+ - 若用户选择 开始创建文档: 执行 skill: spec-creator
13
+ ACTION:
14
+ <<结合输出规则,输出以下内容>>
15
+ ## 您需要先创建文档:
16
+ - __MISSING_FILE_NAME__
17
+ ---
18
+ 1) 开始创建文档
19
+ <<输出以上内容,不得再输出任何其他内容>>
20
+ ENDIF
21
+
22
+ ACTION: 阅读所有依赖文件内容来了解专案,并在遵守文件内定义的规范约束下执行后续步骤
23
+ #问题询问
24
+
25
+ 输出规则:
26
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
27
+ - __ADVICE__ 基于[先前的对话内容,所有依赖文件](如过有),结合问题给与建议答案
28
+ 可参考的输出格式`
29
+ 后端(Next.js): Stripe(订阅支付)
30
+ 官网(React): 多语言(自建)
31
+ 管理后台(React): 用户权限管理(自建)`记得输出的是多个子专案的组合(若用户目标只需要单一子专案就能实现,那也可以)
32
+ ACTION:
33
+ <<结合输出规则,输出以下内容>>
34
+ ## [1/8] 怎样的子专案技术栈组合能实现你的专案需求?
35
+ ---
36
+ 1) ✨__ADVICE__
37
+ 2) 已部署,直接参考`projects/`内结构
38
+ 3) 直接描述
39
+ <<输出以上内容,不得再输出任何其他内容>>
40
+ ACTION: 等待用户回答
41
+
42
+ 输出规则:
43
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
44
+ - 子专案名称需与技术框架一一对应
45
+ - 技术框架列表在./docs/global/architecture.md里的 #技术框架组合
46
+ - 输出格式: <技术框架名称> = <子专案名称>
47
+ - [举例] 后端(Next.js) = api
48
+ - [举例] 官网(React) = web
49
+ ACTION:
50
+ <<结合输出规则,输出以下内容>>
51
+ ## [2/8] 请为每个子专案定义名称
52
+ ---
53
+ 1) ✨__ADVICE__
54
+ 2) 已部署,直接参考`projects/`内结构
55
+ 3) 直接描述
56
+ <<输出以上内容,不得再输出任何其他内容>>
57
+ ACTION: 等待用户回答
58
+
59
+ 输出规则:
60
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
61
+ - __ADVICE__ 基于[先前的对话内容,所有依赖文件](如过有),结合问题给与建议答案
62
+ 每个流程发生在哪一端,端的专案名称必须明确
63
+ ACTION:
64
+ <<结合输出规则,输出以下内容>>
65
+ ## [3/8] 关键的端到端链路有哪些?
66
+ - 可列出多条
67
+ ---
68
+ 1) ✨__ADVICE__
69
+ 2) 直接描述
70
+ <<输出以上内容,不得再输出任何其他内容>>
71
+ ACTION: 等待用户回答
72
+
73
+ 输出规则:
74
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
75
+ - __ADVICE__ 基于[先前的对话内容,所有依赖文件](如过有),结合问题给与建议答案
76
+ ACTION:
77
+ <<结合输出规则,输出以下内容>>
78
+ ## [4/8] 功能新增修改计划的多端执行流程?
79
+ - [举例]DB → server → web
80
+ ---
81
+ 1) ✨__ADVICE__
82
+ 2) 无
83
+ 3) 直接描述
84
+ <<输出以上内容,不得再输出任何其他内容>>
85
+ ACTION: 等待用户回答
86
+
87
+ 输出规则:
88
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
89
+ - __ADVICE__ 可以用上一题的答案的第一个流程完成后
90
+ ACTION:
91
+ <<结合输出规则,输出以下内容>>
92
+ ## [5/8] plan模式执行的最低标准?
93
+ - [举例]当DB的更改细节确定后
94
+ ---
95
+ 1) ✨__ADVICE__
96
+ 2) 理清更改需求后
97
+ 3) 直接描述
98
+ <<输出以上内容,不得再输出任何其他内容>>
99
+ ACTION: 等待用户回答
100
+
101
+ ACTION:
102
+ <<输出以下内容>>
103
+ ## [6/8] 发布前必须遵循的验证流程?
104
+ - [举例]staging验证通过 → 端到端测试通过 → 部署到生产环境
105
+ ---
106
+ 1) 无
107
+ 2) 直接描述
108
+ <<输出以上内容,不得再输出任何其他内容>>
109
+ ACTION: 等待用户回答
110
+
111
+ ACTION:
112
+ <<输出以下内容>>
113
+ ## [7/8] 跨端API有没有统一规范?
114
+ - [举例]响应格式、错误码、鉴权方式、trace_id 传递规则
115
+ ---
116
+ 1) 无
117
+ 2) 直接描述
118
+ <<输出以上内容,不得再输出任何其他内容>>
119
+ ACTION: 等待用户回答
120
+
121
+ ACTION:
122
+ <<输出以下内容>>
123
+ ## [8/8] 有没有所有端都明确的禁止事项?
124
+ - [举例]不能用某类云服务
125
+ ---
126
+ 1) 无
127
+ 2) 直接描述
128
+ <<输出以上内容,不得再输出任何其他内容>>
129
+ ACTION: 等待用户回答
130
+
131
+ #输出文件
132
+ *仅在以上所有流程完成后才执行
133
+
134
+ 输出格式:Markdown
135
+ 语言:中文为主
136
+ 输出文件内容规则:
137
+ __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
138
+ __2__ 必须列出子专案的[目录,技术栈,功能性名称]
139
+ <<以下为举例>>
140
+ ## axg-web
141
+ - 目录: /projects/axg-web
142
+ - 技术栈: Next.js
143
+ - 描述: 网页前端
144
+ ## axg-server
145
+ - 目录: /projects/axg-server
146
+ - 技术栈: NestJS
147
+ - 描述: 后端
148
+ <<以上为举例>>
149
+ __3__ 关键的端到端链路有哪些?
150
+ - 可列出多条
151
+ __4__ 功能新增修改计划的多端执行流程?
152
+ - [举例]DB → server → web
153
+ __5__ 发布前必须遵循的验证流程?
154
+ - [举例]staging验证通过 → 端到端测试通过 → 部署到生产环境
155
+ __6__ 跨端API有没有统一规范?
156
+ - [举例]响应格式、错误码、鉴权方式、trace_id 传递规则
157
+ __8__ 有没有什么所有端都必须遵守的限制条件?
158
+ - [举例]只能用现有技术栈、必须符合法规、预算上限
159
+ __9__ 有没有所有端都明确的禁止事项?
160
+ - [举例]不能用某类云服务
161
+ __10__ 把 plan模式执行的最低标准 这题的答案写进来
162
+ 输出文件内容结构:
163
+ <<以下为实际输出文件格式,需结合输出规则生成部分动态内容>>
164
+ #✅要做什么
165
+ #子专案目录
166
+ __2__
167
+
168
+ #关键链路列表
169
+ __3__
170
+
171
+ #落地流程
172
+ __4__
173
+
174
+ #验证流程
175
+ __5__
176
+
177
+ #跨端API规范
178
+ __6__
179
+
180
+ #⛔守则
181
+ #限制条件
182
+ __8__
183
+
184
+ #禁止事项
185
+ __9__
186
+
187
+ #plan模式自动触发条件
188
+ __10__
189
+
190
+ <<以上为实际输出文件格式,需结合输出规则生成部分动态内容>>
191
+
192
+ [MARK:1]
193
+ 输出规则:
194
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
195
+ - __输出文件内容__ 显示基于[输出文件内容规则/输出文件内容结构]总结输出文件内容
196
+ ACTION:
197
+ <<结合输出规则,输出以下内容>>
198
+ ```md
199
+ __输出文件内容__
200
+ ```
201
+ <<输出以上内容>>
202
+ ACTION:
203
+ <<输出以下内容>>
204
+ ## 是否接受将以上总结输出并保存成文件?
205
+ ---
206
+ 1) 接受
207
+ 2) 提出修改
208
+ <<输出以上内容,不得再输出任何其他内容>>
209
+ IF: 用户选择接受
210
+ ACTION: 将最终确认的输出版本保存到./docs/global/architecture.md
211
+ ACTION:
212
+ <<输出以下内容>>
213
+ > ✅文件已保存于./docs/global/architecture.md
214
+ <<输出以上内容>>
215
+ ENDIF
216
+
217
+ IF: 用户没有选择接受
218
+ ACTION: 带着用户的修改提议,回到[MARK:1]重新执行
219
+ ENDIF
220
+
221
+ IF: projects/下有还没有部署的子专案
222
+ ACTION:
223
+ <<输出以下内容>>
224
+ ## 是否部署目前的技术框架组合?
225
+ ---
226
+ 1) 好
227
+ 2) 跳过
228
+ <<输出以上内容,不得再输出任何其他内容>>
229
+ IF: 用户回答`1 or 好`
230
+ ACTION: 逐一部署技术框架,基于选择的技术框架以专案名称,用其最官方的指令部署到./projects/<子专案名称>,
231
+ ACTION: 将每个子专案的启动指令都加入.vscode/launch.json
232
+ ENDIF
233
+
234
+ ENDIF
235
+
236
+ ACTION:
237
+ <<输出以下内容>>
238
+ ## 接下来...
239
+ ---
240
+ 1) 建立每个子专案的architecture文件
241
+ 2) 直接描述
242
+ <<输出以上内容,不得再输出任何其他内容>>
@@ -0,0 +1,128 @@
1
+ #依赖检查
2
+
3
+ 依赖文件清单:
4
+ - ./docs/global/vision.md
5
+ - ./docs/global/architecture.md
6
+
7
+ ACTION: 请先检查专案环境下是否存在依赖清单内的所有文档
8
+ IF: 存在缺失文件
9
+ 输出规则:
10
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
11
+ - __MISSING_FILE_NAME__ 缺失的文件名
12
+ - 若有多个缺失文件就多行显示
13
+ - 若用户选择 开始创建文档: 执行 skill: spec-creator
14
+ ACTION:
15
+ <<结合输出规则,输出以下内容>>
16
+ ## 您需要先创建文档:
17
+ - __MISSING_FILE_NAME__
18
+ ---
19
+ 1) 开始创建文档
20
+ <<输出以上内容,不得再输出任何其他内容>>
21
+ ENDIF
22
+
23
+ ACTION: 阅读所有依赖文件内容来了解专案,并在遵守文件内定义的规范约束下执行后续步骤
24
+ ACTION: 基于[所有依赖文件,与用户的对话记录]整理出用户想要实现的功能会改动是什么
25
+ ACTION: 检视./docs/global/architecture.md里#子专案目录,记住[__专案目录__,__专案名称(##标题就是专案名称)__]
26
+ [MARK:2]
27
+ <<以下操作一个子专案都执行一次>>ACTION:
28
+ <<输出以下内容>>
29
+ ## 现在开始建立 __专案名称__ 的architecture文档
30
+ <<输出以上内容>>
31
+ #问题询问
32
+
33
+ 输出规则:
34
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
35
+ - __ADVICE__ 基于[先前的对话内容,所有依赖文件](如过有),结合问题给与建议答案,层级名称请用英文命名,[回答格式范例]([Adapter]对接并隔离外部系统(如支付、Discord 登录等; [Service]承载业务流程与状态规则;[Component]组合逻辑与视图,形成可复用组件单元)
36
+ ACTION:
37
+ <<结合输出规则,输出以下内容>>
38
+ ## [1/3] __专案名称__的分层設計?
39
+ - 请描述:层级名称&其功能
40
+ ---
41
+ 1) ✨__ADVICE__
42
+ 2) 直接参考`__专案目录__`总结其分层設計,再与我确认
43
+ 3) 直接描述
44
+ <<输出以上内容,不得再输出任何其他内容>>
45
+ ACTION: 等待用户回答
46
+
47
+ 输出规则:
48
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
49
+ - __ADVICE__ 基于[先前的对话内容,所有依赖文件](如过有),结合问题给与建议答案,层级名称请用英文命名,[回答格式范例](Adapter 可访问[无]; Service 可访问[Service, Adapter];Component 可访问[ComponentLogic, ComponentView])
50
+ ACTION:
51
+ <<结合输出规则,输出以下内容>>
52
+ ## [2/3] 请定义每一层的可访问层?
53
+ ---
54
+ 1) ✨__ADVICE__
55
+ 2) 直接参考`__专案目录__`总结其分层設計,再与我确认
56
+ 3) 直接描述
57
+ <<输出以上内容,不得再输出任何其他内容>>
58
+ ACTION: 等待用户回答
59
+
60
+ 输出规则:
61
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
62
+ - __ADVICE__ 基于[先前的对话内容,所有依赖文件](如过有),结合问题给与建议答案,层级名称请用英文命名,[回答格式范例](Adapter: `__专案目录__/src/adapters/`; Service: `__专案目录__/src/services/`;Component: `__专案目录__/src/components/`)
63
+ ACTION:
64
+ <<结合输出规则,输出以下内容>>
65
+ ## [3/3] 请定义每一层的文件落点?
66
+ ---
67
+ 1) ✨__ADVICE__
68
+ 2) 直接参考`__专案目录__`总结其分层設計,再与我确认
69
+ 3) 直接描述
70
+ <<输出以上内容,不得再输出任何其他内容>>
71
+ ACTION: 等待用户回答
72
+
73
+ #输出文件
74
+ *仅在以上所有流程完成后才执行
75
+
76
+ 输出格式:Markdown
77
+ 语言:中文为主
78
+ 输出文件内容规则:
79
+ __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
80
+ __1__ 遵循以下范例结构生成
81
+ ```yaml
82
+ layer_rules:
83
+ - from: Adapter
84
+ allow: []
85
+ path: projects/axg-global-web/src/adapters/
86
+ notes: 对接并隔离外部系统(如支付、Discord 登录等),作为统一入口。
87
+ - from: Service
88
+ allow: [Service, Adapter]
89
+ path: projects/axg-global-web/src/services/
90
+ notes: 承载业务流程与状态规则(订阅、账号、联盟行销)。
91
+ ```
92
+ 输出文件内容结构:
93
+ <<以下为实际输出文件格式,需结合输出规则生成部分动态内容>>
94
+ #分层结构定义
95
+ __1__
96
+
97
+ <<以上为实际输出文件格式,需结合输出规则生成部分动态内容>>
98
+
99
+ [MARK:1]
100
+ 输出规则:
101
+ - __PLACEHOLDER__ 为占位符,请勿输出,而是基于规则输出动态内容
102
+ - __输出文件内容__ 显示基于[输出文件内容规则/输出文件内容结构]总结输出文件内容
103
+ ACTION:
104
+ <<结合输出规则,输出以下内容>>
105
+ ```md
106
+ __输出文件内容__
107
+ ```
108
+ <<输出以上内容>>
109
+ ACTION:
110
+ <<输出以下内容>>
111
+ ## 是否接受将以上总结输出并保存成文件?
112
+ ---
113
+ 1) 接受
114
+ 2) 提出修改
115
+ <<输出以上内容,不得再输出任何其他内容>>
116
+ IF: 用户选择接受
117
+ ACTION: 将最终确认的输出版本保存到./docs/projects/__专案名称__/architecture.md
118
+ ACTION:
119
+ <<输出以下内容>>
120
+ > ✅文件已保存于./docs/projects/__专案名称__/architecture.md
121
+ <<输出以上内容>>
122
+ ENDIF
123
+
124
+ IF: 用户没有选择接受
125
+ ACTION: 带着用户的修改提议,回到[MARK:1]重新执行
126
+ ENDIF
127
+
128
+ <<以上操作一个子专案都执行一次,若还有子专案没执行,回到[MARK:2]重新执行>>