@haaaiawd/anws 1.0.1 → 1.2.0
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/lib/init.js +24 -0
- package/lib/update.js +55 -0
- package/package.json +1 -1
- package/templates/.agent/rules/agents.md +112 -90
- package/templates/.agent/skills/design-reviewer/SKILL.md +161 -0
- package/templates/.agent/skills/spec-writer/SKILL.md +50 -0
- package/templates/.agent/skills/spec-writer/references/prd_template.md +116 -113
- package/templates/.agent/skills/system-designer/SKILL.md +113 -19
- package/templates/.agent/skills/system-designer/references/system-design-detail-template.md +198 -0
- package/templates/.agent/skills/system-designer/references/system-design-template.md +118 -145
- package/templates/.agent/skills/task-planner/SKILL.md +60 -1
- package/templates/.agent/skills/task-planner/references/TASK_TEMPLATE.md +15 -4
- package/templates/.agent/skills/task-reviewer/SKILL.md +287 -0
- package/templates/.agent/workflows/blueprint.md +146 -11
- package/templates/.agent/workflows/challenge.md +113 -127
- package/templates/.agent/workflows/change.md +8 -0
- package/templates/.agent/workflows/craft.md +8 -0
- package/templates/.agent/workflows/design-system.md +88 -17
- package/templates/.agent/workflows/explore.md +9 -0
- package/templates/.agent/workflows/forge.md +95 -42
- package/templates/.agent/workflows/genesis.md +36 -2
- package/templates/.agent/workflows/quickstart.md +262 -0
- package/templates/.agent/workflows/scout.md +10 -1
|
@@ -1,174 +1,177 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 产品需求文档 (PRD) v2.0
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
**项目名称**: [项目名称]
|
|
4
|
+
**功能名称**: [功能/需求名称]
|
|
5
|
+
**文档状态**: 草稿 (Draft) | 评审中 (Review) | 已通过 (Approved)
|
|
6
|
+
**版本号**: 1.0
|
|
7
|
+
**负责人**: [作者名字或 Agent]
|
|
8
|
+
**创建日期**: [YYYY-MM-DD]
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
## 1. Executive Summary
|
|
13
|
-
<!--
|
|
14
|
-
<!-- ⚠️ CRITICAL:
|
|
12
|
+
## 1. 执行摘要 (Executive Summary)
|
|
13
|
+
<!-- 上下文压缩:在 50 字以内说明"为什么做"和"做了什么"。 -->
|
|
14
|
+
<!-- ⚠️ CRITICAL: 这是"电梯演讲",必须控制在 50 字以内。 -->
|
|
15
15
|
|
|
16
|
-
[
|
|
16
|
+
[简明扼要地描述要解决的问题以及所提出的解决方案,请聚焦于核心价值。]
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
## 2. Background & Context
|
|
21
|
-
<!--
|
|
20
|
+
## 2. 背景与上下文 (Background & Context)
|
|
21
|
+
<!-- 提供充分的业务和背景知识,帮助后续架构和系统设计阶段更好地理解上下文。 -->
|
|
22
22
|
|
|
23
|
-
### 2.1 Problem Statement
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
23
|
+
### 2.1 问题陈述 (Problem Statement)
|
|
24
|
+
- **当前痛点**: [用户当前面临的具体问题]
|
|
25
|
+
- **影响范围**: [受影响的用户群体/业务范围]
|
|
26
|
+
- **业务影响**: [对业务的实际影响,例如收入损失、用户流失、效率低下等]
|
|
27
27
|
|
|
28
|
-
### 2.2
|
|
29
|
-
[
|
|
28
|
+
### 2.2 核心机会 (Opportunity)
|
|
29
|
+
[如果成功解决这个问题,能带来什么积极价值?请尽量定量描述。]
|
|
30
30
|
|
|
31
|
-
### 2.3 Reference & Competitors
|
|
32
|
-
<!--
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
31
|
+
### 2.3 竞品与参考 (Reference & Competitors) — 可选
|
|
32
|
+
<!-- 了解市场已有的解决方案,避免在成熟领域重新发明轮子。 -->
|
|
33
|
+
- **竞品 A**: [特点、优缺点]
|
|
34
|
+
- **竞品 B**: [特点、优缺点]
|
|
35
|
+
- **我们的护城河**: [与竞品的差异化优势/独特价值]
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
## 3. Goals & Non-Goals
|
|
39
|
+
## 3. 目标与范围 (Goals & Non-Goals)
|
|
40
40
|
|
|
41
|
-
### 3.1 Goals
|
|
42
|
-
<!-- ⚠️ CRITICAL: 必须使用 SMART 原则 (
|
|
41
|
+
### 3.1 目标 (Goals)
|
|
42
|
+
<!-- ⚠️ CRITICAL: 必须使用 SMART 原则 (明确、可衡量、可实现、相关性强、有时限) -->
|
|
43
43
|
|
|
44
|
-
- **[G1]**: [
|
|
45
|
-
- **[G2]**: [
|
|
44
|
+
- **[G1]**: [可衡量的业务目标,如: 用户登录转化率提升至 95% 以上]
|
|
45
|
+
- **[G2]**: [可衡量的技术目标,如: 列表页 P95 加载时间 < 1.5s]
|
|
46
46
|
|
|
47
|
-
### 3.2 Non-Goals
|
|
48
|
-
<!--
|
|
47
|
+
### 3.2 非目标 (Non-Goals)
|
|
48
|
+
<!-- 明确"不做"什么,这是防止需求蔓延(Scope Creep)的关键。 -->
|
|
49
49
|
|
|
50
|
-
- **[NG1]**: [
|
|
51
|
-
- **[NG2]**: [
|
|
50
|
+
- **[NG1]**: [由于范围限制暂不考虑的功能,如: 第三方 OAuth 快捷登录]
|
|
51
|
+
- **[NG2]**: [属于未来版本规划范围的事项,如: 强制多因素认证 (MFA)]
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
## 4. User Stories
|
|
56
|
-
<!--
|
|
57
|
-
<!-- ⚠️ CRITICAL: 每个User Story必须有唯一ID [REQ-XXX]
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
* **
|
|
69
|
-
*
|
|
55
|
+
## 4. 用户故事与需求清单 (User Stories)
|
|
56
|
+
<!-- 格式要求: 作为一个 [角色],我想要 [动作],以便于 [价值/收益]。 -->
|
|
57
|
+
<!-- ⚠️ CRITICAL: 每个 User Story 必须有唯一 ID [REQ-XXX],这是整个系统防腐和追溯的核心。 -->
|
|
58
|
+
<!-- ⚠️ CRITICAL: 必须按用户价值优先级排序 (P0 核心路径 → P1 重要体验 → P2 锦上添花)。 -->
|
|
59
|
+
<!-- ⚠️ CRITICAL: 每个 User Story 必须具备独立可测性——完成后可以脱离其他 Story 独立演示。 -->
|
|
60
|
+
|
|
61
|
+
### US-001: [任务标题] [REQ-001] (优先级: P0)
|
|
62
|
+
|
|
63
|
+
* **故事描述**: 作为一个 [角色],我想要 [功能/动作],以便于 [获得的好处]。
|
|
64
|
+
* **用户价值**: [一句话说明该 Story 对于最终目标的核心价值]
|
|
65
|
+
* **独立可测性**: [该任务完成后,测试/产品可以在不依赖其他功能的情况下如何验证?]
|
|
66
|
+
* **涉及系统**: [列出将会涉及的系统 ID,如: `frontend-system`, `backend-api` — 必须与 `02_ARCHITECTURE` 中的名字对齐]
|
|
67
|
+
* **验收标准 (Acceptance Criteria)**:
|
|
68
|
+
* [ ] **Given** [初始上下文], **When** [触发动作], **Then** [预期结果].
|
|
69
|
+
* [ ] **异常处理**: 当 [发生何种异常] 时,系统必须 [具体的回退或提示行为].
|
|
70
|
+
* **边界与极限情况**:
|
|
71
|
+
* [边界条件1 — 如: 超大数据量、断网重连、权限骤变等极端情况如何处理]
|
|
72
|
+
* [边界条件2]
|
|
73
|
+
|
|
74
|
+
### US-002: [任务标题] [REQ-002] (优先级: P1)
|
|
75
|
+
|
|
76
|
+
* **故事描述**: ...
|
|
77
|
+
* **用户价值**: ...
|
|
78
|
+
* **独立可测性**: ...
|
|
79
|
+
* **涉及系统**: ...
|
|
80
|
+
* **验收标准 (Acceptance Criteria)**:
|
|
70
81
|
* [ ] ...
|
|
71
|
-
*
|
|
82
|
+
* **边界与极限情况**:
|
|
83
|
+
* ...
|
|
72
84
|
|
|
73
|
-
<!--
|
|
85
|
+
<!-- 根据需求规模继续添加 User Stories... -->
|
|
74
86
|
|
|
75
87
|
---
|
|
76
88
|
|
|
77
|
-
## 5. User Experience
|
|
78
|
-
<!--
|
|
89
|
+
## 5. 用户体验与设计 (User Experience) — 可选
|
|
90
|
+
<!-- 提供关键的用户交互设计指引,为前端/客户端的设计系统建立边界。 -->
|
|
79
91
|
|
|
80
|
-
### 5.1 Key User Flows
|
|
81
|
-
<!--
|
|
92
|
+
### 5.1 关键用户旅程 (Key User Flows)
|
|
93
|
+
<!-- 【推荐】使用 Mermaid 流程图直观表达主体业务流程。 -->
|
|
82
94
|
|
|
83
95
|
```mermaid
|
|
84
|
-
|
|
85
|
-
A[用户访问登录页] --> B[
|
|
86
|
-
B --> C{
|
|
87
|
-
C
|
|
88
|
-
C
|
|
96
|
+
flowchart TD
|
|
97
|
+
A[用户访问登录页] --> B[输入邮箱与密码]
|
|
98
|
+
B --> C{后端服务认证}
|
|
99
|
+
C -->|校验成功| D[跳转 Dashboard 首页]
|
|
100
|
+
C -->|校验失败| E[输入框下方抛出错误指引]
|
|
89
101
|
E --> B
|
|
90
102
|
```
|
|
91
103
|
|
|
92
|
-
### 5.2 Design Guidelines
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
104
|
+
### 5.2 交互规范 (Design Guidelines)
|
|
105
|
+
- **视觉风格**: [现代化、极简、严肃专业等]
|
|
106
|
+
- **响应模式**: [对页面加载骨架屏、按钮 Loading 状态等的要求]
|
|
107
|
+
- **平台兼容**: [仅限 Web 端,是否需要兼顾移动/平板自适应?]
|
|
96
108
|
|
|
97
109
|
---
|
|
98
110
|
|
|
99
|
-
## 6. Constraint Analysis
|
|
100
|
-
<!--
|
|
101
|
-
<!-- ⭐ 增强: 分类更详细,便于后续System Design继承约束 -->
|
|
111
|
+
## 6. 约束与限制 (Constraint Analysis)
|
|
112
|
+
<!-- 约束决定了技术选型的天花板。来自于 /scout 报告或立项时的不可抗力。 -->
|
|
102
113
|
|
|
103
|
-
### 6.1 Technical Constraints
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
114
|
+
### 6.1 技术约束 (Technical Constraints)
|
|
115
|
+
* **遗留系统**: [例如: 必须兼容老版本的 MySQL 5.7 表结构]
|
|
116
|
+
* **性能底线**: [例如: API 响应时间 P95 < 200ms]
|
|
117
|
+
* **扩展性预期**: [例如: 设计上需要支撑 10 万并发在线]
|
|
107
118
|
|
|
108
|
-
### 6.2 Security & Compliance
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
119
|
+
### 6.2 安全与合规 (Security & Compliance)
|
|
120
|
+
* **数据安全**: [例如: 日志中绝对不可包含明文 PII 信息]
|
|
121
|
+
* **网络要求**: [例如: 强制全站 HTTPS / API 仅内网可访]
|
|
122
|
+
* **合规审核**: [例如: 满足当地数据出境要求 / 通过特定等保审核]
|
|
112
123
|
|
|
113
|
-
### 6.3 Time &
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* **Team**: [团队规模和技能] - 可选
|
|
124
|
+
### 6.3 时间与资源 (Time & Resources)
|
|
125
|
+
* **交付死线**: [硬性 Deadline,如: 2026-03-01 必须全量上线]
|
|
126
|
+
* **其他限制**: [如依赖外部供应商接口的对接进度等]
|
|
117
127
|
|
|
118
128
|
---
|
|
119
129
|
|
|
120
|
-
## 7. Success Metrics
|
|
121
|
-
<!--
|
|
130
|
+
## 7. 成功指标 (Success Metrics) — 可选
|
|
131
|
+
<!-- 如何在功能上线后衡量我们的成功? -->
|
|
122
132
|
|
|
123
|
-
| Metric | Target | Measurement Method |
|
|
124
|
-
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
| 用户满意度 (NPS) | > 4.5/5 | 用户调研 |
|
|
133
|
+
| 核心指标 (Metric) | 目标值 (Target) | 测量方式 (Measurement Method) |
|
|
134
|
+
| ----------------- | --------------- | ----------------------------- |
|
|
135
|
+
| 业务: 注册转化率 | > 45% | 数据看板/漏斗分析 |
|
|
136
|
+
| 性能: 接口成功率 | > 99.9% | APM 监控告警 |
|
|
128
137
|
|
|
129
138
|
---
|
|
130
139
|
|
|
131
|
-
## 8. Definition of Done
|
|
140
|
+
## 8. 完成标准 (Definition of Done)
|
|
141
|
+
<!-- 所有任务合并到主分支发布前,必须 100% 勾选的检查清单。 -->
|
|
132
142
|
|
|
133
|
-
* [ ]
|
|
134
|
-
* [ ]
|
|
135
|
-
* [ ]
|
|
136
|
-
* [ ]
|
|
137
|
-
* [ ]
|
|
138
|
-
* [ ]
|
|
139
|
-
* [ ]
|
|
140
|
-
* [ ] User acceptance testing (UAT) completed.
|
|
143
|
+
* [ ] 所有的验收标准 (AC) 全部测试通过。
|
|
144
|
+
* [ ] 包含足够的自动化单元测试 (行覆盖率 > 80%) 并且 CI 绿灯。
|
|
145
|
+
* [ ] 集成测试/E2E 关键路径全部顺畅。
|
|
146
|
+
* [ ] 代码 Lint 及格式化审查均无警告。
|
|
147
|
+
* [ ] 已更新相关技术文档 (如 OpenAPI 接口文档、Wiki 知识库)。
|
|
148
|
+
* [ ] 性能与安全隐患已经过 Review (若有前述相关的约束要求)。
|
|
149
|
+
* [ ] 产品验收环节 (UAT) 已通过。
|
|
141
150
|
|
|
142
151
|
---
|
|
143
152
|
|
|
144
|
-
## 9.
|
|
153
|
+
## 9. 附录 (Appendix) — 可选
|
|
145
154
|
|
|
146
|
-
### 9.1
|
|
147
|
-
- **[
|
|
148
|
-
- **[
|
|
155
|
+
### 9.1 术语表 (Glossary)
|
|
156
|
+
- **[首字母缩写/术语 1]**: [明确定义,避免跨团队沟通歧义]
|
|
157
|
+
- **[术语 2]**: [定义]
|
|
149
158
|
|
|
150
|
-
### 9.2
|
|
151
|
-
- [
|
|
152
|
-
- [
|
|
153
|
-
|
|
154
|
-
### 9.3 Change Log (变更日志)
|
|
155
|
-
| Version | Date | Changes | Author |
|
|
156
|
-
|---------|------|---------|--------|
|
|
157
|
-
| 1.0 | 2026-01-08 | Initial version | XXX |
|
|
159
|
+
### 9.2 参考资料 (References)
|
|
160
|
+
- [URL 1]
|
|
161
|
+
- [URL 2]
|
|
158
162
|
|
|
159
163
|
---
|
|
160
164
|
|
|
161
165
|
<!-- ⚠️ CRITICAL 使用指南 -->
|
|
162
166
|
<!--
|
|
163
|
-
**PRD撰写原则 (
|
|
164
|
-
1.
|
|
165
|
-
2.
|
|
166
|
-
3.
|
|
167
|
-
4.
|
|
168
|
-
5. **追溯链**: 每个User Story有唯一ID [REQ-XXX]
|
|
167
|
+
**PRD 撰写原则 (精益规格要求)**:
|
|
168
|
+
1. **去冗存精**: 抵制长篇大论,整个文档建议控制在阅读时间 10 分钟以内。
|
|
169
|
+
2. **执行摘要 < 50字**: 用最少的话讲明白核心价值。
|
|
170
|
+
3. **独立性**: User Story 粒度必须控制在"可单独交付验证"的级别。
|
|
171
|
+
4. **追溯链 (Traceability)**: [REQ-XXX] 编号是神圣不可侵犯的,将贯穿架构、任务和代码。
|
|
169
172
|
|
|
170
173
|
**章节使用指南**:
|
|
171
174
|
- **必需章节**: 1, 2.1, 3, 4, 6, 8
|
|
172
175
|
- **可选章节**: 2.3 (竞品分析), 5 (UX设计), 7 (成功指标), 9 (附录)
|
|
173
|
-
-
|
|
176
|
+
- **小型功能/迭代**: 可大胆删除 2.3, 5, 7, 9,保留骨架即可。
|
|
174
177
|
-->
|
|
@@ -91,19 +91,57 @@ description: 为单个系统设计详细的技术文档。负责架构图、接
|
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
+
## 📁 双层文档架构 (Two-Layer Document Structure)
|
|
95
|
+
|
|
96
|
+
> [!IMPORTANT]
|
|
97
|
+
> **每个系统的设计文档采用 L0 + (可选) L1 双层结构。**
|
|
98
|
+
|
|
99
|
+
| 层次 | 文件 | 内容 | 加载频率 |
|
|
100
|
+
| :-----------: | -------------------- | ------------------------------ | :------------------: |
|
|
101
|
+
| **L0 导航层** | `{system}.md` | 架构图、操作契约表、设计决策 | 高(每次必载) |
|
|
102
|
+
| **L1 实现层** | `{system}.detail.md` | 完整伪代码、配置常量、边缘情况 | 低(任务明确引用时) |
|
|
103
|
+
|
|
104
|
+
### L1 拆分解觠规则 (R1–R5)
|
|
105
|
+
|
|
106
|
+
**触发任意一条即必须创建 `{system}.detail.md`**:
|
|
107
|
+
|
|
108
|
+
| 规则 ID | 触发条件 | 理由 |
|
|
109
|
+
| :-----: | --------------------------------------- | -------------------------------------------- |
|
|
110
|
+
| **R1** | 单个连续代码块 **> 30 行** | 该长度已是实现细节,非设计意图 |
|
|
111
|
+
| **R2** | 文档内全部代码块总行数 **> 200 行** | 代码超过文字意味着文档滞向实现层 |
|
|
112
|
+
| **R3** | 配置常量字典条目 **> 5 个** | 配置数据与设计文档是不同阅读目的 |
|
|
113
|
+
| **R4** | 版本内联注释 (`# vX.X 变更`) **> 5 处** | 版本历史应集中到 §版本历史,不应散落在代码中 |
|
|
114
|
+
| **R5** | 文档总行数 **> 500 行** | 超过 500 行的 `.md` 对 AI 上下文是负担 |
|
|
115
|
+
|
|
116
|
+
### L0 和 L1 内容边界
|
|
117
|
+
|
|
118
|
+
| 内容类型 | L0 导航层 | L1 实现层 |
|
|
119
|
+
| ---------------------------- | :-------: | :-------: |
|
|
120
|
+
| 系统目标、架构图、Trade-offs | ✅ | ❌ |
|
|
121
|
+
| 操作契约表格(参见守则 7) | ✅ | ❌ |
|
|
122
|
+
| `@dataclass` 属性字段声明 | ✅ | ✅ |
|
|
123
|
+
| Protocol/ABC 接口签名 | ✅ | ❌ |
|
|
124
|
+
| Mermaid 决策树、数据流 | ✅ | ❌ |
|
|
125
|
+
| 函数体伪代码(> 10 行) | ❌ | ✅ |
|
|
126
|
+
| 配置常量定义表 | ❌ | ✅ |
|
|
127
|
+
| 版本变更历史 | ❌ | ✅ |
|
|
128
|
+
| 边缘情况、实现注意事项 | ❌ | ✅ |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
94
132
|
## 📋 输出格式:系统设计文档结构
|
|
95
133
|
|
|
96
134
|
使用 `.agent\skills\system-designer\references\system-design-template.md` 模板。
|
|
97
135
|
|
|
98
136
|
**14个章节**:
|
|
99
137
|
|
|
100
|
-
### 必需章节 (Must Have)
|
|
138
|
+
### 必需章节 (Must Have) — L0 导航层
|
|
101
139
|
1. **概览 (Overview)** - 系统目的、边界、职责
|
|
102
140
|
2. **目标与非目标 (Goals & Non-Goals)** - 从PRD继承
|
|
103
141
|
3. **背景与上下文 (Background)** - 为什么需要、关联需求
|
|
104
142
|
4. **系统架构 (Architecture)** ⭐ - 架构图 + 组件 + 数据流
|
|
105
|
-
5. **接口设计 (Interface Design)** ⭐ -
|
|
106
|
-
6. **数据模型 (Data Model)** -
|
|
143
|
+
5. **接口设计 (Interface Design)** ⭐ - 操作契约表格 / 跨系统协议
|
|
144
|
+
6. **数据模型 (Data Model)** - 属性字段声明 + 实体关系图
|
|
107
145
|
7. **技术选型 (Tech Stack)** - 核心技术 + 依赖库
|
|
108
146
|
8. **Trade-offs & Alternatives** ⭐ - 为什么选A不选B
|
|
109
147
|
9. **安全性考虑 (Security)** - 认证、加密、风险缓解
|
|
@@ -266,24 +304,77 @@ interface User {
|
|
|
266
304
|
|
|
267
305
|
---
|
|
268
306
|
|
|
269
|
-
|
|
307
|
+
### 守则 7:操作契约表格(Agent/游戏系统尓必)
|
|
308
|
+
**规则**: 对于 Agent、游戏核心、消息系统,**必须用操作契约表格代替函数伪代码**,完整伪代码移入 `.detail.md`。
|
|
309
|
+
|
|
310
|
+
**为什么?** 一行表格 = 30 行伪代码的信息量,且对 AI 上下文更友好。
|
|
311
|
+
|
|
312
|
+
**表格格式**:
|
|
313
|
+
|
|
314
|
+
```markdown
|
|
315
|
+
### 操作契约:{XXX 类操作}
|
|
316
|
+
|
|
317
|
+
| 操作 | [REQ-XXX] | 前置条件 | 消耗/输入 | 产出/副作用 | 实现细节 |
|
|
318
|
+
| ---------------------- | :-------: | ---------------------- | --------- | ---------------------------------- | :-----------------: |
|
|
319
|
+
| `embark(unit, port)` | [REQ-012] | 陆地单位;有港口;未行动 | 3★ | 生成 Boat,承载 unit;原 unit 消失 | [§3.1](./detail.md) |
|
|
320
|
+
| `disembark(boat, pos)` | [REQ-012] | boat 有承载;目标是陆地 | 0★ | 释放单位至 pos;boat 解体 | [§3.2](./detail.md) |
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**填写要领**:
|
|
324
|
+
- 操作名: `func_name(key_params)` 风格,参数只写关键入参,不写类型注解
|
|
325
|
+
- 前置条件: 以「;」分隔,不超过 3 个
|
|
326
|
+
- 实现细节: 链接到 `.detail.md` 对应章节(如尚未创建,填「待补充」)
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
### 守则 8:Mermaid 优先于伪代码
|
|
331
|
+
**规则**: 对于决策树、状态机类逻辑,**优先使用 Mermaid flowchart**,完整伪代码移入 `.detail.md`。
|
|
270
332
|
|
|
271
|
-
|
|
333
|
+
**为什么?** Mermaid 图在 L0 层对 AI 输入 Token 消耗更低,且可视化程度更高。
|
|
334
|
+
|
|
335
|
+
**示例**:
|
|
336
|
+
|
|
337
|
+
````markdown
|
|
338
|
+
### 决策树:陆地单位任务规划
|
|
339
|
+
|
|
340
|
+
```mermaid
|
|
341
|
+
flowchart TD
|
|
342
|
+
A[单位在中立村落上?] -->|是| B[→ capture 任务, 优先级 100]
|
|
343
|
+
A -->|否| C[HP < 撤退阀值?]
|
|
344
|
+
C -->|是| D[→ move_to 最近己方城市, 优先级 90]
|
|
345
|
+
C -->|否| E{军事策略}
|
|
346
|
+
E -->|aggressive| F[→ 攻击/趋近目标]
|
|
347
|
+
E -->|defensive| G[→ 守卫无防御城市]
|
|
348
|
+
E -->|neutral| H[→ 探索/扩张焦点]
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
> 完整实现见 [`executor.detail.md §4.1`](./executor.detail.md)
|
|
352
|
+
````
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
### 工具1: 系统设计 L0 模板(导航层)
|
|
272
357
|
- **路径**: `.agent/skills/system-designer/references/system-design-template.md`
|
|
273
|
-
- **用途**: 14
|
|
358
|
+
- **用途**: L0 导航层模板,14章节结构,操作契约表格格式
|
|
274
359
|
- **使用**: `view_file .agent/skills/system-designer/references/system-design-template.md`
|
|
275
360
|
|
|
276
|
-
### 工具2:
|
|
361
|
+
### 工具2: 系统设计 L1 模板(实现层)
|
|
362
|
+
- **路径**: `.agent/skills/system-designer/references/system-design-detail-template.md`
|
|
363
|
+
- **用途**: L1 实现层模板,触发 R1-R5 任意一条时创建 `{system}.detail.md`
|
|
364
|
+
- **使用**: `view_file .agent/skills/system-designer/references/system-design-detail-template.md`
|
|
365
|
+
|
|
366
|
+
### 工具3: 调研报告存储
|
|
277
367
|
- **路径**: `genesis/v{N}/04_SYSTEM_DESIGN/_research/{system-id}-research.md`
|
|
278
368
|
- **用途**: 保存 /explore 的调研结果
|
|
279
369
|
- **格式**: Exploration Report (由 /explore 生成)
|
|
280
370
|
|
|
281
|
-
### 工具
|
|
371
|
+
### 工具4: 架构图工具
|
|
282
372
|
- **工具**: Mermaid
|
|
283
|
-
- **语法**:
|
|
373
|
+
- **语法**:
|
|
284
374
|
- `graph TD` - 架构图
|
|
375
|
+
- `flowchart TD` - 决策树(优先用此替代伪代码,见守则8)
|
|
285
376
|
- `sequenceDiagram` - 数据流图
|
|
286
|
-
- `classDiagram` -
|
|
377
|
+
- `classDiagram` - 实体关系图
|
|
287
378
|
- **参考**: [Mermaid Documentation](https://mermaid.js.org/)
|
|
288
379
|
|
|
289
380
|
---
|
|
@@ -300,20 +391,23 @@ interface User {
|
|
|
300
391
|
|
|
301
392
|
### 内容质量
|
|
302
393
|
- [ ] 系统边界定义清晰(输入/输出/依赖)
|
|
303
|
-
- [ ]
|
|
304
|
-
- [ ]
|
|
305
|
-
- [ ]
|
|
394
|
+
- [ ] **§5 接口设计使用操作契约表格**,而非函数伪代码(守则7)
|
|
395
|
+
- [ ] **§6 数据模型只有属性字段 + Protocol 签名**,无方法体(守则8)
|
|
396
|
+
- [ ] Trade-offs 章节至少讨论 2 个重要决策
|
|
397
|
+
- [ ] 决策树/流程图使用 Mermaid,而非伪代码(守则8)
|
|
306
398
|
|
|
307
399
|
### 约束遵守
|
|
308
|
-
- [ ] PRD的性能约束已继承
|
|
309
|
-
- [ ] PRD的安全约束已继承
|
|
310
|
-
- [ ] ADR的技术决策已遵守
|
|
311
|
-
- [ ] 追溯链完整([REQ-XXX]引用)
|
|
400
|
+
- [ ] PRD 的性能约束已继承
|
|
401
|
+
- [ ] PRD 的安全约束已继承
|
|
402
|
+
- [ ] ADR 的技术决策已遵守
|
|
403
|
+
- [ ] 追溯链完整([REQ-XXX] 引用)
|
|
404
|
+
- [ ] **L0 文件无方法体伪代码**(如有,立即移入 `.detail.md §3`)
|
|
405
|
+
- [ ] **触发 R1-R5 时已创建 `.detail.md`**(否则标记「待补充」)
|
|
312
406
|
|
|
313
407
|
### 可实施性
|
|
314
|
-
- [ ]
|
|
315
|
-
- [ ] 数据库Schema完整(可以直接执行)
|
|
408
|
+
- [ ] 操作契约表格完整(每个核心操作都有对应行)
|
|
316
409
|
- [ ] 测试策略明确(单元/集成/E2E)
|
|
410
|
+
- [ ] 如已创建 `.detail.md`,§3 每个小节都填写了「准入理由」
|
|
317
411
|
- [ ] 部署流程清晰(如需要)
|
|
318
412
|
|
|
319
413
|
---
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# {System Name} — 实现细节 (detail)
|
|
2
|
+
|
|
3
|
+
> **文件性质**: L1 实现层
|
|
4
|
+
> **对应 L0**: [`{system}.md`](./{system}.md)
|
|
5
|
+
> 本文件仅在 `/forge` 任务的 `**输入**` 字段明确引用时加载。
|
|
6
|
+
> 日常阅读、系统概览、任务规划请优先阅读 L0 层文件。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 版本历史
|
|
11
|
+
|
|
12
|
+
> 所有版本变更记录集中于此,不再散落在代码注释中。
|
|
13
|
+
|
|
14
|
+
| 版本 | 日期 | Changelog |
|
|
15
|
+
| ---- | ------------ | --------- |
|
|
16
|
+
| v1.0 | {YYYY-MM-DD} | 初始版本 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## §1 配置常量 (Config Constants)
|
|
21
|
+
|
|
22
|
+
> 所有硬编码配置、枚举映射、查找表集中放在此处。
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
# ── 示例: 单位配置表 ──
|
|
26
|
+
# 每行格式: UnitType: {atk, def, hp, mov, range, cost, tech, behavior, move_type}
|
|
27
|
+
UNIT_CONFIG = {
|
|
28
|
+
# UnitType.WARRIOR: {...},
|
|
29
|
+
# ...
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# ── 示例: 地形配置表 ──
|
|
33
|
+
TERRAIN_CONFIG = {
|
|
34
|
+
# TerrainType.PLAIN: {move_cost: 1, passable: "land", buildings: [...]}
|
|
35
|
+
# ...
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
# ── 示例: 建筑配置表 ──
|
|
39
|
+
BUILDING_CONFIG = {
|
|
40
|
+
# BuildingType.FARM: {cost: 5, tech: "farming", rp_bonus: 1}
|
|
41
|
+
# ...
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## §2 核心数据结构完整定义 (Full Data Structures)
|
|
48
|
+
|
|
49
|
+
> 包含方法实现的完整类定义(L0 层只放无方法的属性声明)。
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
# ── 示例: 完整类定义(含方法) ──
|
|
53
|
+
|
|
54
|
+
@dataclass
|
|
55
|
+
class ExampleEntity:
|
|
56
|
+
id: str
|
|
57
|
+
# ... 字段
|
|
58
|
+
|
|
59
|
+
def some_method(self) -> bool:
|
|
60
|
+
"""方法说明"""
|
|
61
|
+
# 完整逻辑...
|
|
62
|
+
pass
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## §3 核心算法伪代码 (Non-Trivial Algorithm Pseudocode)
|
|
68
|
+
|
|
69
|
+
> [!IMPORTANT]
|
|
70
|
+
> **严格准入门槛 — 不满足任意一条,禁止写入本节**:
|
|
71
|
+
>
|
|
72
|
+
> | 准入条件 | 说明 |
|
|
73
|
+
> |---------|------|
|
|
74
|
+
> | 函数体估计 **> 15 行** | 短函数的意图从 L0 操作契约表格已可理解,不需要伪代码 |
|
|
75
|
+
> | 含**不明显的业务规则** | 如战斗伤害公式、路径寻找、状态机分支、复杂校验逻辑 |
|
|
76
|
+
> | 含**多步骤副作用链** | 如"A→检查→B→更新C→触发D"且顺序不能颠倒 |
|
|
77
|
+
> | **同事看签名猜不出实现** | 若函数名+参数名已能清楚表达意图,则不需要伪代码 |
|
|
78
|
+
>
|
|
79
|
+
> **反例(禁止写入 §3)**:
|
|
80
|
+
> ```python
|
|
81
|
+
> # ❌ 太简单,不需要伪代码
|
|
82
|
+
> def get_nation_stars(nation: Nation) -> int:
|
|
83
|
+
> return nation.stars
|
|
84
|
+
>
|
|
85
|
+
> # ❌ 5行setter,从签名已可理解
|
|
86
|
+
> def set_military_target(self, target: str) -> None:
|
|
87
|
+
> self.military_target = target
|
|
88
|
+
> self.last_updated_turn = world.turn
|
|
89
|
+
> ```
|
|
90
|
+
|
|
91
|
+
每个小节对应 L0 操作契约表格中的一行,提供完整函数体。
|
|
92
|
+
|
|
93
|
+
### §3.1 {操作名称}
|
|
94
|
+
|
|
95
|
+
**对应契约**: L0 §{章节} 操作契约表 — `{function_name}()`
|
|
96
|
+
**准入理由**: {为什么这个函数需要伪代码,满足了哪条准入条件}
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
def function_name(param1: Type, param2: Type, ...) -> ReturnType:
|
|
100
|
+
"""
|
|
101
|
+
函数说明。
|
|
102
|
+
|
|
103
|
+
前置条件:
|
|
104
|
+
1. ...
|
|
105
|
+
|
|
106
|
+
副作用:
|
|
107
|
+
- ...
|
|
108
|
+
"""
|
|
109
|
+
# 完整实现逻辑
|
|
110
|
+
pass
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**关键设计注意事项**:
|
|
114
|
+
- 注意点1 (如: 深拷贝、竞争条件、顺序依赖等)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### §3.2 {操作名称}
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
# ...
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## §4 决策树详细逻辑 (Decision Tree Details)
|
|
127
|
+
|
|
128
|
+
> 对应 L0 层 Mermaid 决策树的文字展开 + 完整伪代码。
|
|
129
|
+
|
|
130
|
+
### §4.1 {决策场景名称}
|
|
131
|
+
|
|
132
|
+
**对应 L0 Mermaid**: `{system}.md §{章节}`
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
def plan_or_decide(...):
|
|
136
|
+
"""
|
|
137
|
+
决策逻辑完整实现。
|
|
138
|
+
"""
|
|
139
|
+
# Step 1: 检查高优先级条件
|
|
140
|
+
# ...
|
|
141
|
+
|
|
142
|
+
# Step 2: 分支逻辑
|
|
143
|
+
# ...
|
|
144
|
+
pass
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## §5 边缘情况与注意事项 (Edge Cases & Gotchas)
|
|
150
|
+
|
|
151
|
+
> 实现时必须处理的非显而易见的情况。
|
|
152
|
+
|
|
153
|
+
| 场景 | 风险 | 处理方式 |
|
|
154
|
+
| -------------- | ---------- | -------------- |
|
|
155
|
+
| {边缘情况描述} | {潜在 Bug} | {正确处理方式} |
|
|
156
|
+
|
|
157
|
+
### §5.1 {具体边缘情况}
|
|
158
|
+
|
|
159
|
+
```python
|
|
160
|
+
# ❌ 错误做法 (会导致什么问题)
|
|
161
|
+
# cloned_unit.embarked_unit = unit.embarked_unit # 浅拷贝导致状态污染!
|
|
162
|
+
|
|
163
|
+
# ✅ 正确做法
|
|
164
|
+
# cloned_unit.embarked_unit = deepcopy(unit.embarked_unit) if unit.embarked_unit else None
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## §6 测试辅助 (Test Helpers)
|
|
170
|
+
|
|
171
|
+
> 单元测试中复用的工厂函数、fixtures 或测试场景说明。
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
# 示例: 测试用工厂函数
|
|
175
|
+
def make_test_unit(type=UnitType.WARRIOR, hp=10, pos=(0,0)) -> Unit:
|
|
176
|
+
"""创建测试用 Unit 对象"""
|
|
177
|
+
pass
|
|
178
|
+
|
|
179
|
+
def make_test_world(size=8) -> World:
|
|
180
|
+
"""创建测试用 World 对象"""
|
|
181
|
+
pass
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
<!-- ⚠️ 使用指南
|
|
187
|
+
**何时填写本文件**:
|
|
188
|
+
- 触发了 R1-R5 任意一条提取规则时
|
|
189
|
+
- L0 的操作契约表对应的实现需要 > 30 行伪代码时
|
|
190
|
+
|
|
191
|
+
**§ 编号约定**:
|
|
192
|
+
- §1 配置常量: 始终是第一节
|
|
193
|
+
- §2 数据结构: 含方法的完整类
|
|
194
|
+
- §3 算法伪代码: 按照函数顺序编号 (§3.1, §3.2...)
|
|
195
|
+
- §4 决策树展开: 对应 L0 Mermaid 图的文字版
|
|
196
|
+
- §5 边缘情况: 从文档注释中提取的 "# ⚠️ 注意" 类内容
|
|
197
|
+
- §6 测试辅助: 可选
|
|
198
|
+
-->
|