@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.
- package/README.md +1 -1
- package/bin/cli.js +53 -23
- package/lib/diff.js +5 -2
- package/lib/init.js +217 -96
- package/lib/install-state.js +18 -3
- package/lib/manifest.js +364 -79
- package/lib/prompt.js +68 -0
- package/lib/resources/index.js +36 -2
- package/lib/update.js +12 -6
- package/package.json +48 -47
- package/templates/.agents/skills/anws-system/SKILL.md +107 -105
- package/templates/.agents/skills/code-reviewer/SKILL.md +171 -115
- package/templates/.agents/skills/concept-modeler/SKILL.md +230 -179
- package/templates/.agents/skills/craft-authoring/SKILL.md +186 -183
- package/templates/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +42 -0
- package/templates/.agents/skills/design-reviewer/SKILL.md +265 -190
- package/templates/.agents/skills/e2e-testing-guide/SKILL.md +246 -135
- package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -321
- package/templates/.agents/skills/nexus-mapper/references/probe-protocol.md +1 -1
- package/templates/.agents/skills/nexus-query/SKILL.md +1 -1
- package/templates/.agents/skills/output-contract/SKILL.md +37 -0
- package/templates/.agents/skills/runtime-inspector/SKILL.md +150 -99
- package/templates/.agents/skills/sequential-thinking/SKILL.md +222 -225
- package/templates/.agents/skills/spec-writer/SKILL.md +75 -30
- package/templates/.agents/skills/system-architect/SKILL.md +538 -678
- package/templates/.agents/skills/system-designer/SKILL.md +124 -537
- package/templates/.agents/skills/task-planner/SKILL.md +1 -2
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +2 -2
- package/templates/.agents/skills/task-reviewer/SKILL.md +421 -386
- package/templates/.agents/skills/tech-evaluator/SKILL.md +252 -144
- package/templates/.agents/workflows/blueprint.md +156 -68
- package/templates/.agents/workflows/challenge.md +322 -494
- package/templates/.agents/workflows/change.md +182 -339
- package/templates/.agents/workflows/craft.md +159 -197
- package/templates/.agents/workflows/design-system.md +202 -674
- package/templates/.agents/workflows/explore.md +187 -399
- package/templates/.agents/workflows/forge.md +650 -609
- package/templates/.agents/workflows/genesis.md +438 -351
- package/templates/.agents/workflows/probe.md +215 -240
- package/templates/.agents/workflows/quickstart.md +304 -123
- package/templates/.agents/workflows/upgrade.md +145 -182
- package/templates_en/.agents/skills/anws-system/SKILL.md +110 -0
- package/templates_en/.agents/skills/code-reviewer/SKILL.md +171 -0
- package/templates_en/.agents/skills/concept-modeler/SKILL.md +230 -0
- package/templates_en/.agents/skills/craft-authoring/SKILL.md +179 -0
- package/templates_en/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +42 -0
- package/templates_en/.agents/skills/craft-authoring/references/PROMPT_QUALITY_RUBRIC.md +92 -0
- package/templates_en/.agents/skills/craft-authoring/references/SCORECARD_TEMPLATE.md +52 -0
- package/templates_en/.agents/skills/design-reviewer/SKILL.md +264 -0
- package/templates_en/.agents/skills/e2e-testing-guide/SKILL.md +246 -0
- package/templates_en/.agents/skills/nexus-mapper/SKILL.md +306 -0
- package/templates_en/.agents/skills/nexus-mapper/references/language-customization.md +167 -0
- package/templates_en/.agents/skills/nexus-mapper/references/output-schema.md +311 -0
- package/templates_en/.agents/skills/nexus-mapper/references/probe-protocol.md +246 -0
- package/templates_en/.agents/skills/nexus-mapper/scripts/extract_ast.py +706 -0
- package/templates_en/.agents/skills/nexus-mapper/scripts/git_detective.py +194 -0
- package/templates_en/.agents/skills/nexus-mapper/scripts/languages.json +127 -0
- package/templates_en/.agents/skills/nexus-mapper/scripts/query_graph.py +556 -0
- package/templates_en/.agents/skills/nexus-mapper/scripts/requirements.txt +6 -0
- package/templates_en/.agents/skills/nexus-query/SKILL.md +114 -0
- package/templates_en/.agents/skills/nexus-query/scripts/extract_ast.py +706 -0
- package/templates_en/.agents/skills/nexus-query/scripts/git_detective.py +194 -0
- package/templates_en/.agents/skills/nexus-query/scripts/languages.json +127 -0
- package/templates_en/.agents/skills/nexus-query/scripts/query_graph.py +556 -0
- package/templates_en/.agents/skills/nexus-query/scripts/requirements.txt +6 -0
- package/templates_en/.agents/skills/output-contract/SKILL.md +37 -0
- package/templates_en/.agents/skills/runtime-inspector/SKILL.md +150 -0
- package/templates_en/.agents/skills/sequential-thinking/SKILL.md +214 -0
- package/templates_en/.agents/skills/spec-writer/SKILL.md +153 -0
- package/templates_en/.agents/skills/spec-writer/references/prd_template.md +177 -0
- package/templates_en/.agents/skills/system-architect/SKILL.md +538 -0
- package/templates_en/.agents/skills/system-architect/references/rfc_template.md +59 -0
- package/templates_en/.agents/skills/system-designer/SKILL.md +188 -0
- package/templates_en/.agents/skills/system-designer/references/system-design-detail-template.md +187 -0
- package/templates_en/.agents/skills/system-designer/references/system-design-template.md +605 -0
- package/templates_en/.agents/skills/task-planner/SKILL.md +251 -0
- package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +109 -0
- package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05B.md +176 -0
- package/templates_en/.agents/skills/task-reviewer/SKILL.md +422 -0
- package/templates_en/.agents/skills/tech-evaluator/SKILL.md +252 -0
- package/templates_en/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +78 -0
- package/templates_en/.agents/workflows/blueprint.md +200 -0
- package/templates_en/.agents/workflows/challenge.md +326 -0
- package/templates_en/.agents/workflows/change.md +182 -0
- package/templates_en/.agents/workflows/craft.md +159 -0
- package/templates_en/.agents/workflows/design-system.md +202 -0
- package/templates_en/.agents/workflows/explore.md +187 -0
- package/templates_en/.agents/workflows/forge.md +651 -0
- package/templates_en/.agents/workflows/genesis.md +438 -0
- package/templates_en/.agents/workflows/probe.md +215 -0
- package/templates_en/.agents/workflows/quickstart.md +305 -0
- package/templates_en/.agents/workflows/upgrade.md +145 -0
- package/templates_en/AGENTS.md +149 -0
- package/templates/.agents/skills/report-template/SKILL.md +0 -92
- package/templates/.agents/skills/report-template/references/REPORT_TEMPLATE.md +0 -100
|
@@ -1,678 +1,538 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
>
|
|
23
|
-
>
|
|
24
|
-
>
|
|
25
|
-
> 3
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
>
|
|
35
|
-
>
|
|
36
|
-
>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
###
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
→
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
[
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
-
|
|
224
|
-
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
-
|
|
241
|
-
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
-
|
|
271
|
-
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
-
|
|
277
|
-
-
|
|
278
|
-
|
|
279
|
-
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
- Agent
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
**
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
-
|
|
435
|
-
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
---
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
-
|
|
521
|
-
-
|
|
522
|
-
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
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>
|