ai-spec-tool 0.1.3 → 0.1.5
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/assets/AGENTS.md +1 -14
- package/assets/skills/plan/SKILL.md +166 -0
- package/assets/skills/spec-creator/SKILL.md +22 -0
- package/assets/skills/spec-creator/assets/architecture_gen.md +242 -0
- package/assets/skills/spec-creator/assets/project_architecture_gen.md +128 -0
- package/assets/skills/spec-creator/assets/vision_gen.md +223 -0
- package/bin/ai-spec-tool.js +15 -1
- package/package.json +1 -1
- package/assets/.agents/skills/bugfix/SKILL.md +0 -48
- package/assets/.agents/skills/plan/SKILL.md +0 -56
- package/assets/.agents/skills/plan/assets/templates/plan.md +0 -47
- package/assets/.agents/skills/plan-executor/SKILL.md +0 -105
- package/assets/.agents/skills/plan-executor/assets/templates/module-plan.md +0 -26
- package/assets/.agents/skills/plan-executor/assets/templates/project-plan.md +0 -24
- package/assets/.agents/skills/plan-executor/assets/templates/summary-module.md +0 -17
- package/assets/.agents/skills/plan-executor/assets/templates/summary-plan.md +0 -18
- package/assets/.agents/skills/plan-executor/assets/templates/summary-project.md +0 -16
- package/assets/.agents/skills/rules-creator/SKILL.md +0 -39
- package/assets/.agents/skills/rules-creator/assets/architecture-gen.md +0 -98
- package/assets/.agents/skills/rules-creator/assets/conventions-gen.md +0 -85
- package/assets/.agents/skills/rules-creator/assets/glossary-gen.md +0 -46
- package/assets/.agents/skills/rules-creator/assets/interface-gen.md +0 -62
- package/assets/.agents/skills/rules-creator/assets/ui-architecture-gen.md +0 -81
- package/assets/.agents/skills/rules-creator/assets/ui-template-gen.md +0 -37
- package/assets/.agents/skills/spec-executor/SKILL.md +0 -66
- package/assets/docs/_shared/adr/README.md +0 -4
- package/assets/docs/_shared/conventions.md +0 -37
- package/assets/docs/_shared/glossary.md +0 -4
- package/assets/docs/architecture/README.md +0 -6
- package/assets/docs/plan/README.md +0 -11
- package/assets/docs/plan/index.yaml +0 -2
- package/assets/docs/plan/summary.md +0 -2
- package/assets/docs/requirements/README.md +0 -5
- package/assets/docs/requirements/index.yaml +0 -2
- package/assets/docs/specs/README.md +0 -6
package/assets/AGENTS.md
CHANGED
|
@@ -1,14 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
- 执行 Plan:
|
|
4
|
-
- 有 `docs/plan/<plan-id>/plan.processing.md` → `spec-executor`
|
|
5
|
-
- 有 `docs/plan/<plan-id>/plan.done.md` → 回复“此 plan 已完成”
|
|
6
|
-
- 有 `docs/plan/<plan-id>/plan.md` → `plan-executor`
|
|
7
|
-
- 生成/补齐规则文件 → `rules-creator`
|
|
8
|
-
- 异常修复 → `bugfix`
|
|
9
|
-
- **进入 plan 模式的严格条件**:
|
|
10
|
-
- 只有当用户明确说“要 plan/规划/制定计划/产出 Plan”才进入 `plan`
|
|
11
|
-
- 用户仅说“要新功能/需求/改动”时,先讨论澄清,不自动进入 `plan`
|
|
12
|
-
- 若功能与接口讨论已清晰无疑虑,再**提议**用户是否需要进入 `plan`
|
|
13
|
-
- 若已完成接口/DB 规格讨论,可先生成 Interface 规格书(rules-creator → interface)
|
|
14
|
-
- 其他 → 直接回答
|
|
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]重新执行>>
|