@rdmind/rdmind 0.0.9-alpha.0 → 0.0.9-alpha.2
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/.knowledge/.ext/.bmad-core/agent-teams/team-all.yaml +15 -0
- package/.knowledge/.ext/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
- package/.knowledge/.ext/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
- package/.knowledge/.ext/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
- package/.knowledge/.ext/.bmad-core/agents/analyst.md +84 -0
- package/.knowledge/.ext/.bmad-core/agents/architect.md +85 -0
- package/.knowledge/.ext/.bmad-core/agents/bmad-master.md +110 -0
- package/.knowledge/.ext/.bmad-core/agents/bmad-orchestrator.md +147 -0
- package/.knowledge/.ext/.bmad-core/agents/dev.md +81 -0
- package/.knowledge/.ext/.bmad-core/agents/pm.md +84 -0
- package/.knowledge/.ext/.bmad-core/agents/po.md +79 -0
- package/.knowledge/.ext/.bmad-core/agents/qa.md +90 -0
- package/.knowledge/.ext/.bmad-core/agents/ra.md +74 -0
- package/.knowledge/.ext/.bmad-core/agents/sm.md +65 -0
- package/.knowledge/.ext/.bmad-core/agents/ux-expert.md +69 -0
- package/.knowledge/.ext/.bmad-core/checklists/architect-checklist.md +440 -0
- package/.knowledge/.ext/.bmad-core/checklists/change-checklist.md +184 -0
- package/.knowledge/.ext/.bmad-core/checklists/pm-checklist.md +372 -0
- package/.knowledge/.ext/.bmad-core/checklists/po-master-checklist.md +434 -0
- package/.knowledge/.ext/.bmad-core/checklists/story-dod-checklist.md +96 -0
- package/.knowledge/.ext/.bmad-core/checklists/story-draft-checklist.md +155 -0
- package/.knowledge/.ext/.bmad-core/checklists/trd-checklist.md +226 -0
- package/.knowledge/.ext/.bmad-core/core-config.yaml +22 -0
- package/.knowledge/.ext/.bmad-core/data/bmad-kb.md +809 -0
- package/.knowledge/.ext/.bmad-core/data/brainstorming-techniques.md +38 -0
- package/.knowledge/.ext/.bmad-core/data/elicitation-methods.md +156 -0
- package/.knowledge/.ext/.bmad-core/data/technical-preferences.md +5 -0
- package/.knowledge/.ext/.bmad-core/data/test-levels-framework.md +148 -0
- package/.knowledge/.ext/.bmad-core/data/test-priorities-matrix.md +174 -0
- package/.knowledge/.ext/.bmad-core/enhanced-ide-development-workflow.md +248 -0
- package/.knowledge/.ext/.bmad-core/install-manifest.yaml +512 -0
- package/.knowledge/.ext/.bmad-core/tasks/advanced-elicitation.md +119 -0
- package/.knowledge/.ext/.bmad-core/tasks/analyze-prd.md +123 -0
- package/.knowledge/.ext/.bmad-core/tasks/apply-qa-fixes.md +150 -0
- package/.knowledge/.ext/.bmad-core/tasks/brownfield-create-epic.md +162 -0
- package/.knowledge/.ext/.bmad-core/tasks/brownfield-create-story.md +149 -0
- package/.knowledge/.ext/.bmad-core/tasks/correct-course.md +72 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-brownfield-story.md +314 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-doc.md +103 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-next-story.md +114 -0
- package/.knowledge/.ext/.bmad-core/tasks/document-project.md +345 -0
- package/.knowledge/.ext/.bmad-core/tasks/execute-checklist.md +88 -0
- package/.knowledge/.ext/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
- package/.knowledge/.ext/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
- package/.knowledge/.ext/.bmad-core/tasks/index-docs.md +175 -0
- package/.knowledge/.ext/.bmad-core/tasks/kb-mode-interaction.md +77 -0
- package/.knowledge/.ext/.bmad-core/tasks/nfr-assess.md +345 -0
- package/.knowledge/.ext/.bmad-core/tasks/qa-gate.md +163 -0
- package/.knowledge/.ext/.bmad-core/tasks/review-story.md +316 -0
- package/.knowledge/.ext/.bmad-core/tasks/risk-profile.md +355 -0
- package/.knowledge/.ext/.bmad-core/tasks/shard-doc.md +187 -0
- package/.knowledge/.ext/.bmad-core/tasks/test-design.md +176 -0
- package/.knowledge/.ext/.bmad-core/tasks/trace-requirements.md +266 -0
- package/.knowledge/.ext/.bmad-core/tasks/validate-next-story.md +136 -0
- package/.knowledge/.ext/.bmad-core/tasks/validate-trd.md +158 -0
- package/.knowledge/.ext/.bmad-core/templates/architecture-tmpl.yaml +651 -0
- package/.knowledge/.ext/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.knowledge/.ext/.bmad-core/templates/brownfield-architecture-tmpl.yaml +478 -0
- package/.knowledge/.ext/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
- package/.knowledge/.ext/.bmad-core/templates/competitor-analysis-tmpl.yaml +349 -0
- package/.knowledge/.ext/.bmad-core/templates/front-end-architecture-tmpl.yaml +273 -0
- package/.knowledge/.ext/.bmad-core/templates/front-end-spec-tmpl.yaml +360 -0
- package/.knowledge/.ext/.bmad-core/templates/fullstack-architecture-tmpl.yaml +947 -0
- package/.knowledge/.ext/.bmad-core/templates/market-research-tmpl.yaml +253 -0
- package/.knowledge/.ext/.bmad-core/templates/prd-tmpl.yaml +203 -0
- package/.knowledge/.ext/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
- package/.knowledge/.ext/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
- package/.knowledge/.ext/.bmad-core/templates/story-tmpl.yaml +138 -0
- package/.knowledge/.ext/.bmad-core/templates/trd-tmpl.yaml +198 -0
- package/.knowledge/.ext/.bmad-core/user-guide.md +530 -0
- package/.knowledge/.ext/.bmad-core/utils/bmad-doc-template.md +327 -0
- package/.knowledge/.ext/.bmad-core/utils/workflow-management.md +71 -0
- package/.knowledge/.ext/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
- package/.knowledge/.ext/.bmad-core/workflows/brownfield-service.yaml +188 -0
- package/.knowledge/.ext/.bmad-core/workflows/brownfield-ui.yaml +198 -0
- package/.knowledge/.ext/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
- package/.knowledge/.ext/.bmad-core/workflows/greenfield-service.yaml +207 -0
- package/.knowledge/.ext/.bmad-core/workflows/greenfield-ui.yaml +236 -0
- package/.knowledge/.ext/.bmad-core/working-in-the-brownfield.md +606 -0
- package/.knowledge/.ext/coding/ddd-architecture.md +223 -0
- package/.knowledge/.ext/coding/java-standards.md +308 -0
- package/.knowledge/.ext/coding/mybatis-standards.md +407 -0
- package/.knowledge/.ext/coding/sql-standards.md +263 -0
- package/.knowledge/.ext/coding/thrift-service.md +292 -0
- package/.knowledge/BMAD.md +255 -0
- package/.knowledge/coding.md +135 -0
- package/dist/package.json +4 -3
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/ui/components/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +2 -2
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/template/sns-demo-app/src/main/java/com/xiaohongshu/sns/demo/app/.gitkeep +0 -0
- package/template/sns-demo-common/src/main/java/com/xiaohongshu/sns/demo/common/enums/.gitkeep +0 -0
- package/template/sns-demo-common/src/main/java/com/xiaohongshu/sns/demo/common/model/.gitkeep +0 -0
- package/template/sns-demo-domain/src/main/java/com/xiaohongshu/sns/demo/domain/facade/.gitkeep +0 -0
- package/template/sns-demo-domain/src/main/java/com/xiaohongshu/sns/demo/domain/gateway/.gitkeep +0 -0
- package/template/sns-demo-infrastructure/src/main/java/com/xiaohongshu/sns/demo/infrastructure/config/threadpool/.gitkeep +0 -0
- package/template/sns-demo-infrastructure/src/main/java/com/xiaohongshu/sns/demo/infrastructure/gatewayimpl/.gitkeep +0 -0
- package/template/sns-demo-infrastructure/src/main/resources/mapper/.gitkeep +0 -0
- package/template/sns-demo-start/src/main/java/com/xiaohongshu/sns/demo/start/config/.gitkeep +0 -0
- package/template/sns-demo-start/src/main/java/com/xiaohongshu/sns/demo/start/provider/.gitkeep +0 -0
|
@@ -0,0 +1,651 @@
|
|
|
1
|
+
# <!-- Powered by BMAD™ Core -->
|
|
2
|
+
template:
|
|
3
|
+
id: architecture-template-v2
|
|
4
|
+
name: 架构文档
|
|
5
|
+
version: 2.0
|
|
6
|
+
output:
|
|
7
|
+
format: markdown
|
|
8
|
+
filename: docs/architecture.md
|
|
9
|
+
title: '{{project_name}} 架构文档'
|
|
10
|
+
|
|
11
|
+
workflow:
|
|
12
|
+
mode: interactive
|
|
13
|
+
elicitation: advanced-elicitation
|
|
14
|
+
|
|
15
|
+
sections:
|
|
16
|
+
- id: introduction
|
|
17
|
+
title: 项目介绍
|
|
18
|
+
instruction: |
|
|
19
|
+
开始前,先查看一下相关的文档来收集背景信息。如果找不到 docs/prd.md 文档,就问用户要提供什么文档作为架构设计的基础。
|
|
20
|
+
sections:
|
|
21
|
+
- id: intro-content
|
|
22
|
+
content: |
|
|
23
|
+
本文档描述了 {{project_name}} 的整体项目架构,包括后端系统、共享服务和非UI相关的技术方案。主要目标是作为AI开发的技术蓝图,确保开发过程中的一致性和技术选型的统一。
|
|
24
|
+
|
|
25
|
+
**与前端架构的关系:**
|
|
26
|
+
如果项目包含用户界面,会单独创建前端架构文档来详细说明前端设计,该文档必须与本架构文档配合使用。本文档中的核心技术栈选择(见"技术栈"章节)对整个项目具有决定性作用,包括前端组件。
|
|
27
|
+
- id: starter-template
|
|
28
|
+
title: 项目模板或现有代码库
|
|
29
|
+
instruction: |
|
|
30
|
+
在开始架构设计之前,先确认一下项目是否基于某个starter模板或现有代码库:
|
|
31
|
+
|
|
32
|
+
1. 查看PRD和需求文档,看看有没有提到:
|
|
33
|
+
- 项目模板(比如 Create React App、Next.js、Vue CLI、Angular CLI 等)
|
|
34
|
+
- 作为基础的现有项目或代码库
|
|
35
|
+
- 脚手架工具或样板项目
|
|
36
|
+
- 要克隆或改造的之前项目
|
|
37
|
+
|
|
38
|
+
2. 如果提到了starter模板或现有项目:
|
|
39
|
+
- 让用户通过以下方式提供访问:
|
|
40
|
+
- 提供starter模板文档链接
|
|
41
|
+
- 上传/附加项目文件(小项目的话)
|
|
42
|
+
- 分享项目仓库链接(GitHub、GitLab等)
|
|
43
|
+
- 分析starter/现有项目,了解:
|
|
44
|
+
- 预配置的技术栈和版本
|
|
45
|
+
- 项目结构和组织方式
|
|
46
|
+
- 内置脚本和工具
|
|
47
|
+
- 现有的架构模式和约定
|
|
48
|
+
- starter模板带来的限制或约束
|
|
49
|
+
- 用这个分析来指导架构决策
|
|
50
|
+
|
|
51
|
+
3. 如果没提到starter模板,但这是新项目:
|
|
52
|
+
- 根据技术栈偏好推荐合适的starter模板
|
|
53
|
+
- 说明好处(快速搭建、最佳实践、社区支持)
|
|
54
|
+
- 让用户决定是否使用
|
|
55
|
+
|
|
56
|
+
4. 如果用户确认不使用starter模板:
|
|
57
|
+
- 从零开始设计架构
|
|
58
|
+
- 说明需要手动配置所有工具和环境
|
|
59
|
+
|
|
60
|
+
在继续架构设计之前,把决定记录在这里。如果没有,就写"不适用"
|
|
61
|
+
elicit: true
|
|
62
|
+
- id: changelog
|
|
63
|
+
title: 变更记录
|
|
64
|
+
type: table
|
|
65
|
+
columns: [日期, 版本, 描述, 作者]
|
|
66
|
+
instruction: 记录文档版本和变更
|
|
67
|
+
|
|
68
|
+
- id: high-level-architecture
|
|
69
|
+
title: 高层架构
|
|
70
|
+
instruction: |
|
|
71
|
+
这个章节包含多个子章节,建立架构的基础。一次性展示所有子章节。
|
|
72
|
+
elicit: true
|
|
73
|
+
sections:
|
|
74
|
+
- id: technical-summary
|
|
75
|
+
title: 技术摘要
|
|
76
|
+
instruction: |
|
|
77
|
+
提供一个简短的段落(3-5句话)概述:
|
|
78
|
+
- 系统的整体架构风格
|
|
79
|
+
- 关键组件及其关系
|
|
80
|
+
- 主要技术选择
|
|
81
|
+
- 使用的核心架构模式
|
|
82
|
+
- 回顾PRD目标,说明这个架构如何支持这些目标
|
|
83
|
+
- id: high-level-overview
|
|
84
|
+
title: 高层概览
|
|
85
|
+
instruction: |
|
|
86
|
+
基于PRD的技术假设部分,描述:
|
|
87
|
+
|
|
88
|
+
1. 主要架构风格(比如单体、微服务、Serverless、事件驱动)
|
|
89
|
+
2. PRD中的仓库结构决策(Monorepo/Polyrepo)
|
|
90
|
+
3. PRD中的服务架构决策
|
|
91
|
+
4. 概念层面的主要用户交互流程或数据流
|
|
92
|
+
5. 关键架构决策及其理由
|
|
93
|
+
- id: project-diagram
|
|
94
|
+
title: 高层项目架构图
|
|
95
|
+
type: mermaid
|
|
96
|
+
mermaid_type: graph
|
|
97
|
+
instruction: |
|
|
98
|
+
创建一个Mermaid图表来可视化高层架构。考虑:
|
|
99
|
+
- 系统边界
|
|
100
|
+
- 主要组件/服务
|
|
101
|
+
- 数据流方向
|
|
102
|
+
- 外部集成
|
|
103
|
+
- 用户入口点
|
|
104
|
+
|
|
105
|
+
- id: architectural-patterns
|
|
106
|
+
title: 架构和设计模式
|
|
107
|
+
instruction: |
|
|
108
|
+
列出指导架构的关键高层模式。对于每个模式:
|
|
109
|
+
|
|
110
|
+
1. 如果存在多个选项,提供2-3个可行的选择
|
|
111
|
+
2. 提供你的推荐并说明清楚的理由
|
|
112
|
+
3. 在最终确定前获得用户确认
|
|
113
|
+
4. 这些模式应该与PRD的技术假设和项目目标保持一致
|
|
114
|
+
|
|
115
|
+
常见的模式考虑:
|
|
116
|
+
- 架构风格模式(Serverless、事件驱动、微服务、CQRS、六边形架构)
|
|
117
|
+
- 代码组织模式(依赖注入、Repository、模块、工厂)
|
|
118
|
+
- 数据模式(事件溯源、Saga、每个服务一个数据库)
|
|
119
|
+
- 通信模式(REST、GraphQL、消息队列、发布订阅)
|
|
120
|
+
template: '- **{{pattern_name}}:** {{pattern_description}} - _理由:_ {{rationale}}'
|
|
121
|
+
examples:
|
|
122
|
+
- '**Serverless架构:** 使用AWS Lambda进行计算 - _理由:_ 符合PRD对成本优化和自动扩缩容的要求'
|
|
123
|
+
- '**Repository模式:** 抽象数据访问逻辑 - _理由:_ 支持测试和未来数据库迁移的灵活性'
|
|
124
|
+
- '**事件驱动通信:** 使用SNS/SQS进行服务解耦 - _理由:_ 支持异步处理和系统弹性'
|
|
125
|
+
|
|
126
|
+
- id: tech-stack
|
|
127
|
+
title: 技术栈
|
|
128
|
+
instruction: |
|
|
129
|
+
这是技术选型的最终决定章节。与用户一起做出具体选择:
|
|
130
|
+
|
|
131
|
+
1. 查看PRD技术假设和.bmad-core/data/technical-preferences.yaml中的偏好设置
|
|
132
|
+
2. 对于每个类别,提供2-3个可行选项,说明优缺点
|
|
133
|
+
3. 基于项目需求做出明确推荐
|
|
134
|
+
4. 获得用户对每个选择的明确批准
|
|
135
|
+
5. 记录具体版本(避免"latest",固定具体版本)
|
|
136
|
+
6. 这个表格是唯一真相来源 - 所有其他文档都必须引用这些选择
|
|
137
|
+
|
|
138
|
+
需要最终确定的关键决策 - 在显示表格之前,确保你了解或询问用户 - 如果用户不确定,告诉他们你可以提供建议和理由:
|
|
139
|
+
|
|
140
|
+
- 项目模板(如果有)
|
|
141
|
+
- 编程语言和运行时的具体版本
|
|
142
|
+
- 框架和库/包
|
|
143
|
+
- 云服务商和关键服务选择
|
|
144
|
+
- 数据库和存储解决方案 - 如果不清楚,根据项目类型建议SQL或NoSQL,根据云服务商提供建议
|
|
145
|
+
- 开发工具
|
|
146
|
+
|
|
147
|
+
在渲染表格时,确保用户了解这个章节选择的重要性,也要检查是否有遗漏或分歧,如果列表中有不清楚的地方要询问澄清,并立即收集反馈 - 这个声明和选项应该渲染后立即提示,在允许用户输入之前。
|
|
148
|
+
elicit: true
|
|
149
|
+
sections:
|
|
150
|
+
- id: cloud-infrastructure
|
|
151
|
+
title: 云基础设施
|
|
152
|
+
template: |
|
|
153
|
+
- **服务商:** {{cloud_provider}}
|
|
154
|
+
- **核心服务:** {{core_services_list}}
|
|
155
|
+
- **部署区域:** {{regions}}
|
|
156
|
+
- id: technology-stack-table
|
|
157
|
+
title: 技术栈表格
|
|
158
|
+
type: table
|
|
159
|
+
columns: [类别, 技术, 版本, 用途, 理由]
|
|
160
|
+
instruction: 用所有相关技术填充技术栈表格
|
|
161
|
+
examples:
|
|
162
|
+
- '| **编程语言** | TypeScript | 5.3.3 | 主要开发语言 | 强类型,工具链优秀,团队熟悉 |'
|
|
163
|
+
- '| **运行时** | Node.js | 20.11.0 | JavaScript运行时 | LTS版本,性能稳定,生态丰富 |'
|
|
164
|
+
- '| **框架** | NestJS | 10.3.2 | 后端框架 | 企业级,依赖注入好,符合团队模式 |'
|
|
165
|
+
|
|
166
|
+
- id: data-models
|
|
167
|
+
title: 数据模型
|
|
168
|
+
instruction: |
|
|
169
|
+
定义核心数据模型/实体:
|
|
170
|
+
|
|
171
|
+
1. 查看PRD需求,识别关键业务实体
|
|
172
|
+
2. 对于每个模型,说明其用途和关系
|
|
173
|
+
3. 包含关键属性和数据类型
|
|
174
|
+
4. 展示模型间的关系
|
|
175
|
+
5. 与用户讨论设计决策
|
|
176
|
+
|
|
177
|
+
在转到数据库schema之前,先创建清晰的概念模型。
|
|
178
|
+
elicit: true
|
|
179
|
+
repeatable: true
|
|
180
|
+
sections:
|
|
181
|
+
- id: model
|
|
182
|
+
title: '{{model_name}}'
|
|
183
|
+
template: |
|
|
184
|
+
**用途:** {{model_purpose}}
|
|
185
|
+
|
|
186
|
+
**关键属性:**
|
|
187
|
+
- {{attribute_1}}: {{type_1}} - {{description_1}}
|
|
188
|
+
- {{attribute_2}}: {{type_2}} - {{description_2}}
|
|
189
|
+
|
|
190
|
+
**关系:**
|
|
191
|
+
- {{relationship_1}}
|
|
192
|
+
- {{relationship_2}}
|
|
193
|
+
|
|
194
|
+
- id: components
|
|
195
|
+
title: 组件
|
|
196
|
+
instruction: |
|
|
197
|
+
基于上面的架构模式、技术栈和数据模型:
|
|
198
|
+
|
|
199
|
+
1. 识别主要逻辑组件/服务及其职责
|
|
200
|
+
2. 考虑PRD中的仓库结构(monorepo/polyrepo)
|
|
201
|
+
3. 定义组件间的清晰边界和接口
|
|
202
|
+
4. 对于每个组件,指定:
|
|
203
|
+
- 主要职责
|
|
204
|
+
- 暴露的关键接口/API
|
|
205
|
+
- 对其他组件的依赖
|
|
206
|
+
- 基于技术栈选择的技术细节
|
|
207
|
+
|
|
208
|
+
5. 在有用时创建组件图表
|
|
209
|
+
elicit: true
|
|
210
|
+
sections:
|
|
211
|
+
- id: component-list
|
|
212
|
+
repeatable: true
|
|
213
|
+
title: '{{component_name}}'
|
|
214
|
+
template: |
|
|
215
|
+
**职责:** {{component_description}}
|
|
216
|
+
|
|
217
|
+
**关键接口:**
|
|
218
|
+
- {{interface_1}}
|
|
219
|
+
- {{interface_2}}
|
|
220
|
+
|
|
221
|
+
**依赖:** {{dependencies}}
|
|
222
|
+
|
|
223
|
+
**技术栈:** {{component_tech_details}}
|
|
224
|
+
- id: component-diagrams
|
|
225
|
+
title: 组件图表
|
|
226
|
+
type: mermaid
|
|
227
|
+
instruction: |
|
|
228
|
+
创建Mermaid图表来可视化组件关系。选项:
|
|
229
|
+
- C4容器图用于高层视图
|
|
230
|
+
- 组件图用于详细内部结构
|
|
231
|
+
- 序列图用于复杂交互
|
|
232
|
+
选择最合适的以获得清晰度
|
|
233
|
+
|
|
234
|
+
- id: external-apis
|
|
235
|
+
title: 外部API
|
|
236
|
+
condition: Project requires external API integrations
|
|
237
|
+
instruction: |
|
|
238
|
+
对于每个外部服务集成:
|
|
239
|
+
|
|
240
|
+
1. 基于PRD需求和组件设计识别需要的API
|
|
241
|
+
2. 如果文档URL未知,询问用户具体信息
|
|
242
|
+
3. 记录认证方法和安全考虑
|
|
243
|
+
4. 列出将使用的具体端点
|
|
244
|
+
5. 注意任何速率限制或使用约束
|
|
245
|
+
|
|
246
|
+
如果不需要外部API,明确说明并跳到下一章节。
|
|
247
|
+
elicit: true
|
|
248
|
+
repeatable: true
|
|
249
|
+
sections:
|
|
250
|
+
- id: api
|
|
251
|
+
title: '{{api_name}} API'
|
|
252
|
+
template: |
|
|
253
|
+
- **用途:** {{api_purpose}}
|
|
254
|
+
- **文档:** {{api_docs_url}}
|
|
255
|
+
- **基础URL:** {{api_base_url}}
|
|
256
|
+
- **认证:** {{auth_method}}
|
|
257
|
+
- **速率限制:** {{rate_limits}}
|
|
258
|
+
|
|
259
|
+
**使用的关键端点:**
|
|
260
|
+
- `{{method}} {{endpoint_path}}` - {{endpoint_purpose}}
|
|
261
|
+
|
|
262
|
+
**集成说明:** {{integration_considerations}}
|
|
263
|
+
|
|
264
|
+
- id: core-workflows
|
|
265
|
+
title: 核心工作流
|
|
266
|
+
type: mermaid
|
|
267
|
+
mermaid_type: sequence
|
|
268
|
+
instruction: |
|
|
269
|
+
使用序列图说明关键系统工作流:
|
|
270
|
+
|
|
271
|
+
1. 从PRD识别关键用户旅程
|
|
272
|
+
2. 展示组件交互,包括外部API
|
|
273
|
+
3. 包含错误处理路径
|
|
274
|
+
4. 记录异步操作
|
|
275
|
+
5. 根据需要创建高层和详细图表
|
|
276
|
+
|
|
277
|
+
专注于阐明架构决策或复杂交互的工作流。
|
|
278
|
+
elicit: true
|
|
279
|
+
|
|
280
|
+
- id: rest-api-spec
|
|
281
|
+
title: REST API规范
|
|
282
|
+
condition: Project includes REST API
|
|
283
|
+
type: code
|
|
284
|
+
language: yaml
|
|
285
|
+
instruction: |
|
|
286
|
+
如果项目包含REST API:
|
|
287
|
+
|
|
288
|
+
1. 创建OpenAPI 3.0规范
|
|
289
|
+
2. 包含epic/story中的所有端点
|
|
290
|
+
3. 基于数据模型定义请求/响应schema
|
|
291
|
+
4. 记录认证要求
|
|
292
|
+
5. 包含示例请求/响应
|
|
293
|
+
|
|
294
|
+
使用YAML格式提高可读性。如果没有REST API,跳过这个章节。
|
|
295
|
+
elicit: true
|
|
296
|
+
template: |
|
|
297
|
+
openapi: 3.0.0
|
|
298
|
+
info:
|
|
299
|
+
title: {{api_title}}
|
|
300
|
+
version: {{api_version}}
|
|
301
|
+
description: {{api_description}}
|
|
302
|
+
servers:
|
|
303
|
+
- url: {{server_url}}
|
|
304
|
+
description: {{server_description}}
|
|
305
|
+
|
|
306
|
+
- id: database-schema
|
|
307
|
+
title: 数据库Schema
|
|
308
|
+
instruction: |
|
|
309
|
+
将概念数据模型转换为具体的数据库schema:
|
|
310
|
+
|
|
311
|
+
1. 使用技术栈中选择的数据库类型
|
|
312
|
+
2. 使用适当的符号创建schema定义
|
|
313
|
+
3. 包含索引、约束和关系
|
|
314
|
+
4. 考虑性能和可扩展性
|
|
315
|
+
5. 对于NoSQL,展示文档结构
|
|
316
|
+
|
|
317
|
+
以适合数据库类型的格式呈现schema(SQL DDL、JSON schema等)
|
|
318
|
+
elicit: true
|
|
319
|
+
|
|
320
|
+
- id: source-tree
|
|
321
|
+
title: 源码树
|
|
322
|
+
type: code
|
|
323
|
+
language: plaintext
|
|
324
|
+
instruction: |
|
|
325
|
+
创建反映以下内容的项目文件夹结构:
|
|
326
|
+
|
|
327
|
+
1. 选择的仓库结构(monorepo/polyrepo)
|
|
328
|
+
2. 服务架构(单体/微服务/serverless)
|
|
329
|
+
3. 选择的技术栈和语言
|
|
330
|
+
4. 上面的组件组织
|
|
331
|
+
5. 选择框架的最佳实践
|
|
332
|
+
6. 清晰的关注点分离
|
|
333
|
+
|
|
334
|
+
根据项目需求调整结构。对于monorepo,展示服务分离。对于serverless,展示函数组织。包含语言特定的约定。
|
|
335
|
+
elicit: true
|
|
336
|
+
examples:
|
|
337
|
+
- |
|
|
338
|
+
project-root/
|
|
339
|
+
├── packages/
|
|
340
|
+
│ ├── api/ # 后端API服务
|
|
341
|
+
│ ├── web/ # 前端应用
|
|
342
|
+
│ ├── shared/ # 共享工具/类型
|
|
343
|
+
│ └── infrastructure/ # IaC定义
|
|
344
|
+
├── scripts/ # Monorepo管理脚本
|
|
345
|
+
└── package.json # 根package.json with workspaces
|
|
346
|
+
|
|
347
|
+
- id: infrastructure-deployment
|
|
348
|
+
title: 基础设施和部署
|
|
349
|
+
instruction: |
|
|
350
|
+
定义部署架构和实践:
|
|
351
|
+
|
|
352
|
+
1. 使用技术栈中选择的IaC工具
|
|
353
|
+
2. 选择适合架构的部署策略
|
|
354
|
+
3. 定义环境和发布流程
|
|
355
|
+
4. 建立回滚程序
|
|
356
|
+
5. 考虑安全、监控和成本优化
|
|
357
|
+
|
|
358
|
+
获取用户对部署偏好和CI/CD工具选择的输入。
|
|
359
|
+
elicit: true
|
|
360
|
+
sections:
|
|
361
|
+
- id: infrastructure-as-code
|
|
362
|
+
title: 基础设施即代码
|
|
363
|
+
template: |
|
|
364
|
+
- **工具:** {{iac_tool}} {{version}}
|
|
365
|
+
- **位置:** `{{iac_directory}}`
|
|
366
|
+
- **方法:** {{iac_approach}}
|
|
367
|
+
- id: deployment-strategy
|
|
368
|
+
title: 部署策略
|
|
369
|
+
template: |
|
|
370
|
+
- **策略:** {{deployment_strategy}}
|
|
371
|
+
- **CI/CD平台:** {{cicd_platform}}
|
|
372
|
+
- **流水线配置:** `{{pipeline_config_location}}`
|
|
373
|
+
- id: environments
|
|
374
|
+
title: 环境
|
|
375
|
+
repeatable: true
|
|
376
|
+
template: '- **{{env_name}}:** {{env_purpose}} - {{env_details}}'
|
|
377
|
+
- id: promotion-flow
|
|
378
|
+
title: 环境发布流程
|
|
379
|
+
type: code
|
|
380
|
+
language: text
|
|
381
|
+
template: '{{promotion_flow_diagram}}'
|
|
382
|
+
- id: rollback-strategy
|
|
383
|
+
title: 回滚策略
|
|
384
|
+
template: |
|
|
385
|
+
- **主要方法:** {{rollback_method}}
|
|
386
|
+
- **触发条件:** {{rollback_triggers}}
|
|
387
|
+
- **恢复时间目标:** {{rto}}
|
|
388
|
+
|
|
389
|
+
- id: error-handling-strategy
|
|
390
|
+
title: 错误处理策略
|
|
391
|
+
instruction: |
|
|
392
|
+
定义全面的错误处理方法:
|
|
393
|
+
|
|
394
|
+
1. 为技术栈中的语言/框架选择适当的模式
|
|
395
|
+
2. 定义日志标准和工具
|
|
396
|
+
3. 建立错误类别和处理规则
|
|
397
|
+
4. 考虑可观测性和调试需求
|
|
398
|
+
5. 确保安全(日志中不包含敏感数据)
|
|
399
|
+
|
|
400
|
+
这个章节指导AI和人类开发者进行一致的错误处理。
|
|
401
|
+
elicit: true
|
|
402
|
+
sections:
|
|
403
|
+
- id: general-approach
|
|
404
|
+
title: 通用方法
|
|
405
|
+
template: |
|
|
406
|
+
- **错误模型:** {{error_model}}
|
|
407
|
+
- **异常层次:** {{exception_structure}}
|
|
408
|
+
- **错误传播:** {{propagation_rules}}
|
|
409
|
+
- id: logging-standards
|
|
410
|
+
title: 日志标准
|
|
411
|
+
template: |
|
|
412
|
+
- **库:** {{logging_library}} {{version}}
|
|
413
|
+
- **格式:** {{log_format}}
|
|
414
|
+
- **级别:** {{log_levels_definition}}
|
|
415
|
+
- **必需上下文:**
|
|
416
|
+
- 关联ID: {{correlation_id_format}}
|
|
417
|
+
- 服务上下文: {{service_context}}
|
|
418
|
+
- 用户上下文: {{user_context_rules}}
|
|
419
|
+
- id: error-patterns
|
|
420
|
+
title: 错误处理模式
|
|
421
|
+
sections:
|
|
422
|
+
- id: external-api-errors
|
|
423
|
+
title: 外部API错误
|
|
424
|
+
template: |
|
|
425
|
+
- **重试策略:** {{retry_strategy}}
|
|
426
|
+
- **熔断器:** {{circuit_breaker_config}}
|
|
427
|
+
- **超时配置:** {{timeout_settings}}
|
|
428
|
+
- **错误转换:** {{error_mapping_rules}}
|
|
429
|
+
- id: business-logic-errors
|
|
430
|
+
title: 业务逻辑错误
|
|
431
|
+
template: |
|
|
432
|
+
- **自定义异常:** {{business_exception_types}}
|
|
433
|
+
- **面向用户的错误:** {{user_error_format}}
|
|
434
|
+
- **错误代码:** {{error_code_system}}
|
|
435
|
+
- id: data-consistency
|
|
436
|
+
title: 数据一致性
|
|
437
|
+
template: |
|
|
438
|
+
- **事务策略:** {{transaction_approach}}
|
|
439
|
+
- **补偿逻辑:** {{compensation_patterns}}
|
|
440
|
+
- **幂等性:** {{idempotency_approach}}
|
|
441
|
+
|
|
442
|
+
- id: coding-standards
|
|
443
|
+
title: 编码标准
|
|
444
|
+
instruction: |
|
|
445
|
+
这些标准对AI代理是强制性的。与用户一起定义防止坏代码所需的关键规则。说明:
|
|
446
|
+
|
|
447
|
+
1. 这个章节直接控制AI开发者行为
|
|
448
|
+
2. 保持简洁 - 假设AI知道通用最佳实践
|
|
449
|
+
3. 专注于项目特定的约定和陷阱
|
|
450
|
+
4. 过于详细的标准会增加上下文并拖慢开发
|
|
451
|
+
5. 标准将被提取到单独文件供开发代理使用
|
|
452
|
+
|
|
453
|
+
对于每个标准,获得用户明确确认它是必要的。
|
|
454
|
+
elicit: true
|
|
455
|
+
sections:
|
|
456
|
+
- id: core-standards
|
|
457
|
+
title: 核心标准
|
|
458
|
+
template: |
|
|
459
|
+
- **语言和运行时:** {{languages_and_versions}}
|
|
460
|
+
- **风格和Linting:** {{linter_config}}
|
|
461
|
+
- **测试组织:** {{test_file_convention}}
|
|
462
|
+
- id: naming-conventions
|
|
463
|
+
title: 命名约定
|
|
464
|
+
type: table
|
|
465
|
+
columns: [元素, 约定, 示例]
|
|
466
|
+
instruction: 仅在偏离语言默认值时包含
|
|
467
|
+
- id: critical-rules
|
|
468
|
+
title: 关键规则
|
|
469
|
+
instruction: |
|
|
470
|
+
仅列出AI可能违反或项目特定的要求。示例:
|
|
471
|
+
- "生产代码中永远不要使用console.log - 使用logger"
|
|
472
|
+
- "所有API响应必须使用ApiResponse包装类型"
|
|
473
|
+
- "数据库查询必须使用repository模式,永远不要直接使用ORM"
|
|
474
|
+
|
|
475
|
+
避免明显的规则如"使用SOLID原则"或"写干净代码"
|
|
476
|
+
repeatable: true
|
|
477
|
+
template: '- **{{rule_name}}:** {{rule_description}}'
|
|
478
|
+
- id: language-specifics
|
|
479
|
+
title: 语言特定指南
|
|
480
|
+
condition: Critical language-specific rules needed
|
|
481
|
+
instruction: 仅在防止AI错误的关键情况下添加。大多数团队不需要这个章节。
|
|
482
|
+
sections:
|
|
483
|
+
- id: language-rules
|
|
484
|
+
title: '{{language_name}} 特定规则'
|
|
485
|
+
repeatable: true
|
|
486
|
+
template: '- **{{rule_topic}}:** {{rule_detail}}'
|
|
487
|
+
|
|
488
|
+
- id: test-strategy
|
|
489
|
+
title: 测试策略和标准
|
|
490
|
+
instruction: |
|
|
491
|
+
与用户一起定义全面的测试策略:
|
|
492
|
+
|
|
493
|
+
1. 使用技术栈中的测试框架
|
|
494
|
+
2. 决定TDD vs 测试后方法
|
|
495
|
+
3. 定义测试组织和命名
|
|
496
|
+
4. 建立覆盖率目标
|
|
497
|
+
5. 确定集成测试基础设施
|
|
498
|
+
6. 规划测试数据和外部依赖
|
|
499
|
+
|
|
500
|
+
注意:基本信息放在编码标准中供开发代理使用。这个详细章节是给QA代理和团队参考的。
|
|
501
|
+
elicit: true
|
|
502
|
+
sections:
|
|
503
|
+
- id: testing-philosophy
|
|
504
|
+
title: 测试理念
|
|
505
|
+
template: |
|
|
506
|
+
- **方法:** {{test_approach}}
|
|
507
|
+
- **覆盖率目标:** {{coverage_targets}}
|
|
508
|
+
- **测试金字塔:** {{test_distribution}}
|
|
509
|
+
- id: test-types
|
|
510
|
+
title: 测试类型和组织
|
|
511
|
+
sections:
|
|
512
|
+
- id: unit-tests
|
|
513
|
+
title: 单元测试
|
|
514
|
+
template: |
|
|
515
|
+
- **框架:** {{unit_test_framework}} {{version}}
|
|
516
|
+
- **文件约定:** {{unit_test_naming}}
|
|
517
|
+
- **位置:** {{unit_test_location}}
|
|
518
|
+
- **Mock库:** {{mocking_library}}
|
|
519
|
+
- **覆盖率要求:** {{unit_coverage}}
|
|
520
|
+
|
|
521
|
+
**AI代理要求:**
|
|
522
|
+
- 为所有公共方法生成测试
|
|
523
|
+
- 覆盖边界情况和错误条件
|
|
524
|
+
- 遵循AAA模式(Arrange, Act, Assert)
|
|
525
|
+
- Mock所有外部依赖
|
|
526
|
+
- id: integration-tests
|
|
527
|
+
title: 集成测试
|
|
528
|
+
template: |
|
|
529
|
+
- **范围:** {{integration_scope}}
|
|
530
|
+
- **位置:** {{integration_test_location}}
|
|
531
|
+
- **测试基础设施:**
|
|
532
|
+
- **{{dependency_name}}:** {{test_approach}} ({{test_tool}})
|
|
533
|
+
examples:
|
|
534
|
+
- '**数据库:** 单元测试用内存H2,集成测试用Testcontainers PostgreSQL'
|
|
535
|
+
- '**消息队列:** 测试用嵌入式Kafka'
|
|
536
|
+
- '**外部API:** 用WireMock进行stubbing'
|
|
537
|
+
- id: e2e-tests
|
|
538
|
+
title: 端到端测试
|
|
539
|
+
template: |
|
|
540
|
+
- **框架:** {{e2e_framework}} {{version}}
|
|
541
|
+
- **范围:** {{e2e_scope}}
|
|
542
|
+
- **环境:** {{e2e_environment}}
|
|
543
|
+
- **测试数据:** {{e2e_data_strategy}}
|
|
544
|
+
- id: test-data-management
|
|
545
|
+
title: 测试数据管理
|
|
546
|
+
template: |
|
|
547
|
+
- **策略:** {{test_data_approach}}
|
|
548
|
+
- **Fixtures:** {{fixture_location}}
|
|
549
|
+
- **Factories:** {{factory_pattern}}
|
|
550
|
+
- **清理:** {{cleanup_strategy}}
|
|
551
|
+
- id: continuous-testing
|
|
552
|
+
title: 持续测试
|
|
553
|
+
template: |
|
|
554
|
+
- **CI集成:** {{ci_test_stages}}
|
|
555
|
+
- **性能测试:** {{perf_test_approach}}
|
|
556
|
+
- **安全测试:** {{security_test_approach}}
|
|
557
|
+
|
|
558
|
+
- id: security
|
|
559
|
+
title: 安全
|
|
560
|
+
instruction: |
|
|
561
|
+
为AI和人类开发者定义强制安全要求:
|
|
562
|
+
|
|
563
|
+
1. 专注于实现特定的规则
|
|
564
|
+
2. 引用技术栈中的安全工具
|
|
565
|
+
3. 为常见场景定义清晰的模式
|
|
566
|
+
4. 这些规则直接影响代码生成
|
|
567
|
+
5. 与用户一起确保完整性而不冗余
|
|
568
|
+
elicit: true
|
|
569
|
+
sections:
|
|
570
|
+
- id: input-validation
|
|
571
|
+
title: 输入验证
|
|
572
|
+
template: |
|
|
573
|
+
- **验证库:** {{validation_library}}
|
|
574
|
+
- **验证位置:** {{where_to_validate}}
|
|
575
|
+
- **必需规则:**
|
|
576
|
+
- 所有外部输入必须验证
|
|
577
|
+
- 在处理前在API边界验证
|
|
578
|
+
- 白名单方法优于黑名单
|
|
579
|
+
- id: auth-authorization
|
|
580
|
+
title: 认证和授权
|
|
581
|
+
template: |
|
|
582
|
+
- **认证方法:** {{auth_implementation}}
|
|
583
|
+
- **会话管理:** {{session_approach}}
|
|
584
|
+
- **必需模式:**
|
|
585
|
+
- {{auth_pattern_1}}
|
|
586
|
+
- {{auth_pattern_2}}
|
|
587
|
+
- id: secrets-management
|
|
588
|
+
title: 密钥管理
|
|
589
|
+
template: |
|
|
590
|
+
- **开发环境:** {{dev_secrets_approach}}
|
|
591
|
+
- **生产环境:** {{prod_secrets_service}}
|
|
592
|
+
- **代码要求:**
|
|
593
|
+
- 永远不要硬编码密钥
|
|
594
|
+
- 仅通过配置服务访问
|
|
595
|
+
- 日志或错误消息中不包含密钥
|
|
596
|
+
- id: api-security
|
|
597
|
+
title: API安全
|
|
598
|
+
template: |
|
|
599
|
+
- **速率限制:** {{rate_limit_implementation}}
|
|
600
|
+
- **CORS策略:** {{cors_configuration}}
|
|
601
|
+
- **安全头:** {{required_headers}}
|
|
602
|
+
- **HTTPS强制:** {{https_approach}}
|
|
603
|
+
- id: data-protection
|
|
604
|
+
title: 数据保护
|
|
605
|
+
template: |
|
|
606
|
+
- **静态加密:** {{encryption_at_rest}}
|
|
607
|
+
- **传输加密:** {{encryption_in_transit}}
|
|
608
|
+
- **PII处理:** {{pii_rules}}
|
|
609
|
+
- **日志限制:** {{what_not_to_log}}
|
|
610
|
+
- id: dependency-security
|
|
611
|
+
title: 依赖安全
|
|
612
|
+
template: |
|
|
613
|
+
- **扫描工具:** {{dependency_scanner}}
|
|
614
|
+
- **更新策略:** {{update_frequency}}
|
|
615
|
+
- **审批流程:** {{new_dep_process}}
|
|
616
|
+
- id: security-testing
|
|
617
|
+
title: 安全测试
|
|
618
|
+
template: |
|
|
619
|
+
- **SAST工具:** {{static_analysis}}
|
|
620
|
+
- **DAST工具:** {{dynamic_analysis}}
|
|
621
|
+
- **渗透测试:** {{pentest_schedule}}
|
|
622
|
+
|
|
623
|
+
- id: checklist-results
|
|
624
|
+
title: Checklist结果报告
|
|
625
|
+
instruction: 在运行checklist之前,提供完整架构文档的输出。用户确认后,执行architect-checklist并在此填充结果。
|
|
626
|
+
|
|
627
|
+
- id: next-steps
|
|
628
|
+
title: 下一步
|
|
629
|
+
instruction: |
|
|
630
|
+
完成架构后:
|
|
631
|
+
|
|
632
|
+
1. 如果项目有UI组件:
|
|
633
|
+
- 使用"前端架构模式"
|
|
634
|
+
- 提供此文档作为输入
|
|
635
|
+
|
|
636
|
+
2. 对于所有项目:
|
|
637
|
+
- 与产品负责人review
|
|
638
|
+
- 使用开发代理开始story实现
|
|
639
|
+
- 使用DevOps代理设置基础设施
|
|
640
|
+
|
|
641
|
+
3. 如需要,包含下一个代理的具体提示
|
|
642
|
+
sections:
|
|
643
|
+
- id: architect-prompt
|
|
644
|
+
title: 架构师提示
|
|
645
|
+
condition: Project has UI components
|
|
646
|
+
instruction: |
|
|
647
|
+
创建简短的提示交给架构师进行前端架构创建。包含:
|
|
648
|
+
- 对此架构文档的引用
|
|
649
|
+
- PRD中的关键UI需求
|
|
650
|
+
- 在此做出的任何前端特定决策
|
|
651
|
+
- 请求详细的前端架构
|