@haaaiawd/anws 2.4.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 +2 -2
- package/lib/manifest.js +4 -16
- package/package.json +1 -1
- package/templates/.agents/skills/anws-system/SKILL.md +5 -3
- package/templates/.agents/skills/code-reviewer/SKILL.md +6 -5
- package/templates/.agents/skills/concept-modeler/SKILL.md +6 -6
- package/templates/.agents/skills/craft-authoring/SKILL.md +1 -1
- package/templates/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +13 -32
- package/templates/.agents/skills/design-reviewer/SKILL.md +11 -11
- package/templates/.agents/skills/e2e-testing-guide/SKILL.md +3 -3
- package/templates/.agents/skills/nexus-mapper/SKILL.md +2 -2
- 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/runtime-inspector/SKILL.md +150 -99
- package/templates/.agents/skills/spec-writer/SKILL.md +3 -3
- package/templates/.agents/skills/system-architect/SKILL.md +5 -5
- package/templates/.agents/skills/system-designer/SKILL.md +188 -601
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +2 -2
- package/templates/.agents/skills/task-reviewer/SKILL.md +8 -13
- package/templates/.agents/skills/tech-evaluator/SKILL.md +19 -19
- package/templates/.agents/workflows/blueprint.md +5 -5
- package/templates/.agents/workflows/challenge.md +12 -18
- package/templates/.agents/workflows/change.md +8 -8
- package/templates/.agents/workflows/craft.md +9 -9
- package/templates/.agents/workflows/design-system.md +6 -6
- package/templates/.agents/workflows/explore.md +4 -4
- package/templates/.agents/workflows/forge.md +9 -9
- package/templates/.agents/workflows/genesis.md +9 -10
- package/templates/.agents/workflows/probe.md +6 -9
- package/templates/.agents/workflows/quickstart.md +9 -7
- package/templates/.agents/workflows/upgrade.md +9 -9
- package/templates_en/.agents/skills/anws-system/SKILL.md +5 -3
- package/templates_en/.agents/skills/code-reviewer/SKILL.md +6 -5
- package/templates_en/.agents/skills/concept-modeler/SKILL.md +6 -6
- package/templates_en/.agents/skills/craft-authoring/SKILL.md +1 -1
- package/templates_en/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +12 -30
- package/templates_en/.agents/skills/design-reviewer/SKILL.md +9 -10
- package/templates_en/.agents/skills/e2e-testing-guide/SKILL.md +3 -3
- package/templates_en/.agents/skills/nexus-mapper/SKILL.md +2 -2
- package/templates_en/.agents/skills/nexus-mapper/references/probe-protocol.md +1 -1
- package/templates_en/.agents/skills/nexus-query/SKILL.md +1 -1
- package/templates_en/.agents/skills/runtime-inspector/SKILL.md +150 -101
- package/templates_en/.agents/skills/spec-writer/SKILL.md +3 -3
- package/templates_en/.agents/skills/system-architect/SKILL.md +5 -5
- package/templates_en/.agents/skills/system-designer/SKILL.md +188 -534
- package/templates_en/.agents/skills/task-reviewer/SKILL.md +4 -10
- package/templates_en/.agents/skills/tech-evaluator/SKILL.md +6 -6
- package/templates_en/.agents/workflows/blueprint.md +5 -5
- package/templates_en/.agents/workflows/challenge.md +7 -12
- package/templates_en/.agents/workflows/change.md +7 -7
- package/templates_en/.agents/workflows/craft.md +9 -9
- package/templates_en/.agents/workflows/design-system.md +6 -6
- package/templates_en/.agents/workflows/explore.md +4 -4
- package/templates_en/.agents/workflows/forge.md +9 -9
- package/templates_en/.agents/workflows/genesis.md +9 -10
- package/templates_en/.agents/workflows/probe.md +3 -7
- package/templates_en/.agents/workflows/quickstart.md +7 -5
- package/templates_en/.agents/workflows/upgrade.md +8 -8
- package/templates/.agents/skills/report-template/SKILL.md +0 -92
- package/templates/.agents/skills/report-template/references/REPORT_TEMPLATE.md +0 -100
- package/templates_en/.agents/skills/report-template/SKILL.md +0 -85
- package/templates_en/.agents/skills/report-template/references/REPORT_TEMPLATE.md +0 -100
|
@@ -1,601 +1,188 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: system-designer
|
|
3
|
-
description:
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
>
|
|
22
|
-
>
|
|
23
|
-
>
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
### 6.
|
|
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
|
-
1
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**示例**:
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
- 前端系统 → 调研 "React + Vite最佳架构 2025"
|
|
195
|
-
- 后端API → 调研 "FastAPI最佳实践"
|
|
196
|
-
- Agent系统 → 调研 "LangGraph多智能体设计模式"
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
### 守则2: 深度思考,不拍脑袋
|
|
202
|
-
|
|
203
|
-
**规则**: 使用 `sequential-thinking` skill 组织 **3—7 个 thought**设计,视复杂情况而定。
|
|
204
|
-
|
|
205
|
-
**为什么?** 设计是复杂活动,需要系统性思考。
|
|
206
|
-
|
|
207
|
-
**思考路径**:
|
|
208
|
-
|
|
209
|
-
```
|
|
210
|
-
架构设计(模式、组件、通信)
|
|
211
|
-
接口设计(API、数据格式)
|
|
212
|
-
数据模型设计
|
|
213
|
-
Trade-offs讨论(为什么选A不选B)
|
|
214
|
-
性能与安全(瓶颈、风险、优化)
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
### 守则3: Trade-offs透明化 (Google风格)
|
|
220
|
-
|
|
221
|
-
**规则**: 每个重要技术选型都要说明"为什么选A而不是B"。
|
|
222
|
-
|
|
223
|
-
**为什么?** 帮助未来的维护者理解设计意图。
|
|
224
|
-
|
|
225
|
-
**模板**:
|
|
226
|
-
|
|
227
|
-
```markdown
|
|
228
|
-
### Decision X: [决策标题]
|
|
229
|
-
|
|
230
|
-
**Option A: [选项A] ( Selected)**
|
|
231
|
-
- 优点: [列举优点]
|
|
232
|
-
- 缺点: [列举缺点]
|
|
233
|
-
|
|
234
|
-
**Option B: [选项B]**
|
|
235
|
-
- 优点: [列举优点]
|
|
236
|
-
- 缺点: [列举缺点]
|
|
237
|
-
|
|
238
|
-
**Decision**: [为什么选A?关键理由是什么?]
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**示例**:
|
|
242
|
-
|
|
243
|
-
```markdown
|
|
244
|
-
### Decision 1: 为什么用PostgreSQL而不是MongoDB?
|
|
245
|
-
|
|
246
|
-
**Option A: PostgreSQL ( Selected)**
|
|
247
|
-
- ACID保证,强一致性
|
|
248
|
-
- 团队熟悉SQL
|
|
249
|
-
- 横向扩展不如NoSQL
|
|
250
|
-
|
|
251
|
-
**Option B: MongoDB**
|
|
252
|
-
- 灵活Schema
|
|
253
|
-
- 我们需要强一致性
|
|
254
|
-
|
|
255
|
-
**Decision**: 选择PostgreSQL,因为用户认证需要强一致性,比Schema灵活性更重要。
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
### 守则4: 架构可视化
|
|
261
|
-
|
|
262
|
-
**规则**: **必须**使用Mermaid绘制架构图和数据流图。
|
|
263
|
-
|
|
264
|
-
**为什么?** 一图胜千言。
|
|
265
|
-
|
|
266
|
-
**架构图示例**:
|
|
267
|
-
|
|
268
|
-
```mermaid
|
|
269
|
-
graph TD
|
|
270
|
-
A[User] -->|HTTP| B[Frontend]
|
|
271
|
-
B -->|API Call| C[Backend API]
|
|
272
|
-
C -->|Query| D[PostgreSQL]
|
|
273
|
-
C -->|Cache| E[Redis]
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
**数据流图示例**:
|
|
279
|
-
|
|
280
|
-
```mermaid
|
|
281
|
-
sequenceDiagram
|
|
282
|
-
User->>Frontend: 输入登录信息
|
|
283
|
-
Frontend->>Backend: POST /auth/login
|
|
284
|
-
Backend->>Database: 验证用户
|
|
285
|
-
Database-->>Backend: 用户信息
|
|
286
|
-
Backend-->>Frontend: JWT Token
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
### 守则5: 约束继承,不能放松
|
|
294
|
-
|
|
295
|
-
**规则**: 从PRD和ADR继承的约束**不能放松**,只能更严格。
|
|
296
|
-
|
|
297
|
-
**为什么?** 约束是业务和技术的底线。
|
|
298
|
-
|
|
299
|
-
**检查清单**:
|
|
300
|
-
|
|
301
|
-
- PRD的性能约束是否继承?(如: API < 200ms)
|
|
302
|
-
- PRD的安全约束是否继承?(如: HTTPS only)
|
|
303
|
-
- ADR的技术决策是否遵守?(如: 使用JWT认证)
|
|
304
|
-
|
|
305
|
-
**示例**:
|
|
306
|
-
|
|
307
|
-
```
|
|
308
|
-
PRD约束: API响应时间 p95 < 200ms
|
|
309
|
-
↓
|
|
310
|
-
System Design:
|
|
311
|
-
- 性能目标: p95 < 200ms, p99 < 500ms (更严格)
|
|
312
|
-
- 优化策略: Redis缓存、数据库索引
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
### 守则6: 追溯链完整
|
|
318
|
-
|
|
319
|
-
**规则**: 在接口设计、数据模型中引用PRD需求 `[REQ-XXX]`。
|
|
320
|
-
|
|
321
|
-
**为什么?** 保证任何设计都能回溯到需求,避免过度设计。
|
|
322
|
-
|
|
323
|
-
**示例**:
|
|
324
|
-
|
|
325
|
-
```markdown
|
|
326
|
-
## 5. 接口设计
|
|
327
|
-
|
|
328
|
-
### POST /auth/login [REQ-001]
|
|
329
|
-
**Purpose**: 用户登录认证(对应PRD需求 REQ-001)
|
|
330
|
-
|
|
331
|
-
### User Entity [REQ-001, REQ-002]
|
|
332
|
-
```typescript
|
|
333
|
-
interface User {
|
|
334
|
-
id: string;
|
|
335
|
-
email: string; // REQ-001: 用户登录
|
|
336
|
-
name: string; // REQ-002: 用户资料
|
|
337
|
-
}
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
---
|
|
343
|
-
|
|
344
|
-
### 守则 7:操作契约表格(Agent/游戏系统尓必)
|
|
345
|
-
**规则**: 对于 Agent、游戏核心、消息系统,**必须用操作契约表格代替函数伪代码**,完整伪代码移入 `.detail.md`。
|
|
346
|
-
|
|
347
|
-
**为什么?** 一行表格 = 30 行伪代码的信息量,且对 AI 上下文更友好。
|
|
348
|
-
|
|
349
|
-
**表格格式**:
|
|
350
|
-
|
|
351
|
-
```markdown
|
|
352
|
-
### 操作契约:{XXX 类操作}
|
|
353
|
-
|
|
354
|
-
| 操作 | [REQ-XXX] | 前置条件 | 消耗/输入 | 产出/副作用 | 实现细节 |
|
|
355
|
-
| ---------------------- | :-------: | ---------------------- | --------- | ---------------------------------- | :-----------------: |
|
|
356
|
-
| `embark(unit, port)` | [REQ-012] | 陆地单位;有港口;未行动 | 3 | 生成 Boat,承载 unit;原 unit 消失 | [§3.1](./detail.md) |
|
|
357
|
-
| `disembark(boat, pos)` | [REQ-012] | boat 有承载;目标是陆地 | 0 | 释放单位至 pos;boat 解体 | [§3.2](./detail.md) |
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
**填写要领**:
|
|
361
|
-
|
|
362
|
-
- 操作名: `func_name(key_params)` 风格,参数只写关键入参,不写类型注解
|
|
363
|
-
- 前置条件: 以「;」分隔,不超过 3 个
|
|
364
|
-
- 实现细节: 链接到 `.detail.md` 对应章节(如尚未创建,填「待补充」)
|
|
365
|
-
|
|
366
|
-
---
|
|
367
|
-
|
|
368
|
-
### 守则 8:Mermaid 优先于伪代码
|
|
369
|
-
|
|
370
|
-
**规则**: 对于决策树、状态机类逻辑,**优先使用 Mermaid flowchart**,完整伪代码移入 `.detail.md`。
|
|
371
|
-
|
|
372
|
-
**为什么?** Mermaid 图在 L0 层对 AI 输入 Token 消耗更低,且可视化程度更高。
|
|
373
|
-
|
|
374
|
-
**示例**:
|
|
375
|
-
|
|
376
|
-
```markdown
|
|
377
|
-
### 决策树:陆地单位任务规划
|
|
378
|
-
|
|
379
|
-
```mermaid
|
|
380
|
-
flowchart TD
|
|
381
|
-
A[单位在中立村落上?] -->|是| B[→ capture 任务, 优先级 100]
|
|
382
|
-
A -->|否| C[HP < 撤退阀值?]
|
|
383
|
-
C -->|是| D[→ move_to 最近己方城市, 优先级 90]
|
|
384
|
-
C -->|否| E{军事策略}
|
|
385
|
-
E -->|aggressive| F[→ 攻击/趋近目标]
|
|
386
|
-
E -->|defensive| G[→ 守卫无防御城市]
|
|
387
|
-
E -->|neutral| H[→ 探索/扩张焦点]
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
> 完整实现见 `[executor.detail.md §4.1](./executor.detail.md)`
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
### 工具1: 系统设计 L0 模板(导航层)
|
|
396
|
-
|
|
397
|
-
- **路径**: `.agent/skills/system-designer/references/system-design-template.md`
|
|
398
|
-
- **用途**: L0 导航层模板,14章节结构,操作契约表格格式
|
|
399
|
-
- **使用**: `view_file .agent/skills/system-designer/references/system-design-template.md`
|
|
400
|
-
|
|
401
|
-
### 工具2: 系统设计 L1 模板(实现层)
|
|
402
|
-
|
|
403
|
-
- **路径**: `.agent/skills/system-designer/references/system-design-detail-template.md`
|
|
404
|
-
- **用途**: L1 实现层模板,触发 R1-R5 任意一条时创建 `{system}.detail.md`
|
|
405
|
-
- **使用**: `view_file .agent/skills/system-designer/references/system-design-detail-template.md`
|
|
406
|
-
|
|
407
|
-
### 工具3: 调研报告存储
|
|
408
|
-
|
|
409
|
-
- **路径**: `.anws/v{N}/04_SYSTEM_DESIGN/_research/{system-id}-research.md`
|
|
410
|
-
- **用途**: 保存 /explore 的调研结果
|
|
411
|
-
- **格式**: Exploration Report (由 /explore 生成)
|
|
412
|
-
|
|
413
|
-
### 工具4: 架构图工具
|
|
414
|
-
|
|
415
|
-
- **工具**: Mermaid
|
|
416
|
-
- **语法**:
|
|
417
|
-
- `graph TD` - 架构图
|
|
418
|
-
- `flowchart TD` - 决策树(优先用此替代伪代码,见守则8)
|
|
419
|
-
- `sequenceDiagram` - 数据流图
|
|
420
|
-
- `classDiagram` - 实体关系图
|
|
421
|
-
- **参考**: [Mermaid Documentation](https://mermaid.js.org/)
|
|
422
|
-
|
|
423
|
-
---
|
|
424
|
-
|
|
425
|
-
## 质量检查清单
|
|
426
|
-
|
|
427
|
-
在完成系统设计文档后,使用此清单自检:
|
|
428
|
-
|
|
429
|
-
### 结构完整性
|
|
430
|
-
|
|
431
|
-
- 包含所有11个必需章节
|
|
432
|
-
- 架构图存在且清晰(Mermaid)
|
|
433
|
-
- 数据流图存在(如适用)
|
|
434
|
-
- 如系统涉及公共契约,11.5 Contract Verification Matrix 已填写
|
|
435
|
-
- Trade-offs章节至少讨论2个重要决策
|
|
436
|
-
|
|
437
|
-
### 内容质量
|
|
438
|
-
|
|
439
|
-
- 系统边界定义清晰(输入/输出/依赖)
|
|
440
|
-
- **§5 接口设计使用操作契约表格**,而非函数伪代码(守则7)
|
|
441
|
-
- **§6 数据模型只有属性字段 + Protocol 签名**,无方法体(守则8)
|
|
442
|
-
- Trade-offs 章节至少讨论 2 个重要决策
|
|
443
|
-
- 决策树/流程图使用 Mermaid,而非伪代码(守则8)
|
|
444
|
-
|
|
445
|
-
### 约束遵守
|
|
446
|
-
|
|
447
|
-
- PRD 的性能约束已继承
|
|
448
|
-
- PRD 的安全约束已继承
|
|
449
|
-
- ADR 的技术决策已遵守
|
|
450
|
-
- 追溯链完整([REQ-XXX] 引用)
|
|
451
|
-
- **L0 文件无方法体伪代码**(如有,立即移入 `.detail.md §3`)
|
|
452
|
-
- **触发 R1-R5 时已创建 `.detail.md`**(否则标记「待补充」)
|
|
453
|
-
|
|
454
|
-
### 可实施性
|
|
455
|
-
|
|
456
|
-
- 操作契约表格完整(每个核心操作都有对应行)
|
|
457
|
-
- 测试策略明确(单元/集成/E2E)
|
|
458
|
-
- 如已创建 `.detail.md`,§3 每个小节都填写了「准入理由」
|
|
459
|
-
- 部署流程清晰(如需要)
|
|
460
|
-
|
|
461
|
-
---
|
|
462
|
-
|
|
463
|
-
## 常见场景与最佳实践
|
|
464
|
-
|
|
465
|
-
### 场景1: 设计前端系统
|
|
466
|
-
|
|
467
|
-
**核心关注**:
|
|
468
|
-
|
|
469
|
-
- 组件设计(可复用性、Props接口)
|
|
470
|
-
- 状态管理(Context vs Zustand vs Redux)
|
|
471
|
-
- 路由设计(React Router)
|
|
472
|
-
- 性能优化(懒加载、Code Splitting)
|
|
473
|
-
|
|
474
|
-
**调研主题**:
|
|
475
|
-
|
|
476
|
-
- "React组件设计模式 2025"
|
|
477
|
-
- "React状态管理最佳实践"
|
|
478
|
-
- "前端性能优化技巧"
|
|
479
|
-
|
|
480
|
-
**Trade-offs示例**:
|
|
481
|
-
|
|
482
|
-
- Context API vs Zustand
|
|
483
|
-
- CSS-in-JS vs TailwindCSS
|
|
484
|
-
|
|
485
|
-
---
|
|
486
|
-
|
|
487
|
-
### 场景2: 设计后端API系统
|
|
488
|
-
|
|
489
|
-
**核心关注**:
|
|
490
|
-
|
|
491
|
-
- API设计(RESTful vs GraphQL)
|
|
492
|
-
- 认证授权(JWT vs Session)
|
|
493
|
-
- 数据库连接(ORM vs 原生SQL)
|
|
494
|
-
- 缓存策略(Redis、本地缓存)
|
|
495
|
-
|
|
496
|
-
**调研主题**:
|
|
497
|
-
|
|
498
|
-
- "FastAPI最佳架构 2025"
|
|
499
|
-
- "RESTful API设计最佳实践"
|
|
500
|
-
- "API性能优化与缓存"
|
|
501
|
-
|
|
502
|
-
**Trade-offs示例**:
|
|
503
|
-
|
|
504
|
-
- JWT vs Session
|
|
505
|
-
- PostgreSQL vs MongoDB
|
|
506
|
-
- SQLAlchemy ORM vs 原生SQL
|
|
507
|
-
|
|
508
|
-
---
|
|
509
|
-
|
|
510
|
-
### 场景3: 设计数据库系统
|
|
511
|
-
|
|
512
|
-
**核心关注**:
|
|
513
|
-
|
|
514
|
-
- Schema设计(规范化 vs 反规范化)
|
|
515
|
-
- 索引策略(B-tree vs Hash)
|
|
516
|
-
- 事务隔离级别
|
|
517
|
-
- 备份恢复策略
|
|
518
|
-
|
|
519
|
-
**调研主题**:
|
|
520
|
-
|
|
521
|
-
- "PostgreSQL数据库设计最佳实践"
|
|
522
|
-
- "数据库索引优化策略"
|
|
523
|
-
- "PostgreSQL性能调优"
|
|
524
|
-
|
|
525
|
-
**Trade-offs示例**:
|
|
526
|
-
|
|
527
|
-
- 规范化(3NF)vs 性能优化(反规范化)
|
|
528
|
-
- ACID vs 最终一致性
|
|
529
|
-
|
|
530
|
-
---
|
|
531
|
-
|
|
532
|
-
### 场景4: 设计多智能体系统
|
|
533
|
-
|
|
534
|
-
**核心关注**:
|
|
535
|
-
|
|
536
|
-
- Agent协作模式(Supervisor、Workflow)
|
|
537
|
-
- 消息传递格式
|
|
538
|
-
- 工具调用设计
|
|
539
|
-
- 错误处理与重试
|
|
540
|
-
|
|
541
|
-
**调研主题**:
|
|
542
|
-
|
|
543
|
-
- "LangGraph多智能体设计模式"
|
|
544
|
-
- "LLM工具调用最佳实践"
|
|
545
|
-
- "Agent错误处理策略"
|
|
546
|
-
|
|
547
|
-
**Trade-offs示例**:
|
|
548
|
-
|
|
549
|
-
- Supervisor模式 vs Workflow模式
|
|
550
|
-
- Function Calling vs 文本解析
|
|
551
|
-
|
|
552
|
-
---
|
|
553
|
-
|
|
554
|
-
## 快速上手示例
|
|
555
|
-
|
|
556
|
-
**任务**: 为后端API系统设计文档
|
|
557
|
-
|
|
558
|
-
**Step 1: 发现 (Discover)**
|
|
559
|
-
|
|
560
|
-
```
|
|
561
|
-
系统: backend-api-system
|
|
562
|
-
职责: 处理前端API请求、业务逻辑、数据库交互
|
|
563
|
-
边界: 输入HTTP请求 → 输出JSON响应
|
|
564
|
-
关联需求: [REQ-001] 用户登录, [REQ-002] Dashboard数据
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
**Step 2: 深潜 (Deep-Dive)**
|
|
568
|
-
|
|
569
|
-
```
|
|
570
|
-
/explore "FastAPI后端系统最佳架构设计 2025"
|
|
571
|
-
→ 产出: _research/backend-api-system-research.md
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
**Step 3-5: 分解 + 设计 + 防御**
|
|
575
|
-
|
|
576
|
-
```
|
|
577
|
-
使用 `sequential-thinking` 组织 3—7 个 thought:
|
|
578
|
-
1. 采用分层架构 (Presentation → Business → Data)
|
|
579
|
-
2. 核心组件: AuthService, UserService, DatabaseManager
|
|
580
|
-
3. API设计: POST /auth/login, GET /users/me
|
|
581
|
-
4. 数据模型: User(id, email, passwordHash)
|
|
582
|
-
5. 技术栈: FastAPI + SQLAlchemy + PostgreSQL
|
|
583
|
-
6. Trade-off: 为什么用JWT而不是Session?
|
|
584
|
-
7. 性能: Redis缓存用户信息,TTL 5分钟
|
|
585
|
-
8. 安全: bcrypt密码哈希,Rate limiting
|
|
586
|
-
...
|
|
587
|
-
```
|
|
588
|
-
|
|
589
|
-
**Step 6: 文档化 (Document)**
|
|
590
|
-
|
|
591
|
-
```
|
|
592
|
-
使用模板填充14章节 → 保存到:
|
|
593
|
-
.anws/v{N}/04_SYSTEM_DESIGN/backend-api-system.md
|
|
594
|
-
```
|
|
595
|
-
|
|
596
|
-
---
|
|
597
|
-
|
|
598
|
-
**记住**: 好的设计是站在巨人肩膀上的。
|
|
599
|
-
调研业界最佳实践,深度思考权衡,清晰文档化。
|
|
600
|
-
|
|
601
|
-
Happy Designing!
|
|
1
|
+
---
|
|
2
|
+
name: system-designer
|
|
3
|
+
description: 当 `/design-system <system-id>` 需要为单个系统生成 L0/L1 详细设计文档时加载。负责系统边界、接口契约、数据模型、Trade-off、Mermaid 图、测试策略与 L1 拆分判断;与同工作区 `/design-system` workflow 配套使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# System Designer(ALPHA)
|
|
7
|
+
|
|
8
|
+
<phase_context>
|
|
9
|
+
你是 **SYSTEM DESIGNER(系统设计师)**。
|
|
10
|
+
|
|
11
|
+
**使命**:把 `02_ARCHITECTURE_OVERVIEW.md` 中的单个 `system-id` 细化为可执行、可审查、可被 `/blueprint` 消费的系统设计文档。
|
|
12
|
+
**能力**:继承 PRD/ADR/Architecture 约束;吸收 `/explore` 调研;使用 6D 框架推导组件、接口、数据模型、风险与测试策略;按模板落盘 L0,并在触发 R1-R5 时落盘 L1。
|
|
13
|
+
**限制**:不改变 PRD、ADR 或系统边界前提;不在 L0 塞长伪代码、配置字典或方法体;不复制 ADR 正文,只引用 ADR。
|
|
14
|
+
**Output Goal**:`{TARGET_DIR}/04_SYSTEM_DESIGN/{system-id}.md`,条件触发时另有 `{system-id}.detail.md` 与 `_research/{system-id}-research.md`。
|
|
15
|
+
</phase_context>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## CRITICAL 写作与输出契约
|
|
20
|
+
|
|
21
|
+
> [!IMPORTANT]
|
|
22
|
+
> 持久化报告、证据、单写者与去重复规则遵守 `.agents/skills/output-contract/SKILL.md`。本 skill 只补充系统设计专属契约。
|
|
23
|
+
>
|
|
24
|
+
> - **约束继承**:PRD、ADR、Architecture Overview 中的性能、安全、接口、技术栈与系统边界只能收紧,不能放松。
|
|
25
|
+
> - **ADR 单向引用**:跨系统决策只引用 `03_ADR/*`,不复制决策理由;若发现 ADR 不足,回流 `/change` 或 `/genesis`。
|
|
26
|
+
> - **L0 轻量导航**:L0 只放架构、契约、字段声明、关键图与取舍;长算法、长配置、伪代码和边缘实现进入 L1。
|
|
27
|
+
> - **可追溯**:接口、数据模型、测试策略和 Trade-off 至少能指回 `[REQ-*]`、ADR 或 Architecture 小节之一。
|
|
28
|
+
> - **无空占位**:未知项写 `[OPEN: 具体问题 + owner/下一步]`,禁止 `TBD`、`TODO`、泛泛“后续优化”。
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 设计框架:6D
|
|
33
|
+
|
|
34
|
+
### 1. Discover(发现)
|
|
35
|
+
|
|
36
|
+
### 做什么
|
|
37
|
+
读取 `01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md`、相关 `03_ADR/*` 与本系统已有 `04_SYSTEM_DESIGN` 草稿;提取职责、边界、依赖、关联 `[REQ-*]` 与不做事项。
|
|
38
|
+
|
|
39
|
+
### 为什么
|
|
40
|
+
详细设计不是重新发明系统,而是把已批准边界细化到可实现契约。
|
|
41
|
+
|
|
42
|
+
### 怎么验收
|
|
43
|
+
- 能用一句话说明本系统职责。
|
|
44
|
+
- 能列出输入、输出、依赖系统、关联需求和相关 ADR。
|
|
45
|
+
|
|
46
|
+
### 2. Deep-Dive(调研)
|
|
47
|
+
|
|
48
|
+
### 做什么
|
|
49
|
+
使用同工作区 `/explore` 产出 `_research/{system-id}-research.md`;调研只服务当前系统风险,不做泛泛资料堆叠。
|
|
50
|
+
|
|
51
|
+
### 为什么
|
|
52
|
+
复杂设计需要外部证据;否则 Trade-off 容易变成偏好陈述。
|
|
53
|
+
|
|
54
|
+
### 怎么验收
|
|
55
|
+
- 研究结论至少支撑一个设计取舍或风险缓解。
|
|
56
|
+
- `_research` 路径存在,或 `/design-system` 明确给出不适用理由。
|
|
57
|
+
|
|
58
|
+
### 3. Decompose(分解)
|
|
59
|
+
|
|
60
|
+
### 做什么
|
|
61
|
+
拆出组件、模块、数据流、状态流与外部接口;复杂系统按宿主规则使用 `sequential-thinking`。
|
|
62
|
+
|
|
63
|
+
### 为什么
|
|
64
|
+
组件边界决定可测性、依赖方向和后续任务拆解质量。
|
|
65
|
+
|
|
66
|
+
### 怎么验收
|
|
67
|
+
- 每个核心组件有职责和依赖。
|
|
68
|
+
- Mermaid 架构图或数据流图能与组件清单对上。
|
|
69
|
+
|
|
70
|
+
### 4. Design(设计)
|
|
71
|
+
|
|
72
|
+
### 做什么
|
|
73
|
+
定义接口契约、数据模型、错误语义、配置边界、状态转换与安全/性能策略。接口优先使用操作契约表;数据模型只写字段与关系,不写方法体。
|
|
74
|
+
|
|
75
|
+
### 为什么
|
|
76
|
+
`/blueprint` 需要的是外部可观察契约,不是实现散文。
|
|
77
|
+
|
|
78
|
+
### 怎么验收
|
|
79
|
+
- 核心操作有契约表或等价接口表。
|
|
80
|
+
- 数据字段、错误语义和验证责任可追溯。
|
|
81
|
+
|
|
82
|
+
### 5. Defend(防御)
|
|
83
|
+
|
|
84
|
+
### 做什么
|
|
85
|
+
列出关键 Trade-off、性能瓶颈、安全边界、可观测性与测试策略;公共契约须有 Contract Verification Matrix。
|
|
86
|
+
|
|
87
|
+
### 为什么
|
|
88
|
+
设计文档要提前暴露失败模式,不要把风险留给 `/forge` 猜。
|
|
89
|
+
|
|
90
|
+
### 怎么验收
|
|
91
|
+
- 至少两个重要决策有“选 A 不选 B”的理由。
|
|
92
|
+
- 测试策略覆盖单元、接口/API、集成/E2E 的适用边界。
|
|
93
|
+
|
|
94
|
+
### 6. Document(文档化)
|
|
95
|
+
|
|
96
|
+
### 做什么
|
|
97
|
+
读取 `.agents/skills/system-designer/references/system-design-template.md` 与按需读取 `system-design-detail-template.md`,落盘 L0/L1。
|
|
98
|
+
|
|
99
|
+
### 为什么
|
|
100
|
+
模板是长期维护契约;宿主和下游依赖固定章节语义。
|
|
101
|
+
|
|
102
|
+
### 怎么验收
|
|
103
|
+
- L0 必需章节 1-11 齐全;可选章节 12-14 按需要保留或写 N/A。
|
|
104
|
+
- 若触发 L1 规则,L0 有指向 `.detail.md` 的导航链接。
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## L0 / L1 文档边界
|
|
109
|
+
|
|
110
|
+
| 层次 | 文件 | 内容 | 加载频率 |
|
|
111
|
+
| --- | --- | --- | --- |
|
|
112
|
+
| L0 导航层 | `{system-id}.md` | 目标、边界、架构图、操作契约、字段声明、Trade-off、测试策略 | 高,每次任务规划必读 |
|
|
113
|
+
| L1 实现层 | `{system-id}.detail.md` | 长伪代码、配置常量、复杂算法、边缘实现、详细状态表 | 低,仅任务输入明确引用时读取 |
|
|
114
|
+
|
|
115
|
+
### L1 拆分规则 R1-R5
|
|
116
|
+
|
|
117
|
+
触发任一项即创建 `{system-id}.detail.md`:
|
|
118
|
+
|
|
119
|
+
| 规则 | 触发条件 | 处理 |
|
|
120
|
+
| --- | --- | --- |
|
|
121
|
+
| R1 | 单个连续代码块 > 30 行 | 移入 L1 |
|
|
122
|
+
| R2 | 全文代码块总行数 > 200 行 | 移入 L1 |
|
|
123
|
+
| R3 | 配置常量字典条目 > 5 个 | 移入 L1 或配置表 |
|
|
124
|
+
| R4 | 版本内联注释 > 5 处 | 归并到版本历史 |
|
|
125
|
+
| R5 | L0 总行数 > 500 行 | 拆出 L1 |
|
|
126
|
+
|
|
127
|
+
### 内容归属
|
|
128
|
+
|
|
129
|
+
| 内容类型 | L0 | L1 |
|
|
130
|
+
| --- | --- | --- |
|
|
131
|
+
| 系统目标、边界、架构图、Trade-off | 是 | 否 |
|
|
132
|
+
| 操作契约表、HTTP/CLI/跨系统协议 | 是 | 细节补充 |
|
|
133
|
+
| 数据字段、Protocol/ABC 签名 | 是 | 复杂 schema 示例 |
|
|
134
|
+
| 函数体伪代码、复杂算法 | 否 | 是 |
|
|
135
|
+
| 配置常量、边缘场景展开 | 摘要 | 是 |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 模板与章节
|
|
140
|
+
|
|
141
|
+
使用 `.agents/skills/system-designer/references/system-design-template.md`。
|
|
142
|
+
|
|
143
|
+
**L0 必需章节 1-11**:
|
|
144
|
+
|
|
145
|
+
1. Overview
|
|
146
|
+
2. Goals & Non-Goals
|
|
147
|
+
3. Background & Context
|
|
148
|
+
4. Architecture
|
|
149
|
+
5. Interface Design
|
|
150
|
+
6. Data Model
|
|
151
|
+
7. Technology Stack
|
|
152
|
+
8. Trade-offs & Alternatives
|
|
153
|
+
9. Security Considerations
|
|
154
|
+
10. Performance Considerations
|
|
155
|
+
11. Testing Strategy
|
|
156
|
+
|
|
157
|
+
**可选章节 12-14**:Deployment & Operations、Future Considerations、Appendix。可选不等于随意删除;不适用时写 `N/A + 理由`。
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 设计守则
|
|
162
|
+
|
|
163
|
+
- **调研先行**:设计前先获得研究证据或明确不适用理由。
|
|
164
|
+
- **Mermaid 优先**:架构、数据流、状态机和决策树优先用 Mermaid,长伪代码进 L1。
|
|
165
|
+
- **操作契约优先**:Agent、游戏核心、消息系统、CLI/API 等公共行为用操作契约表表达。
|
|
166
|
+
- **约束不放松**:继承 PRD/ADR 的性能、安全、合规、技术栈与错误语义。
|
|
167
|
+
- **取舍可复查**:重要决策必须有备选方案与后果。
|
|
168
|
+
- **公共契约可验证**:公共接口、配置、错误语义、持久化结构必须在测试策略中有承接。
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Handoff checklist
|
|
173
|
+
|
|
174
|
+
- [ ] 已读取 `01`、`02`、相关 `03_ADR/*`、`_research` 与模板。
|
|
175
|
+
- [ ] L0 文件存在,必需章节 1-11 齐全。
|
|
176
|
+
- [ ] L1 触发规则已判定;触发时 `.detail.md` 已创建并由 L0 链接。
|
|
177
|
+
- [ ] §5 操作契约、§6 数据模型、§8 ADR 引用、§11 测试策略无互相矛盾。
|
|
178
|
+
- [ ] 无 `.agent/` 旧路径、无 emoji、无 `TODO/TBD` 空占位。
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
<completion_criteria>
|
|
183
|
+
- `system_id` 与 `TARGET_DIR` 已由 `/design-system` 宿主确认。
|
|
184
|
+
- 输出遵守 `.agents/skills/output-contract/SKILL.md` 的落盘与协作闭环。
|
|
185
|
+
- L0/L1 边界、R1-R5、必需 1-11 章、可选 12-14 章语义清楚。
|
|
186
|
+
- 所有公共契约均有来源锚点与验证责任。
|
|
187
|
+
- 本 skill 仅服务 `/design-system`,不越权修改 PRD、ADR、Architecture 或 05A/05B。
|
|
188
|
+
</completion_criteria>
|