@haaaiawd/anws 2.3.0 → 2.4.1

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.
Files changed (95) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +53 -23
  3. package/lib/diff.js +5 -2
  4. package/lib/init.js +217 -96
  5. package/lib/install-state.js +18 -3
  6. package/lib/manifest.js +364 -79
  7. package/lib/prompt.js +68 -0
  8. package/lib/resources/index.js +36 -2
  9. package/lib/update.js +12 -6
  10. package/package.json +48 -47
  11. package/templates/.agents/skills/anws-system/SKILL.md +107 -105
  12. package/templates/.agents/skills/code-reviewer/SKILL.md +171 -115
  13. package/templates/.agents/skills/concept-modeler/SKILL.md +230 -179
  14. package/templates/.agents/skills/craft-authoring/SKILL.md +186 -183
  15. package/templates/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +42 -0
  16. package/templates/.agents/skills/design-reviewer/SKILL.md +265 -190
  17. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +246 -135
  18. package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -321
  19. package/templates/.agents/skills/nexus-mapper/references/probe-protocol.md +1 -1
  20. package/templates/.agents/skills/nexus-query/SKILL.md +1 -1
  21. package/templates/.agents/skills/output-contract/SKILL.md +37 -0
  22. package/templates/.agents/skills/runtime-inspector/SKILL.md +150 -99
  23. package/templates/.agents/skills/sequential-thinking/SKILL.md +222 -225
  24. package/templates/.agents/skills/spec-writer/SKILL.md +75 -30
  25. package/templates/.agents/skills/system-architect/SKILL.md +538 -678
  26. package/templates/.agents/skills/system-designer/SKILL.md +124 -537
  27. package/templates/.agents/skills/task-planner/SKILL.md +1 -2
  28. package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +2 -2
  29. package/templates/.agents/skills/task-reviewer/SKILL.md +421 -386
  30. package/templates/.agents/skills/tech-evaluator/SKILL.md +252 -144
  31. package/templates/.agents/workflows/blueprint.md +156 -68
  32. package/templates/.agents/workflows/challenge.md +322 -494
  33. package/templates/.agents/workflows/change.md +182 -339
  34. package/templates/.agents/workflows/craft.md +159 -197
  35. package/templates/.agents/workflows/design-system.md +202 -674
  36. package/templates/.agents/workflows/explore.md +187 -399
  37. package/templates/.agents/workflows/forge.md +650 -609
  38. package/templates/.agents/workflows/genesis.md +438 -351
  39. package/templates/.agents/workflows/probe.md +215 -240
  40. package/templates/.agents/workflows/quickstart.md +304 -123
  41. package/templates/.agents/workflows/upgrade.md +145 -182
  42. package/templates_en/.agents/skills/anws-system/SKILL.md +110 -0
  43. package/templates_en/.agents/skills/code-reviewer/SKILL.md +171 -0
  44. package/templates_en/.agents/skills/concept-modeler/SKILL.md +230 -0
  45. package/templates_en/.agents/skills/craft-authoring/SKILL.md +179 -0
  46. package/templates_en/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +42 -0
  47. package/templates_en/.agents/skills/craft-authoring/references/PROMPT_QUALITY_RUBRIC.md +92 -0
  48. package/templates_en/.agents/skills/craft-authoring/references/SCORECARD_TEMPLATE.md +52 -0
  49. package/templates_en/.agents/skills/design-reviewer/SKILL.md +264 -0
  50. package/templates_en/.agents/skills/e2e-testing-guide/SKILL.md +246 -0
  51. package/templates_en/.agents/skills/nexus-mapper/SKILL.md +306 -0
  52. package/templates_en/.agents/skills/nexus-mapper/references/language-customization.md +167 -0
  53. package/templates_en/.agents/skills/nexus-mapper/references/output-schema.md +311 -0
  54. package/templates_en/.agents/skills/nexus-mapper/references/probe-protocol.md +246 -0
  55. package/templates_en/.agents/skills/nexus-mapper/scripts/extract_ast.py +706 -0
  56. package/templates_en/.agents/skills/nexus-mapper/scripts/git_detective.py +194 -0
  57. package/templates_en/.agents/skills/nexus-mapper/scripts/languages.json +127 -0
  58. package/templates_en/.agents/skills/nexus-mapper/scripts/query_graph.py +556 -0
  59. package/templates_en/.agents/skills/nexus-mapper/scripts/requirements.txt +6 -0
  60. package/templates_en/.agents/skills/nexus-query/SKILL.md +114 -0
  61. package/templates_en/.agents/skills/nexus-query/scripts/extract_ast.py +706 -0
  62. package/templates_en/.agents/skills/nexus-query/scripts/git_detective.py +194 -0
  63. package/templates_en/.agents/skills/nexus-query/scripts/languages.json +127 -0
  64. package/templates_en/.agents/skills/nexus-query/scripts/query_graph.py +556 -0
  65. package/templates_en/.agents/skills/nexus-query/scripts/requirements.txt +6 -0
  66. package/templates_en/.agents/skills/output-contract/SKILL.md +37 -0
  67. package/templates_en/.agents/skills/runtime-inspector/SKILL.md +150 -0
  68. package/templates_en/.agents/skills/sequential-thinking/SKILL.md +214 -0
  69. package/templates_en/.agents/skills/spec-writer/SKILL.md +153 -0
  70. package/templates_en/.agents/skills/spec-writer/references/prd_template.md +177 -0
  71. package/templates_en/.agents/skills/system-architect/SKILL.md +538 -0
  72. package/templates_en/.agents/skills/system-architect/references/rfc_template.md +59 -0
  73. package/templates_en/.agents/skills/system-designer/SKILL.md +188 -0
  74. package/templates_en/.agents/skills/system-designer/references/system-design-detail-template.md +187 -0
  75. package/templates_en/.agents/skills/system-designer/references/system-design-template.md +605 -0
  76. package/templates_en/.agents/skills/task-planner/SKILL.md +251 -0
  77. package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +109 -0
  78. package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05B.md +176 -0
  79. package/templates_en/.agents/skills/task-reviewer/SKILL.md +422 -0
  80. package/templates_en/.agents/skills/tech-evaluator/SKILL.md +252 -0
  81. package/templates_en/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +78 -0
  82. package/templates_en/.agents/workflows/blueprint.md +200 -0
  83. package/templates_en/.agents/workflows/challenge.md +326 -0
  84. package/templates_en/.agents/workflows/change.md +182 -0
  85. package/templates_en/.agents/workflows/craft.md +159 -0
  86. package/templates_en/.agents/workflows/design-system.md +202 -0
  87. package/templates_en/.agents/workflows/explore.md +187 -0
  88. package/templates_en/.agents/workflows/forge.md +651 -0
  89. package/templates_en/.agents/workflows/genesis.md +438 -0
  90. package/templates_en/.agents/workflows/probe.md +215 -0
  91. package/templates_en/.agents/workflows/quickstart.md +305 -0
  92. package/templates_en/.agents/workflows/upgrade.md +145 -0
  93. package/templates_en/AGENTS.md +149 -0
  94. package/templates/.agents/skills/report-template/SKILL.md +0 -92
  95. package/templates/.agents/skills/report-template/references/REPORT_TEMPLATE.md +0 -100
@@ -1,678 +1,538 @@
1
- ---
2
-
3
- ## name: system-architect
4
-
5
- description: 识别项目中的独立系统,定义系统边界。产出系统架构总览,为后续系统设计奠定基础。
6
-
7
- # 系统拆解手册 (System Decomposition Manual)
8
-
9
- > "Good architecture is less about building the perfect system,
10
- > and more about dividing the problem into the right systems."
11
-
12
- 你是一位**系统架构师**,专注于**识别和拆解系统**。
13
- 你的目标是找到项目中的独立系统,定义清晰的边界。
14
-
15
- ---
16
-
17
- ## 强制深度思考
18
-
19
- > [!IMPORTANT]
20
- > 在进行拆解之前,你**必须**使用 `sequential-thinking` skill,视复杂情况组织 **3—7 个 thought** 推理。
21
- > 思考内容例如:
22
- >
23
- > 1. "这个系统是否可以合并到另一个系统?"
24
- > 2. "拆分是否真正带来价值(独立部署、技术栈差异)?"
25
- > 3. "如果未来业务增长 10 倍,现在的边界是否还能维持?" (演进路线推演)
26
-
27
- ---
28
-
29
- ## 核心原则
30
-
31
- > [!IMPORTANT]
32
- > **系统拆解的三大原则**:
33
- >
34
- > 1. **关注点分离** - 每个系统聚焦单一职责
35
- > 2. **边界清晰** - 明确输入输出,避免职责模糊
36
- > 3. **适度拆分** - 不过度拆分(>10个系统),也不过度聚合(1个系统)
37
-
38
- **错误做法**:
39
-
40
- - 过度拆分:把每个功能都拆成独立系统
41
- - 过度聚合:所有功能都塞在一个"大系统"
42
- - 边界模糊:系统之间职责重叠
43
- - 忽略技术栈差异:前端和后端混在一起
44
-
45
- **正确做法**:
46
-
47
- - **按技术栈拆分** - 前端、后端、数据库通常是独立系统
48
- - **按部署单元拆分** - 可以独立部署的部分应该是独立系统
49
- - **按职责拆分** - 业务逻辑、数据处理、外部集成应该分离
50
- - **按变化频率拆分** - 变化频繁和稳定的部分应该分离
51
-
52
- ---
53
-
54
- ## 系统识别框架:6个维度
55
-
56
- 使用以下6个维度识别项目中的系统:
57
-
58
- ### 1. 用户接触点 (User Touchpoints)
59
-
60
- **问题**: "用户如何与系统交互?"
61
-
62
- **常见系统**:
63
-
64
- - Web前端 (frontend-system)
65
- - 移动端 (mobile-system)
66
- - CLI工具 (cli-system)
67
- - API网关 (api-gateway)
68
-
69
- **示例**:
70
-
71
- ```
72
- 如果项目有:
73
- - React Web应用 Web Frontend System
74
- - React Native移动端 Mobile System
75
- → 识别为2个系统(不同技术栈和部署)
76
- ```
77
-
78
- ---
79
-
80
- ### 2. 数据存储 (Data Storage)
81
-
82
- **问题**: "数据存储在哪里?如何组织?"
83
-
84
- **常见系统**:
85
-
86
- - 主数据库 (database-system)
87
- - 缓存层 (cache-system)
88
- - 对象存储 (storage-system)
89
- - 搜索引擎 (search-system)
90
-
91
- **示例**:
92
-
93
- ```
94
- 如果项目有:
95
- - PostgreSQL主库
96
- - Redis缓存
97
- - S3对象存储
98
- 可以识别为Database System(包含PostgreSQL+Redis)
99
- 对象存储通常是外部服务,不算独立系统
100
- ```
101
-
102
- ---
103
-
104
- ### 3. 核心业务逻辑 (Business Logic)
105
-
106
- **问题**: "核心业务处理在哪里发生?"
107
-
108
- **常见系统**:
109
-
110
- - 后端API (backend-api-system)
111
- - 多智能体系统 (agent-system)
112
- - 数据处理管道 (pipeline-system)
113
- - 批处理任务 (batch-system)
114
-
115
- **示例**:
116
-
117
- ```
118
- 如果项目有:
119
- - FastAPI后端处理业务逻辑
120
- - LangGraph多智能体系统
121
- → 识别为2个系统(职责不同)
122
- ```
123
-
124
- ---
125
-
126
- ### 4. 外部集成 (External Integrations)
127
-
128
- **问题**: "需要与哪些外部系统集成?"
129
-
130
- **常见系统**:
131
-
132
- - 认证服务 (auth-integration)
133
- - 支付系统 (payment-integration)
134
- - 通知系统 (notification-system)
135
- - LLM API调用 (llm-integration)
136
-
137
- **示例**:
138
-
139
- ```
140
- 如果项目需要:
141
- - OAuth第三方登录
142
- - Stripe支付
143
- → 通常作为Backend System的一部分,不单独拆分
144
- 除非集成逻辑非常复杂
145
- ```
146
-
147
- ---
148
-
149
- ### 5. 部署单元 (Deployment Units)
150
-
151
- **问题**: "哪些部分可以独立部署?"
152
-
153
- **常见系统**:
154
-
155
- - 前端静态资源 (部署到CDN)
156
- - 后端服务 (部署到容器)
157
- - Worker进程 (部署到队列处理器)
158
-
159
- **示例**:
160
-
161
- ```
162
- 如果部署架构是:
163
- - 前端 → Vercel
164
- - 后端 → AWS ECS
165
- - Worker → Celery
166
- 3个独立部署单元 = 3个潜在系统
167
- ```
168
-
169
- ---
170
-
171
- ### 6. 技术栈 (Technology Stack)
172
-
173
- **问题**: "不同部分使用的技术栈是什么?"
174
-
175
- **常见系统**:
176
-
177
- - React前端
178
- - Python后端
179
- - PostgreSQL数据库
180
- - Redis缓存
181
-
182
- **示例**:
183
-
184
- ```
185
- 如果技术栈包含:
186
- - React + Vite
187
- - Python + FastAPI
188
- - PostgreSQL
189
- → 至少3个系统(技术栈完全不同)
190
- ```
191
-
192
- ---
193
-
194
- ## 输出格式:Architecture Overview 模板
195
-
196
- 使用以下结构产出 `.anws/v{N}/02_ARCHITECTURE_OVERVIEW.md`:
197
-
198
- ```markdown
199
- # 系统架构总览 (Architecture Overview)
200
-
201
- **项目**: [Project Name]
202
- **版本**: 1.0
203
- **日期**: [YYYY-MM-DD]
204
-
205
- ---
206
-
207
- ## 1. 系统上下文 (System Context)
208
-
209
- ### 1.1 C4 Level 1 - 系统上下文图
210
-
211
- [使用Mermaid绘制系统与用户、外部系统的交互]
212
-
213
- \`\`\`mermaid
214
- graph TD
215
- User[用户] -->|HTTP| WebApp[Web应用]
216
- WebApp -->|API| Backend[后端服务]
217
- Backend -->|Query| DB[(数据库)]
218
- Backend -->|Call| LLM[LLM API]
219
- \`\`\`
220
-
221
- ### 1.2 关键用户 (Key Users)
222
- - **终端用户**: 使用Web界面的用户
223
- - **管理员**: 管理系统配置的用户
224
- - ...
225
-
226
- ### 1.3 外部系统 (External Systems)
227
- - **LLM API**: OpenAI / Anthropic
228
- - **认证服务**: Auth0 / OAuth
229
- - ...
230
-
231
- ---
232
-
233
- ## 2. 系统清单 (System Inventory)
234
-
235
- ### System 1: Frontend UX System
236
- **系统ID**: `frontend-system`
237
-
238
- **职责 (Responsibility)**:
239
- - 用户界面展示与交互
240
- - API调用封装
241
- - 客户端状态管理
242
-
243
- **边界 (Boundary)**:
244
- - **输入**: 用户操作(点击、输入)
245
- - **输出**: HTTP API请求
246
- - **依赖**: backend-api-system
247
-
248
- **关联需求**: [REQ-001] 用户登录, [REQ-002] Dashboard展示
249
-
250
- **技术栈**:
251
- - Framework: React 18
252
- - Build Tool: Vite
253
- - Styling: TailwindCSS
254
- - State: Context API / Zustand
255
-
256
- **设计文档**: `04_SYSTEM_DESIGN/frontend-system.md` (待创建)
257
-
258
- ---
259
-
260
- ### System 2: Backend API System
261
- **系统ID**: `backend-api-system`
262
-
263
- **职责 (Responsibility)**:
264
- - REST API服务
265
- - 业务逻辑处理
266
- - 数据库交互
267
-
268
- **边界 (Boundary)**:
269
- - **输入**: HTTP请求 (JSON)
270
- - **输出**: HTTP响应 (JSON)
271
- - **依赖**: database-system, agent-system
272
-
273
- **关联需求**: [REQ-001] 用户登录, [REQ-003] 数据查询
274
-
275
- **技术栈**:
276
- - Framework: FastAPI
277
- - Language: Python 3.11
278
- - ORM: SQLAlchemy
279
- - Auth: JWT
280
-
281
- **设计文档**: `04_SYSTEM_DESIGN/backend-api-system.md` (待创建)
282
-
283
- ---
284
-
285
- ### System 3: Database System
286
- **系统ID**: `database-system`
287
-
288
- **职责 (Responsibility)**:
289
- - 数据持久化
290
- - 数据查询与索引
291
- - 数据备份与恢复
292
-
293
- **边界 (Boundary)**:
294
- - **输入**: SQL查询
295
- - **输出**: 查询结果
296
- - **依赖**: 无(基础设施)
297
-
298
- **关联需求**: 所有需要数据存储的需求
299
-
300
- **技术栈**:
301
- - Database: PostgreSQL 15
302
- - Cache: Redis 7
303
- - ORM: SQLAlchemy
304
-
305
- **设计文档**: `04_SYSTEM_DESIGN/database-system.md` (待创建)
306
-
307
- ---
308
-
309
- [继续列出其他系统...]
310
-
311
- ---
312
-
313
- ## 3. 系统边界矩阵 (System Boundary Matrix)
314
-
315
- | 系统 | 输入 | 输出 | 依赖系统 | 被依赖系统 | 关联需求 |
316
- |------|------|------|---------|----------|---------|
317
- | Frontend | 用户操作 | HTTP请求 | Backend API | - | [REQ-001], [REQ-002] |
318
- | Backend API | HTTP请求 | JSON响应 | Database, Agent | Frontend | [REQ-001], [REQ-003] |
319
- | Database | SQL查询 | 查询结果 | - | Backend API, Agent | All |
320
- | Agent System | 任务请求 | 执行结果 | Database, LLM API | Backend API | [REQ-005] |
321
-
322
- ---
323
-
324
- ## 4. 系统依赖图 (System Dependency Graph)
325
-
326
- \`\`\`mermaid
327
- graph TD
328
- Frontend[Frontend System] -->|API Call| Backend[Backend API System]
329
- Backend -->|Query| DB[Database System]
330
- Backend -->|Invoke| Agent[Agent System]
331
- Agent -->|Query| DB
332
- Agent -->|Call| LLM[LLM API - External]
333
-
334
- style Frontend fill:#e1f5ff
335
- style Backend fill:#fff4e1
336
- style DB fill:#e1ffe1
337
- style Agent fill:#ffe1f5
338
- \`\`\`
339
-
340
- **依赖关系说明**:
341
- - Frontend依赖Backend(前后端分离架构)
342
- - Backend是核心枢纽,协调DatabaseAgent
343
- - Agent独立完成推理任务,但需要Database支持
344
-
345
- ---
346
-
347
- ## 5. 技术栈总览 (Technology Stack Overview)
348
-
349
- | Layer | Technology | Used By |
350
- |-------|-----------|---------|
351
- | **Frontend** | React, Vite, TailwindCSS | Frontend System |
352
- | **Backend** | Python, FastAPI, SQLAlchemy | Backend API System |
353
- | **Database** | PostgreSQL, Redis | Database System |
354
- | **Agent** | LangGraph, OpenAI | Agent System |
355
- | **Infrastructure** | Docker, Kubernetes | All Systems |
356
-
357
- ---
358
-
359
- ## 6. 拆分原则与理由 (Decomposition Rationale)
360
-
361
- ### 为什么拆分为这些系统?
362
-
363
- **技术栈维度**:
364
- - Frontend (React) vs Backend (Python) → 技术栈完全不同,必须分离
365
-
366
- **部署维度**:
367
- - Frontend (静态部署CDN) vs Backend (容器部署) → 部署方式不同
368
-
369
- **职责维度**:
370
- - Backend API (业务逻辑) vs Agent (推理逻辑) → 职责独立,可并行开发
371
-
372
- **变化频率**:
373
- - Frontend (UI变化频繁) vs Database Schema (相对稳定) → 分离便于独立演进
374
-
375
- ### 为什么不进一步拆分?
376
-
377
- **Frontend为什么不拆分为多个系统?**
378
- - 虽然有多个页面,但共享状态和组件,拆分会增加复杂度
379
-
380
- **Backend为什么不拆成微服务?**
381
- - 当前规模不需要,Modular Monolith足够
382
- - 可以通过模块化代码结构实现关注点分离
383
-
384
- ---
385
-
386
- ## 7. 系统复杂度评估 (Complexity Assessment)
387
-
388
- **系统数量**: 4个系统
389
-
390
- **评估**:
391
- - 数量合理 (< 10)
392
- - 边界清晰
393
- - 依赖关系简单(无循环依赖)
394
-
395
- **潜在风险**:
396
- - Backend API可能成为瓶颈(协调多个系统)
397
- - 未来可能需要拆分Backend(当代码量 > 50K行时)
398
-
399
- ---
400
-
401
- ## 8. 下一步行动 (Next Steps)
402
-
403
- ### 为每个系统设计详细文档
404
-
405
- 运行以下命令为每个系统创建设计文档:
406
-
407
- \`\`\`bash
408
- /design-system frontend-system
409
- /design-system backend-api-system
410
- /design-system database-system
411
- /design-system agent-system
412
- \`\`\`
413
-
414
- ### 所有系统设计完成后
415
-
416
- 运行任务拆解:
417
- \`\`\`bash
418
- /blueprint
419
- \`\`\`
420
- ```
421
-
422
- ---
423
-
424
- ## 拆解守则
425
-
426
- ### 守则1: 不要过度拆分
427
-
428
- **规则**: 系统数量通常 < 10个。
429
-
430
- **为什么?** 过度拆分增加通信成本和复杂度。
431
-
432
- **检查问题**:
433
-
434
- - "这个系统是否可以合并到另一个系统?"
435
- - "拆分是否真正带来价值(独立部署、技术栈差异)?"
436
-
437
- **示例**:
438
-
439
- ```
440
- 错误: 把每个API端点拆成独立系统
441
- 正确: 所有API端点属于Backend API System
442
- ```
443
-
444
- ---
445
-
446
- ### 守则2: 不要过度聚合
447
-
448
- **规则**: 前端、后端、数据库通常是独立系统。
449
-
450
- **为什么?** 技术栈和部署方式不同,应该分离。
451
-
452
- **检查问题**:
453
-
454
- - "这两个部分的技术栈是否完全不同?"
455
- - "它们是否在不同时间、由不同团队部署?"
456
-
457
- **示例**:
458
-
459
- ```
460
- 错误: React前端和Python后端合并为"Web System"
461
- 正确: 拆分为Frontend System和Backend System
462
- ```
463
-
464
- ---
465
-
466
- ### 守则3: 边界必须清晰
467
-
468
- **规则**: 每个系统的输入输出必须明确定义。
469
-
470
- **为什么?** 边界模糊会导致职责重叠和依赖混乱。
471
-
472
- **检查问题**:
473
-
474
- - "这个系统接收什么输入?"
475
- - "这个系统产出什么输出?"
476
- - "输入输出的数据格式是什么?"
477
-
478
- **示例**:
479
-
480
- ```
481
- 好的边界定义:
482
- Frontend System:
483
- - 输入: 用户操作 (MouseEvent, KeyboardEvent)
484
- - 输出: HTTP请求 (JSON格式的API调用)
485
-
486
- 模糊的边界:
487
- Frontend System:
488
- - 输入: 用户的东西
489
- - 输出: 数据
490
- ```
491
-
492
- ---
493
-
494
- ### 守则4: 使用C4模型可视化
495
-
496
- **规则**: 必须使用Mermaid绘制系统上下文图和依赖图。
497
-
498
- **为什么?** 一图胜千言,可视化帮助理解。
499
-
500
- **Mermaid示例**:
501
-
502
- ```mermaid
503
- graph TD
504
- User[用户] -->|使用| Frontend[Frontend System]
505
- Frontend -->|API| Backend[Backend System]
506
- Backend -->|数据| DB[(Database System)]
507
- ```
508
-
509
-
510
-
511
- ---
512
-
513
- ## 工具箱
514
-
515
- ### 工具1: 系统识别Checklist
516
-
517
- 在拆解系统前,使用此Checklist:
518
-
519
- - 识别所有用户接触点(Web、移动、CLI)
520
- - 识别所有数据存储(数据库、缓存、对象存储)
521
- - 识别核心业务逻辑位置(后端、Agent、批处理)
522
- - 识别外部集成(支付、认证、LLM)
523
- - 识别部署单元(前端静态、后端容器、Worker)
524
- - 识别技术栈差异(React、Python、PostgreSQL)
525
-
526
- ---
527
-
528
- ### 工具2: Architecture Overview模板
529
-
530
- - **路径**: 参考上面的"输出格式"章节
531
- - **包含**: 系统清单、边界矩阵、依赖图
532
-
533
- ---
534
-
535
- ### 工具3: Mermaid图表
536
-
537
- **系统上下文图** (C4 Level 1):
538
-
539
- ```mermaid
540
- graph TD
541
- User -->|使用| System
542
- System -->|调用| External
543
- ```
544
-
545
-
546
-
547
- **系统依赖图**:
548
-
549
- ```mermaid
550
- graph LR
551
- A[System A] --> B[System B]
552
- B --> C[System C]
553
- ```
554
-
555
-
556
-
557
- ---
558
-
559
- ## 常见场景与模式
560
-
561
- ### 场景1: 简单的Web应用
562
-
563
- **特征**: 前端 + 后端 + 数据库
564
-
565
- **推荐拆分**:
566
-
567
- - Frontend System (React)
568
- - Backend API System (FastAPI)
569
- - Database System (PostgreSQL)
570
-
571
- **总计**: 3个系统
572
-
573
- ---
574
-
575
- ### 场景2: 带AI功能的Web应用
576
-
577
- **特征**: 前端 + 后端 + 数据库 + AI Agent
578
-
579
- **推荐拆分**:
580
-
581
- - Frontend System
582
- - Backend API System
583
- - Agent System (LangGraph)
584
- - Database System
585
-
586
- **总计**: 4个系统
587
-
588
- ---
589
-
590
- ### 场景3: 复杂的企业应用
591
-
592
- **特征**: 多端 + 后端 + 数据库 + 搜索 + 队列
593
-
594
- **推荐拆分**:
595
-
596
- - Web Frontend System
597
- - Mobile System
598
- - Backend API System
599
- - Database System
600
- - Search System (Elasticsearch)
601
- - Worker System (Celery)
602
-
603
- **总计**: 6个系统
604
-
605
- ---
606
-
607
- ## 质量检查清单
608
-
609
- 完成Architecture Overview后,使用此清单自检:
610
-
611
- ### 系统数量
612
-
613
- - 系统数量 3-10 个(通常范围)
614
- - 没有过度拆分(每个功能一个系统)
615
- - 没有过度聚合(所有功能一个系统)
616
-
617
- ### 系统边界
618
-
619
- - 每个系统有清晰的输入输出定义
620
- - 每个系统的职责明确且单一
621
- - 系统之间没有职责重叠
622
-
623
- ### 依赖关系
624
-
625
- - 无循环依赖
626
- - 依赖关系清晰可视化(Mermaid图)
627
- - 每个系统的依赖 < 5个(避免过度耦合)
628
-
629
- ### 文档完整性
630
-
631
- - 有系统上下文图 (C4 Level 1)
632
- - 每个系统有详细的清单条目
633
- - 有系统边界矩阵
634
- - 有系统依赖图
635
- - 有拆分原则与理由说明
636
-
637
- ---
638
-
639
- ## 快速上手示例
640
-
641
- **任务**: 为一个Todo应用拆解系统
642
-
643
- **Step 1: 应用6维度框架**
644
-
645
- - 用户接触点: Web界面
646
- - 数据存储: PostgreSQL
647
- - 业务逻辑: FastAPI后端
648
- - 外部集成: 无
649
- - 部署单元: 前端CDN, 后端容器
650
- - 技术栈: React, Python, PostgreSQL
651
-
652
- **Step 2: 识别系统**
653
-
654
- - Frontend System (React)
655
- - Backend API System (FastAPI)
656
- - Database System (PostgreSQL)
657
-
658
- **Step 3: 定义边界**
659
-
660
- - Frontend: 输入用户操作 → 输出API请求
661
- - Backend: 输入HTTP请求 → 输出JSON响应
662
- - Database: 输入SQL查询 → 输出数据
663
-
664
- **Step 4: 绘制依赖图**
665
-
666
- ```
667
- Frontend → Backend → Database
668
- ```
669
-
670
- **Step 5: 产出Architecture Overview**
671
- 使用模板填充内容 → 保存到 `.anws/v{N}/02_ARCHITECTURE_OVERVIEW.md`
672
-
673
- ---
674
-
675
- **记住**: 好的系统拆解是平衡的艺术。
676
- 不要过度拆分(微服务陷阱),也不要过度聚合(大泥球)。
677
-
678
- Happy Architecting!
1
+ ---
2
+ name: system-architect
3
+ description: `/genesis` Step 4 专用:识别独立系统、定义边界与依赖,产出 `.anws/v{N}/02_ARCHITECTURE_OVERVIEW.md`(含源码根目录与物理结构);为 Step 5 ADR 与后续 `references/rfc_template.md` 级契约提供输入,本人不写入 `03_ADR/*.md`。
4
+ ---
5
+
6
+ # system-architect(/genesis Step 4–5 衔接)
7
+
8
+ > 好的架构多半是「把问题拆成对的系统」,而不是造出完美单片。
9
+
10
+ <phase_context>
11
+ 你是 **`/genesis` Step 4 的系统架构师**。
12
+ **使命**:在版本化目录 `TARGET_DIR = .anws/v{N}` 内,产出可执行的系统清单、边界、依赖图与物理代码树根映射。
13
+ **能力**:六维识别、C4 Level 1 与依赖可视化、与人类检查点 #2 对齐的拆分理由与复杂度自述。
14
+ **限制**:严守 genesis 既定步骤序位;**不得**在本 skill 会话内写入或篡改 `03_ADR/*.md`、`01_PRD.md`、任务清单(ADR 只属于 **Step 5**);不得削弱下文 CRITICAL、严重度表、RFC/ADR 分工与 Overview 模板结构。
15
+ **与子流程关系**:以工作区 **`.agents/skills/system-architect/SKILL.md`** 为准。
16
+ </phase_context>
17
+
18
+ ---
19
+
20
+ ## CRITICAL 方法论锚点
21
+
22
+ > [!IMPORTANT]
23
+ > **拆解的目标是决策记录与实现可对齐的边界**,不是堆系统名。
24
+ >
25
+ > - **唤醒,不是宣告**:先还原 PRD 范围与 tech-evaluator Step 3 已定约束,再给系统清单;跳过约束还原的拆分易与后续 ADR 冲突。
26
+ > - **展开,不是单线**:每个系统条目必须可被「部署单元 / 技术栈 / 职责」中的至少两类独立支撑;单依据拆分须显式记入风险与验证债。
27
+ > - **升维,再落地**:先把跨系统接缝(契约、故障语义、所有权)说清楚,再落 `system-id`、目录树与矩阵;停在目录隐喻或停在口号都不可交付。
28
+ > - **重建,而非复述**:用边界矩阵重建「谁在什么输入下承诺什么输出」,而非改写 PRD 原句。
29
+
30
+ ---
31
+
32
+ ## CRITICAL spec 产出契约(`02_ARCHITECTURE_OVERVIEW.md`)
33
+
34
+ > [!IMPORTANT]
35
+ >
36
+ > - **精确**:每条系统须含稳定 **`system-id`**、`职责`、`边界(I/O)`、`依赖`、`关联需求 REQ 引用`、`技术栈`、`设计文档相对路径占位`(与模板一致);物理映射须给出**可追溯**源码根路径(字面路径字符串)。
37
+ > - **有据可查**:矩阵与依赖图中的每一行须有对应清单小节支撑;禁止只写图表无文字定义。
38
+ > - **可检验**:拆分理由章节须同时回答「为何不继续拆 / 为何不合并」各至少一例,且与复杂度评估相呼应。
39
+ > - **禁止填充**:禁止无对象的「待定」「后续优化」「视情况而定」占位;未知须标为 **`[OPEN: 具体问题 + owner 粒度]`**。
40
+ > - **双图强制**:Must include Mermaid **系统上下文(C4 L1)** 与 **系统依赖图**,且与矩阵无矛盾。
41
+
42
+ ---
43
+
44
+ ## CRITICAL:`/genesis` 序位与 ADR/RFC 发射分工
45
+
46
+ > [!IMPORTANT]
47
+ > **`/genesis` 强制顺序为 Step 0→6(末步 Step 6 含子节 6.1–6.4);禁止跳步。** 本 skill 仅覆盖 **Step 4**。
48
+ >
49
+ > **本 skill(Step 4)唯一目标路径**:写入 **`{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md`**(结构与下文模板章节一致);并落实 Step 4 专属的 **源码根目录 + ASCII 物理结构树**(见模板与阶段说明)。
50
+ > **禁止**:将 Step 3 评估表直接改名为 ADR 落盘;不得在本 skill 写入 `{TARGET_DIR}/03_ADR/*`。ADR 正文发射归 **`/genesis` Step 5**,且须基于 Step 3 候选方案对比表与 Step 4 系统边界成文。
51
+ > **RFC(技术设计说明)**:面向单系统深挖时,使用本 skill **同仓库 skill 包的** `references/rfc_template.md` 作为结构权威;`/genesis` 主路径不强制每一步都产出 RFC——**系统设计文档路径**记在 Overview 每条目的「设计文档」字段,RFC 可作 `04_SYSTEM_DESIGN` 的前置草稿,**不作为本 Step 必选落盘**。
52
+ > **ADR 写入检查清单(供 Step 5 执行核对;本 Step 只做输入,不勾选为已写完)**:
53
+ >
54
+ > | 门禁项 | 规范 |
55
+ > |--------|------|
56
+ > | ADR 与 Step 3 对齐 | Step 5 须将 Step 3 候选方案对比表吸纳为候选方案章节与决策 |
57
+ > | Step 2.5 回填 | 若曾执行 `/explore`,Step 5 须在理由与取舍中吸纳研究证据 |
58
+ > | ADR 状态 | **Accepted** |
59
+ > | 「影响范围」章节 | Must exist;须列出引用本 ADR 的系统占位(可由 Step 6 后与 SYSTEM_DESIGN 交叉维护) |
60
+ > | ADR 结构 | Follow `tech-evaluator` **`references/ADR_TEMPLATE.md`** 全章节(模板见下文规范摘要) |
61
+
62
+ **ADR_TEMPLATE 章节不可删节(摘录为发射规范;正文撰写在 Step 5)**:
63
+
64
+ | 章节 | 必须满足 |
65
+ |------|----------|
66
+ | 状态 | Proposed \| Accepted \| Deprecated \| Superseded … |
67
+ | 日期 | `YYYY-MM-DD` |
68
+ | 背景 | 问题、约束、干系期望 |
69
+ | 决策驱动因素 | 编号列表 |
70
+ | 候选方案 | 多方案利弊对照 |
71
+ | 决策 | 明确选定方案 |
72
+ | 后果 | 正/负/后续行动拆分 |
73
+ | 参考资料 | 可空但不得删除标题行 |
74
+ | 影响范围 | 列出将引用本报的系统 / 文档路径占位 |
75
+
76
+ ---
77
+
78
+ ## CRITICAL:`sequential-thinking`
79
+
80
+ > [!IMPORTANT]
81
+ > **必须**在开始列举系统-ID 之前,使用 `sequential-thinking`:**3–7 个 thought**(复杂度低取 3,高耦合或多端取 7),覆盖拆分/合并备选、演进与物理边界;自然 CoT **不可**顶替该 CLI 义务(无 CLI 时输出首段须声明 **`SEQUENTIAL_THINKING_BLOCKED`**,并降级为可追溯的条目化假设清单,禁止伪造 thought)。
82
+
83
+ ---
84
+
85
+ ## 严重度分级(Overview 自检 / 与人类检查点 #2)
86
+
87
+ | 等级 | 判定标准 | 所需行动 |
88
+ |------|----------|----------|
89
+ | **Critical** | Overview 与 PRD 覆盖范围矛盾;系统边界导致无法实现需求;遗漏 genesis 要求的物理根路径 / 必备图 | Step 5 以前必须修复 |
90
+ | **High** | 依赖环路;跨系统契约完全空白;拆分粒度过极端(单机式或碎片化)且无理由 | forge 前应修复或通过 ADR / 增补设计闭合 |
91
+ | **Medium** | 边界措辞含糊但可解码;单侧依赖偏多但可重构 | Step 或设计阶段清偿 |
92
+ | **Low** | 文档措辞、排序、格式 | 可持续改进 |
93
+
94
+ ---
95
+
96
+ ## 子代理编排
97
+
98
+ **父代理(`/genesis` 宿主会话)**:拥有 `TARGET_DIR`、写入 `02_ARCHITECTURE_OVERVIEW.md` 的最终版本、与人类检查点的呈现节奏、以及是否触发 Step 5 的最终路由。
99
+ **子代理(若可用)**:可接收切片「仅产出六维草稿 / 仅产出 Mermaid / 仅审计矩阵一致性」;**不得**独自定稿同名路径文件。
100
+
101
+ **闭环交接清单**(子代理交回父代理前自检)
102
+
103
+ - [ ] 已声明 **写入 / 不落盘仅建议** 与一行原因
104
+ - [ ] 所有系统-ID 在全篇唯一;矩阵与依赖图对齐
105
+ - [ ] **未**触碰 `03_ADR/`、`01_PRD.md`
106
+ - [ ] Critical/High 项已逐项上报父代理裁决
107
+
108
+ ---
109
+
110
+ ## 顶级阶段:`/genesis` Step 4(含 Step 5 输入预备)
111
+
112
+ 以下五阶段对应 Step 4 执行包;完成后父工作流进入 **Step 5 ADR 发射**(非本 skill 直接写入)。
113
+
114
+ ### 阶段 A:输入与时间轴锚定
115
+
116
+ **做什么**:确认 `TARGET_DIR`;载入 `01_PRD.md`、`concept_model.json`(若存在)、Step 3 评估结论(内存或摘要);摘录 `[REQ-*]`。
117
+ **为什么**:无对象拆解产生「架构散文」。
118
+ **怎么验收**:能列出 PRD 与 Step 3 中与部署/运行时相关的硬性约束不少于 3 条;Thought 序号已按计划执行。
119
+
120
+ ### 阶段 B:六维系统识别(合成候选清单)
121
+
122
+ **做什么**:逐项扫 **用户触点 / 数据存储 / 核心逻辑 / 外部集成 / 部署单元 / 技术栈**,生成候选 **`system-id` 草案**。
123
+ **为什么**:穷尽维度降低漏系统风险。
124
+ **怎么验收**:六维皆有显式条目或标注 `N/A` 理由一行;草案数量落入 **3–10** 或可辩护的极少数例外。
125
+
126
+ ### 阶段 C:边界、依赖与需求追溯
127
+
128
+ **做什么**:对每个系统写清 **I/O 边界**;建立 **边界矩阵 + 依赖图**;挂载关联需求 ID。
129
+ **为什么**:接缝是 ADR 与后续设计的着力点。
130
+ **怎么验收**:矩阵行数与清单一致;图上每条边在两系统条目中各出现一次且无环(若有环须在理由段解释接受条件)。
131
+
132
+ ### 阶段 D:物理代码结构映射(`/genesis` Step 4 CRITICAL)
133
+
134
+ **做什么**:**每个系统**:**源码根路径**(如 `src/packages/frontend`)+ **ASCII 目录树**。
135
+ **为什么**:克隆与 IDE 导入依赖物理真相。
136
+ **怎么验收**:树中不出现「TBD-only」而无 `[OPEN]` 记录;路径与单体/多仓假设一致。
137
+
138
+ ### 阶段 E:成文、`02_*` 落盘与 Step 5 就绪交接
139
+
140
+ **做什么**:按下方 **输出格式模板**填满 `02_ARCHITECTURE_OVERVIEW.md`;自检严重度表;为人类检查点 #2 准备一页执行摘要(可附文末 shortlist)。
141
+ **为什么**:ADR 必须与稳定系统边界对齐。
142
+ **怎么验收**:模板 §1–8 齐全;`High` 以上问题数显式归零或升格为 **`[OPEN]`** 并得到父代理接受;父代理已知下一步须跑 **Step 5**。
143
+
144
+ ### Step 5 输入就绪(宿主执行;本 skill 校对清单)
145
+
146
+ **做什么**:移交 **系统-ID 全集**、**跨系统疑点**、`[OPEN]`、`Step 3` 对比表指针。
147
+ **为什么**:ADR 必须引用真实边界与备选方案来历。
148
+ **怎么验收**:`tech-evaluator` ADR_TEMPLATE 可被无冲突填充;ADR「影响范围」可预填系统占位。
149
+
150
+ ---
151
+
152
+ ## 核心原则
153
+
154
+ > [!IMPORTANT]
155
+ > **关注点分离**:一系统一事;**边界清晰**:I/O 与数据契约显式;**适度拆分**:避免 **>10** 系统且无理由,禁止 **无端单系统**。
156
+ >
157
+ > **反模式**:每功能一系统 / 巨石无界 / 跨层叠责 / 「前端后端混一栏不分」
158
+ > **正例**:按技术栈、部署单元、职责边界、变更频率论证拆分或合并
159
+
160
+ ---
161
+
162
+ ## 系统识别框架:6 维度(执行扫表)
163
+
164
+ ### 1. 用户触点
165
+
166
+ Web / Mobile / CLI / API Gateway…… 通常映射独立 `*-system`。异栈或异部署触点 **不得**强行合并为一个 ID。
167
+
168
+ ### 2. 数据存储
169
+
170
+ 数据库、缓存、对象存储、搜索;可合并仅在 **同一运维边界 + 共用访问模式 + 拆分无独立生命周期** 时,并记入理由。
171
+
172
+ ### 3. 核心业务逻辑
173
+
174
+ API、Agent、Pipeline、Batch;不同演进速率与 SLA 的常见拆点。
175
+
176
+ ### 4. 外部集成
177
+
178
+ OAuth、支付、LLM;默认归入主导系统边界,仅在集成复杂度自持生命周期时升格独立系统-ID。
179
+
180
+ ### 5. 部署单元
181
+
182
+ CDN 静态 / 容器服务 / Worker;**一对一映系统候选**最常见。
183
+
184
+ ### 6. 技术栈
185
+
186
+ 栈差异本身是强分解信号(例:React + FastAPI + PG → 至少三系统维度上的边界)。
187
+
188
+ ---
189
+
190
+ ## 输出格式:Architecture Overview 模板
191
+
192
+ 使用以下结构产出 **`{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md`**:
193
+
194
+ ```markdown
195
+ # 系统架构总览 (Architecture Overview)
196
+
197
+ **项目**: [Project Name]
198
+ **版本**: 1.0
199
+ **日期**: [YYYY-MM-DD]
200
+
201
+ ---
202
+
203
+ ## 1. 系统上下文 (System Context)
204
+
205
+ ### 1.1 C4 Level 1 - 系统上下文图
206
+
207
+ [使用Mermaid绘制系统与用户、外部系统的交互]
208
+
209
+ \`\`\`mermaid
210
+ graph TD
211
+ User[用户] -->|HTTP| WebApp[Web应用]
212
+ WebApp -->|API| Backend[后端服务]
213
+ Backend -->|Query| DB[(数据库)]
214
+ Backend -->|Call| LLM[LLM API]
215
+ \`\`\`
216
+
217
+ ### 1.2 关键用户 (Key Users)
218
+ - **终端用户**: 使用Web界面的用户
219
+ - **管理员**: 管理系统配置的用户
220
+ - ...
221
+
222
+ ### 1.3 外部系统 (External Systems)
223
+ - **LLM API**: OpenAI / Anthropic
224
+ - **认证服务**: Auth0 / OAuth
225
+ - ...
226
+
227
+ ---
228
+
229
+ ## 2. 系统清单 (System Inventory)
230
+
231
+ ### System 1: Frontend UX System
232
+ **系统ID**: `frontend-system`
233
+
234
+ **职责 (Responsibility)**:
235
+ - 用户界面展示与交互
236
+ - API调用封装
237
+ - 客户端状态管理
238
+
239
+ **边界 (Boundary)**:
240
+ - **输入**: 用户操作(点击、输入)
241
+ - **输出**: HTTP API请求
242
+ - **依赖**: backend-api-system
243
+
244
+ **关联需求**: [REQ-001] 用户登录, [REQ-002] Dashboard展示
245
+
246
+ **技术栈**:
247
+ - Framework: React 18
248
+ - Build Tool: Vite
249
+ - Styling: TailwindCSS
250
+ - State: Context API / Zustand
251
+
252
+ **源码根目录**: `src/packages/frontend`
253
+
254
+ **仓库内物理结构 (ASCII)**:
255
+ ```
256
+ src/packages/frontend/
257
+ apps/
258
+ components/
259
+ ...
260
+ ```
261
+
262
+ **设计文档**: `04_SYSTEM_DESIGN/frontend-system.md` (待创建)
263
+
264
+ ---
265
+
266
+ ### System 2: Backend API System
267
+ **系统ID**: `backend-api-system`
268
+
269
+ **职责 (Responsibility)**:
270
+ - REST API服务
271
+ - 业务逻辑处理
272
+ - 数据库交互
273
+
274
+ **边界 (Boundary)**:
275
+ - **输入**: HTTP请求 (JSON)
276
+ - **输出**: HTTP响应 (JSON)
277
+ - **依赖**: database-system, agent-system
278
+
279
+ **关联需求**: [REQ-001] 用户登录, [REQ-003] 数据查询
280
+
281
+ **技术栈**:
282
+ - Framework: FastAPI
283
+ - Language: Python 3.11
284
+ - ORM: SQLAlchemy
285
+ - Auth: JWT
286
+
287
+ **源码根目录**: `src/backend/api`
288
+
289
+ **仓库内物理结构 (ASCII)**:
290
+ ```
291
+ src/backend/api/
292
+ api/
293
+ services/
294
+ ...
295
+ ```
296
+
297
+ **设计文档**: `04_SYSTEM_DESIGN/backend-api-system.md` (待创建)
298
+
299
+ ---
300
+
301
+ ### System 3: Database System
302
+ **系统ID**: `database-system`
303
+
304
+ **职责 (Responsibility)**:
305
+ - 数据持久化
306
+ - 数据查询与索引
307
+ - 数据备份与恢复
308
+
309
+ **边界 (Boundary)**:
310
+ - **输入**: SQL查询
311
+ - **输出**: 查询结果
312
+ - **依赖**: 无(基础设施)
313
+
314
+ **关联需求**: 所有需要数据存储的需求
315
+
316
+ **技术栈**:
317
+ - Database: PostgreSQL 15
318
+ - Cache: Redis 7
319
+ - ORM: SQLAlchemy
320
+
321
+ **源码根目录**: `infra/db` 或 `[schema/migrations path]`
322
+
323
+ **仓库内物理结构 (ASCII)**:
324
+ ```
325
+ db/migrations/
326
+ ...
327
+ ```
328
+
329
+ **设计文档**: `04_SYSTEM_DESIGN/database-system.md` (待创建)
330
+
331
+ ---
332
+
333
+ [继续列出其他系统...]
334
+
335
+ ---
336
+
337
+ ## 3. 系统边界矩阵 (System Boundary Matrix)
338
+
339
+ | 系统 | 输入 | 输出 | 依赖系统 | 被依赖系统 | 关联需求 |
340
+ |------|------|------|---------|----------|---------|
341
+ | Frontend | 用户操作 | HTTP请求 | Backend API | - | [REQ-001], [REQ-002] |
342
+ | Backend API | HTTP请求 | JSON响应 | Database, Agent | Frontend | [REQ-001], [REQ-003] |
343
+ | Database | SQL查询 | 查询结果 | - | Backend API, Agent | All |
344
+ | Agent System | 任务请求 | 执行结果 | Database, LLM API | Backend API | [REQ-005] |
345
+
346
+ ---
347
+
348
+ ## 4. 系统依赖图 (System Dependency Graph)
349
+
350
+ \`\`\`mermaid
351
+ graph TD
352
+ Frontend[Frontend System] -->|API Call| Backend[Backend API System]
353
+ Backend -->|Query| DB[Database System]
354
+ Backend -->|Invoke| Agent[Agent System]
355
+ Agent -->|Query| DB
356
+ Agent -->|Call| LLM[LLM API - External]
357
+
358
+ style Frontend fill:#e1f5ff
359
+ style Backend fill:#fff4e1
360
+ style DB fill:#e1ffe1
361
+ style Agent fill:#ffe1f5
362
+ \`\`\`
363
+
364
+ **依赖关系说明**:
365
+ - Frontend依赖Backend(前后端分离架构)
366
+ - Backend是核心枢纽,协调Database和Agent
367
+ - Agent独立完成推理任务,但需要Database支持
368
+
369
+ ---
370
+
371
+ ## 5. 技术栈总览 (Technology Stack Overview)
372
+
373
+ | Layer | Technology | Used By |
374
+ |-------|-----------|---------|
375
+ | **Frontend** | React, Vite, TailwindCSS | Frontend System |
376
+ | **Backend** | Python, FastAPI, SQLAlchemy | Backend API System |
377
+ | **Database** | PostgreSQL, Redis | Database System |
378
+ | **Agent** | LangGraph, OpenAI | Agent System |
379
+ | **Infrastructure** | Docker, Kubernetes | All Systems |
380
+
381
+ ---
382
+
383
+ ## 6. 拆分原则与理由 (Decomposition Rationale)
384
+
385
+ ### 为什么拆分为这些系统?
386
+
387
+ **技术栈维度**:
388
+ - Frontend (React) vs Backend (Python) → 技术栈完全不同,必须分离
389
+
390
+ **部署维度**:
391
+ - Frontend (静态部署CDN) vs Backend (容器部署) → 部署方式不同
392
+
393
+ **职责维度**:
394
+ - Backend API (业务逻辑) vs Agent (推理逻辑) → 职责独立,可并行开发
395
+
396
+ **变化频率**:
397
+ - Frontend (UI变化频繁) vs Database Schema (相对稳定) → 分离便于独立演进
398
+
399
+ ### 为什么不进一步拆分?
400
+
401
+ **Frontend为什么不拆分为多个系统?**
402
+ - 虽然有多个页面,但共享状态和组件,拆分会增加复杂度
403
+
404
+ **Backend为什么不拆成微服务?**
405
+ - 当前规模不需要,Modular Monolith足够
406
+ - 可以通过模块化代码结构实现关注点分离
407
+
408
+ ---
409
+
410
+ ## 7. 系统复杂度评估 (Complexity Assessment)
411
+
412
+ **系统数量**: 4个系统
413
+
414
+ **评估**:
415
+ - 数量合理 (< 10)
416
+ - 边界清晰
417
+ - 依赖关系简单(无循环依赖)
418
+
419
+ **潜在风险**:
420
+ - Backend API可能成为瓶颈(协调多个系统)
421
+ - 未来可能需要拆分Backend(当代码量 > 50K行时)
422
+
423
+ ---
424
+
425
+ ## 8. 下一步行动 (Next Steps)
426
+
427
+ ### 为每个系统设计详细文档
428
+
429
+ 运行以下命令为每个系统创建设计文档:
430
+
431
+ \`\`\`bash
432
+ /design-system frontend-system
433
+ /design-system backend-api-system
434
+ /design-system database-system
435
+ /design-system agent-system
436
+ \`\`\`
437
+
438
+ ### `/genesis` Step 5 提醒(宿主)
439
+
440
+ - 宿主应基于 Step **3 + 本文件**写入 `03_ADR/ADR_001_TECH_STACK.md` 及其他跨系统决策,结构遵循 `ADR_TEMPLATE.md`。
441
+
442
+ ### `/blueprint` 前置(整体设计完成后)
443
+
444
+ \`\`\`bash
445
+ /blueprint
446
+ \`\`\`
447
+ ```
448
+
449
+ ---
450
+
451
+ ## 拆解守则
452
+
453
+ ### 守则1:不要过度拆分
454
+
455
+ **规则**:系统数量通常 **< 10**。拆分须带来独立部署价值、生命周期或技术栈差异之一。
456
+
457
+ ### 守则2:不要过度聚合
458
+
459
+ **规则**:前端、后端、数据库**通常**为三套独立系统-ID(可有例外但必须 ADR 级论证)。
460
+
461
+ ### 守则3:边界必须清晰
462
+
463
+ **规则**:每条目 **输入 / 输出 / 序列化语义**(至少到「JSON/Event/SQL」一级)可查。
464
+
465
+ ### 守则4:使用 C4 + Mermaid 可视化
466
+
467
+ **规则**:上下文图 + 依赖图与矩阵一致。
468
+
469
+ ---
470
+
471
+ ## RFC(`references/rfc_template.md`)结构契约 — 节选规范
472
+
473
+ 仅在需要补足 **API / 函数签名 / DDL** 粒度时使用;**章节骨架不得删**。
474
+
475
+ | RFC 必选块 | 规范 |
476
+ |-----------|------|
477
+ | 高层设计 + Mermaid | 数据流与组件层级可追溯 |
478
+ | API 契约 / 函数接口 | **精确签名**,禁止占位符冒充已定契约 |
479
+ | 数据模型策略 | DDL 变更或等价声明 |
480
+ | 实施步骤 | 原子、有序 |
481
+ | 安全与风险 | 认证、校验显式 |
482
+
483
+ > 全文模板见:**`.agents/skills/system-architect/references/rfc_template.md`**(若本地化 `references/`,须保持等价章节)。
484
+
485
+ ---
486
+
487
+ ## 工具箱
488
+
489
+ **识别 Checklist**:触点 / 存储 / 核心逻辑 / 外部集成 / 部署 / 栈 — 逐项勾。
490
+ **落盘自检**:上文 **质量检查清单** + **严重度表**。
491
+
492
+ ---
493
+
494
+ ## 常见场景摘要
495
+
496
+ | 场景 | 系统(典型计数) |
497
+ |------|----------------|
498
+ | Web 三件套 | Frontend + Backend API + DB(3) |
499
+ | + Agent | + Agent(4) |
500
+ | 企业扩展 | Web + Mobile + Backend + DB + Search + Worker(≤6–8) |
501
+
502
+ ---
503
+
504
+ ## 质量检查清单
505
+
506
+ ### 系统数量
507
+
508
+ - 典型 **3–10**;无功能级微观服务化;无私服式单栏
509
+
510
+ ### 系统边界
511
+
512
+ - I/O + 契约粒度明确;职责单一且不交叉
513
+
514
+ ### 依赖关系
515
+
516
+ - 无未解释环;Mermaid 可读出与矩阵等价信息;任一系统外向依赖不宜 **> 5** 而无缓解策略
517
+
518
+ ### 文档完整性(Step 4)
519
+
520
+ - §1–8 **按模板齐备**
521
+ - Physical root + ASCII tree **每系统**一笔
522
+ - 拆分理由对冲问题已答
523
+
524
+ ---
525
+
526
+ ## CRITICAL:`/genesis` 集成提示(只读宿主条文摘要)
527
+
528
+ 宿主 **Step 6** 会更新 **`AGENTS.md`** 与本 Overview 对齐;宿主 **禁止**在未完成 Step 5 时用 ADR 内容覆盖本节系统边界。**Git 分支换轨**仍以宿主 `genesis.md` 「Pre-Check」为准。
529
+
530
+ ---
531
+
532
+ <completion_criteria>
533
+ - Architecture Overview **模板§1–8**(含边界矩阵与技术栈两张主表)、**拆解守则四章**、**严重度四章表**、**RFC 节选规范表 + ADR 发射分工 + ADR_TEMPLATE 章节表**均以规范形态保留且无 emoji。
534
+ - **CRITICAL** 块齐备:**方法论锚点**、**spec 产出契约**、**genesis 序位与 ADR/RFC 分工**、**sequential-thinking**。
535
+ - **子代理编排**与交接清单齐备;顶级 **五阶段 Step 4** + **Step 5 输入就绪** 均含「做什么/为什么/怎么验收」。
536
+ - **phase_context** 已落地;文稿与约束口径一致(禁预读、单一路径)。
537
+ - 输出路径约定仍指向 **`{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md`**。
538
+ </completion_criteria>