@haaaiawd/anws 2.1.2 → 2.2.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 +28 -4
- package/lib/manifest.js +210 -209
- package/package.json +3 -3
- package/templates/.agents/skills/code-reviewer/SKILL.md +327 -0
- package/templates/.agents/skills/system-designer/SKILL.md +6 -5
- package/templates/.agents/skills/system-designer/references/system-design-template.md +17 -5
- package/templates/.agents/skills/task-planner/SKILL.md +113 -79
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +82 -61
- package/templates/.agents/skills/task-reviewer/SKILL.md +59 -11
- package/templates/.agents/workflows/blueprint.md +107 -39
- package/templates/.agents/workflows/challenge.md +99 -45
- package/templates/.agents/workflows/change.md +171 -129
- package/templates/.agents/workflows/design-system.md +7 -5
- package/templates/.agents/workflows/forge.md +160 -91
- package/templates/.agents/workflows/genesis.md +13 -8
|
@@ -12,23 +12,33 @@
|
|
|
12
12
|
- **ID**: 唯一任务标识符(T{System}.{Phase}.{Seq})
|
|
13
13
|
- **[P]**: 可并行(可独立执行)
|
|
14
14
|
- **[MILESTONE]**: 里程碑 / Sprint 关卡任务(如 `INT-S{N}`)
|
|
15
|
-
- **用户故事**: 映射到 PRD(US01, US02...)
|
|
16
|
-
- **验收标准**: Given / When / Then 或 Done When 形式的完成条件
|
|
17
|
-
- **验证类型**: 单元测试 / 集成测试 / E2E测试 / 冒烟测试 / 回归测试 / 手动验证 / 编译检查 / Lint检查
|
|
18
|
-
- **验证说明**: 如何验证任务完成、需要什么证据
|
|
19
|
-
-
|
|
20
|
-
- **📎
|
|
15
|
+
- **用户故事**: 映射到 PRD(US01, US02...)
|
|
16
|
+
- **验收标准**: Given / When / Then 或 Done When 形式的完成条件
|
|
17
|
+
- **验证类型**: 单元测试 / 集成测试 / E2E测试 / 冒烟测试 / 回归测试 / 手动验证 / 编译检查 / Lint检查
|
|
18
|
+
- **验证说明**: 如何验证任务完成、需要什么证据
|
|
19
|
+
- **契约承接**: 本任务实现或验证的公共契约(如接口、CLI 语义、配置结构、文件格式、错误语义)
|
|
20
|
+
- **📎 ADR**: 关联的架构决策记录
|
|
21
|
+
- **📎 System**: 关联的系统设计文档
|
|
22
|
+
|
|
23
|
+
### 生成提醒
|
|
24
|
+
- 公共契约至少要有一个实现任务承接
|
|
25
|
+
- 高风险公共契约至少要有一个验证承接点
|
|
26
|
+
- 基础层、共享层、纯逻辑层默认优先单元测试
|
|
27
|
+
- registry / manifest / parser / planner / schema / diff / merge / normalizer / selector 等基础逻辑,主要分支、边界情况和错误路径应尽量由单元测试覆盖
|
|
28
|
+
- 冒烟测试默认收敛到 `INT-S{N}` 或极少数里程碑任务,不要扩散到普通开发任务
|
|
29
|
+
- 任务粒度默认控制在 2h-2d;纯技术性基础任务可使用 Done When,其余任务优先 Given / When / Then
|
|
21
30
|
|
|
22
31
|
---
|
|
23
32
|
|
|
24
33
|
### 阶段 1:基础阶段
|
|
25
34
|
|
|
26
|
-
#### T3.1.1 - 数据库 Schema 初始化
|
|
27
|
-
- **用户故事**: US01
|
|
28
|
-
- **描述**: 创建 `users` 表,包含 `id`、`email`、`password_hash`、`created_at` 字段。
|
|
29
|
-
- **输入**: `04_SYSTEM_DESIGN/database.md` §用户表设计
|
|
30
|
-
- **输出**: `migrations/001_create_users.sql`
|
|
31
|
-
-
|
|
35
|
+
#### T3.1.1 - 数据库 Schema 初始化
|
|
36
|
+
- **用户故事**: US01
|
|
37
|
+
- **描述**: 创建 `users` 表,包含 `id`、`email`、`password_hash`、`created_at` 字段。
|
|
38
|
+
- **输入**: `04_SYSTEM_DESIGN/database.md` §用户表设计
|
|
39
|
+
- **输出**: `migrations/001_create_users.sql`
|
|
40
|
+
- **契约承接**: 数据库 schema 契约(`users` 表结构)
|
|
41
|
+
- **依赖**: 无
|
|
32
42
|
- **验收标准**:
|
|
33
43
|
- Given 数据库已启动
|
|
34
44
|
- When 执行迁移并查看 `users` 表结构
|
|
@@ -37,12 +47,13 @@
|
|
|
37
47
|
- **验证说明**: 运行迁移并执行 `psql -c "\d users"`,保留终端输出作为证据
|
|
38
48
|
- **📎 ADR**: ADR-003 (密码存储方案)
|
|
39
49
|
|
|
40
|
-
#### T1.1.1 - [P] 环境配置
|
|
41
|
-
- **用户故事**: US01
|
|
42
|
-
- **描述**: 添加包含 `DATABASE_URL`、`JWT_SECRET` 的 `.env` 文件。
|
|
43
|
-
- **输入**: `02_ARCHITECTURE_OVERVIEW.md` §环境配置
|
|
44
|
-
- **输出**: `.env.example`, `docker-compose.yml`
|
|
45
|
-
-
|
|
50
|
+
#### T1.1.1 - [P] 环境配置
|
|
51
|
+
- **用户故事**: US01
|
|
52
|
+
- **描述**: 添加包含 `DATABASE_URL`、`JWT_SECRET` 的 `.env` 文件。
|
|
53
|
+
- **输入**: `02_ARCHITECTURE_OVERVIEW.md` §环境配置
|
|
54
|
+
- **输出**: `.env.example`, `docker-compose.yml`
|
|
55
|
+
- **契约承接**: 环境配置结构契约
|
|
56
|
+
- **依赖**: 无
|
|
46
57
|
- **验收标准**:
|
|
47
58
|
- Given 环境变量模板与容器配置已写入
|
|
48
59
|
- When 执行 `docker-compose up`
|
|
@@ -54,12 +65,13 @@
|
|
|
54
65
|
|
|
55
66
|
### 阶段 2:核心逻辑
|
|
56
67
|
|
|
57
|
-
#### T2.1.1 - 用户注册接口
|
|
58
|
-
- **用户故事**: US01
|
|
59
|
-
- **描述**: 实现 `POST /api/register`,对密码做哈希并保存用户。
|
|
60
|
-
- **输入**: `04_SYSTEM_DESIGN/auth.md` §注册流程, T3.1.1 产出的 `users` 表
|
|
61
|
-
- **输出**: `src/routes/auth.js`, `src/services/user.service.js`
|
|
62
|
-
-
|
|
68
|
+
#### T2.1.1 - 用户注册接口
|
|
69
|
+
- **用户故事**: US01
|
|
70
|
+
- **描述**: 实现 `POST /api/register`,对密码做哈希并保存用户。
|
|
71
|
+
- **输入**: `04_SYSTEM_DESIGN/auth.md` §注册流程, T3.1.1 产出的 `users` 表
|
|
72
|
+
- **输出**: `src/routes/auth.js`, `src/services/user.service.js`
|
|
73
|
+
- **契约承接**: `POST /api/register` HTTP API 契约
|
|
74
|
+
- **依赖**: T3.1.1
|
|
63
75
|
- **验收标准**:
|
|
64
76
|
- Given 注册接口已实现
|
|
65
77
|
- When 发送合法注册请求
|
|
@@ -68,12 +80,13 @@
|
|
|
68
80
|
- **验证说明**: 调用 `POST /api/register` 并检查响应与数据库写入结果
|
|
69
81
|
- **📎 ADR**: ADR-003 (密码存储方案)
|
|
70
82
|
|
|
71
|
-
#### T2.1.2 - [P] JWT Token 生成
|
|
72
|
-
- **用户故事**: US01
|
|
73
|
-
- **描述**: 创建 `generate_token(user_id)` 辅助函数。
|
|
74
|
-
- **输入**: `04_SYSTEM_DESIGN/auth.md` §JWT 签发, T1.1.1 产出的 `JWT_SECRET` 配置
|
|
75
|
-
- **输出**: `src/utils/jwt.js`
|
|
76
|
-
-
|
|
83
|
+
#### T2.1.2 - [P] JWT Token 生成
|
|
84
|
+
- **用户故事**: US01
|
|
85
|
+
- **描述**: 创建 `generate_token(user_id)` 辅助函数。
|
|
86
|
+
- **输入**: `04_SYSTEM_DESIGN/auth.md` §JWT 签发, T1.1.1 产出的 `JWT_SECRET` 配置
|
|
87
|
+
- **输出**: `src/utils/jwt.js`
|
|
88
|
+
- **契约承接**: JWT 生成规则契约(基础逻辑)
|
|
89
|
+
- **依赖**: T1.1.1
|
|
77
90
|
- **验收标准**:
|
|
78
91
|
- Given JWT 辅助函数已实现
|
|
79
92
|
- When 运行 `test_generate_token()`
|
|
@@ -95,12 +108,13 @@
|
|
|
95
108
|
|
|
96
109
|
### 阶段 3:集成阶段
|
|
97
110
|
|
|
98
|
-
#### T2.2.1 - 登录接口
|
|
99
|
-
- **用户故事**: US01
|
|
100
|
-
- **描述**: 实现 `POST /api/login`,校验凭证并返回 JWT。
|
|
101
|
-
- **输入**: `04_SYSTEM_DESIGN/auth.md` §登录流程, T2.1.1 产出的 `users` 表, T2.1.2 产出的 `generate_token()` 函数
|
|
102
|
-
- **输出**: `/api/login` 端点 (`src/routes/auth.js`)
|
|
103
|
-
-
|
|
111
|
+
#### T2.2.1 - 登录接口
|
|
112
|
+
- **用户故事**: US01
|
|
113
|
+
- **描述**: 实现 `POST /api/login`,校验凭证并返回 JWT。
|
|
114
|
+
- **输入**: `04_SYSTEM_DESIGN/auth.md` §登录流程, T2.1.1 产出的 `users` 表, T2.1.2 产出的 `generate_token()` 函数
|
|
115
|
+
- **输出**: `/api/login` 端点 (`src/routes/auth.js`)
|
|
116
|
+
- **契约承接**: `POST /api/login` HTTP API 契约;401 错误语义
|
|
117
|
+
- **依赖**: T2.1.1, T2.1.2
|
|
104
118
|
- **验收标准**:
|
|
105
119
|
- Given 登录接口已实现
|
|
106
120
|
- When 使用合法凭证请求登录
|
|
@@ -112,19 +126,23 @@
|
|
|
112
126
|
- **验证说明**: 调用 `/api/login` 并分别检查成功与失败路径
|
|
113
127
|
- **📎 ADR**: ADR-004 (JWT 认证方案)
|
|
114
128
|
|
|
115
|
-
#### INT-S2 - [MILESTONE] S2 集成验证 — 核心逻辑
|
|
116
|
-
- **用户故事**: US01
|
|
117
|
-
- **描述**: 验证 S2 退出标准:完整认证流程可运行
|
|
118
|
-
- **输入**: `02_ARCHITECTURE_OVERVIEW.md` §认证流程, S2 所有任务的产出
|
|
119
|
-
- **输出**: 集成验证报告
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
#### INT-S2 - [MILESTONE] S2 集成验证 — 核心逻辑
|
|
130
|
+
- **用户故事**: US01
|
|
131
|
+
- **描述**: 验证 S2 退出标准:完整认证流程可运行
|
|
132
|
+
- **输入**: `02_ARCHITECTURE_OVERVIEW.md` §认证流程, S2 所有任务的产出
|
|
133
|
+
- **输出**: 集成验证报告
|
|
134
|
+
- **契约承接**: 注册/登录主链路契约;关键路径最小冒烟验证
|
|
135
|
+
- **依赖**: T2.1.1, T2.1.2, T2.2.1
|
|
136
|
+
- **验收标准**:
|
|
137
|
+
- Given S2 所有任务已完成且服务已启动
|
|
138
|
+
- When 通过 `/api/register` 注册新用户并使用合法凭证登录
|
|
139
|
+
- Then 收到 JWT 令牌且主链路可运行
|
|
140
|
+
- Given 非法凭证
|
|
141
|
+
- When 请求 `/api/login`
|
|
142
|
+
- Then 返回 401 且错误语义符合契约
|
|
143
|
+
- Given 本 Sprint 相关自动验证已执行
|
|
144
|
+
- When 查看测试与 lint 结果
|
|
145
|
+
- Then 单元测试通过且无 Linter 错误
|
|
128
146
|
- **验证类型**: 集成测试 / 冒烟测试
|
|
129
147
|
- **验证说明**: 按退出标准逐条执行;使用真实注册与登录链路作为最小冒烟检查,并保留日志或截图
|
|
130
148
|
|
|
@@ -160,11 +178,13 @@ T1.1.1 (环境配置) [P]
|
|
|
160
178
|
在将蓝图标记为完成前:
|
|
161
179
|
- [ ] 所有任务都有唯一 ID
|
|
162
180
|
- [ ] 依赖关系明确(使用 `→` 表示)
|
|
163
|
-
- [ ] 每个任务都有 `验收标准`
|
|
164
|
-
- [ ] 每个任务都有 `验证类型` 与 `验证说明`
|
|
165
|
-
- [ ]
|
|
166
|
-
- [ ]
|
|
167
|
-
- [ ]
|
|
181
|
+
- [ ] 每个任务都有 `验收标准`
|
|
182
|
+
- [ ] 每个任务都有 `验证类型` 与 `验证说明`
|
|
183
|
+
- [ ] 每个公共契约都有实现承接,且高风险公共契约有明确验证承接
|
|
184
|
+
- [ ] 基础层低依赖逻辑默认获得单元测试承接,并覆盖主要分支/边界/错误路径
|
|
185
|
+
- [ ] **每个任务的「输入」都引用了设计文档**(ADR/System Design/PRD/Architecture)
|
|
186
|
+
- [ ] 任务中不包含实际代码(仅保留 <10 行描述)
|
|
187
|
+
- [ ] 总体估时合理
|
|
168
188
|
- [ ] 用户已确认该任务清单
|
|
169
189
|
|
|
170
190
|
---
|
|
@@ -180,13 +200,14 @@ T001 - 构建认证系统
|
|
|
180
200
|
|
|
181
201
|
✅ **好任务示例**:
|
|
182
202
|
```
|
|
183
|
-
T3.1.1 - 数据库 Schema 初始化
|
|
184
|
-
- 输入: `04_SYSTEM_DESIGN/database.md` §用户表设计
|
|
185
|
-
- 描述: 创建包含 `id`、`email`、`password_hash` 的 `users` 表。
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
-
|
|
189
|
-
|
|
203
|
+
T3.1.1 - 数据库 Schema 初始化
|
|
204
|
+
- 输入: `04_SYSTEM_DESIGN/database.md` §用户表设计
|
|
205
|
+
- 描述: 创建包含 `id`、`email`、`password_hash` 的 `users` 表。
|
|
206
|
+
- 契约承接: 数据库 schema 契约
|
|
207
|
+
- 验收标准: Given 迁移完成, When 查看表结构, Then 字段与设计一致。
|
|
208
|
+
- 验证类型: 集成测试
|
|
209
|
+
- 📎 ADR: ADR-003 (密码存储方案)
|
|
210
|
+
```
|
|
190
211
|
|
|
191
212
|
---
|
|
192
213
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: task-reviewer
|
|
3
|
-
description: 系统性审查 05_TASKS.md 的质量与完备性,作为 challenge 工作流中的规范契约任务承接证据层。通过
|
|
3
|
+
description: 系统性审查 05_TASKS.md 的质量与完备性,作为 challenge 工作流中的规范契约任务承接证据层。通过 7 大检测 Pass 在语义模型上运行,检测重复、歧义、欠详述、不一致、覆盖缺口和质量问题。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 任务审查大师手册
|
|
@@ -8,16 +8,16 @@ description: 系统性审查 05_TASKS.md 的质量与完备性,作为 challeng
|
|
|
8
8
|
> "计划的质量取决于最薄弱的那个任务。
|
|
9
9
|
> 在代码暴露问题之前,找到裂缝。"
|
|
10
10
|
|
|
11
|
-
你是**任务审查大师**,负责对 `05_TASKS.md` 进行系统性审计——以 PRD、Architecture 和 ADR 文档为基准,运行 **
|
|
11
|
+
你是**任务审查大师**,负责对 `05_TASKS.md` 进行系统性审计——以 PRD、Architecture 和 ADR 文档为基准,运行 **7 大检测 Pass**。你的武器是**语义模型**,而非朴素的字符串匹配。
|
|
12
12
|
在 `/challenge` 工作流中,你的角色是:**为规范契约是否被任务承接、覆盖和验证提供证据**,而不是单独替代 challenge 的总判断。
|
|
13
13
|
你优先要证明的是:关键承诺是否有实现任务、验证任务、边界/失败路径任务,以及是否存在幽灵任务稀释主轴。
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
## 任务目标
|
|
17
17
|
|
|
18
|
-
1. **加载文档 (必须)**: 读取 `.anws/v{N}/05_TASKS.md`、`01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md
|
|
19
|
-
2. **构建语义模型**: 构建
|
|
20
|
-
3. **执行
|
|
18
|
+
1. **加载文档 (必须)**: 读取 `.anws/v{N}/05_TASKS.md`、`01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md`、所有 `03_ADR/*.md`,以及 `04_SYSTEM_DESIGN/*.md`(如存在)。
|
|
19
|
+
2. **构建语义模型**: 构建 4 个清单模型(见 §语义模型构建)。
|
|
20
|
+
3. **执行 7 大 Pass (A→G)**: 顺序执行每个检测 Pass——每个 Pass 在语义模型上操作。
|
|
21
21
|
4. **严重度分级**: 为每条发现分配严重度(CRITICAL / HIGH / MEDIUM / LOW)。
|
|
22
22
|
5. **生成报告**: 输出任务审查报告(见 §输出格式)。
|
|
23
23
|
6. **展示摘要**: 向用户展示检测汇总表 + 前 10 条发现。
|
|
@@ -27,12 +27,13 @@ description: 系统性审查 05_TASKS.md 的质量与完备性,作为 challeng
|
|
|
27
27
|
- **发现上限**: 最多 50 条。超出时按严重度排序 → 截断 → 追加溢出摘要。
|
|
28
28
|
- **只报告不修复**: 本技能**仅输出报告**。修复由用户或其他工作流完成。
|
|
29
29
|
- **跨文档依赖**: Pass D 和 E **依赖** PRD + Architecture。若缺失,跳过相应 Pass 并注明。
|
|
30
|
+
- **契约证据依赖**: Pass G 默认依赖 `04_SYSTEM_DESIGN/*.md`。若任务涉及公共契约而设计文档缺失,必须报告“证据不足 / 契约定义缺口”,不得静默忽略。
|
|
30
31
|
- **客观性**: 仅标记客观可检测的问题。不要为了填满报告而捏造问题。
|
|
31
32
|
|
|
32
33
|
---
|
|
33
34
|
## 语义模型构建
|
|
34
35
|
|
|
35
|
-
> 在执行任何 Pass 之前,先构建以下
|
|
36
|
+
> 在执行任何 Pass 之前,先构建以下 4 个模型。所有 Pass 在模型上操作,而非原始文本。
|
|
36
37
|
|
|
37
38
|
### 模型 1: 需求清单 (Requirements Inventory)
|
|
38
39
|
|
|
@@ -71,13 +72,27 @@ T{X.Y.Z}: 标题
|
|
|
71
72
|
├── 所属系统: Level 1 WBS 系统名称
|
|
72
73
|
├── 依赖: [T{A.B.C}, ...]
|
|
73
74
|
├── 验收标准: [列表]
|
|
75
|
+
├── 契约承接: [公共契约列表]
|
|
74
76
|
├── 预估工时: N
|
|
75
77
|
└── Sprint: S{N}
|
|
76
78
|
```
|
|
77
79
|
|
|
80
|
+
### 模型 4: 契约清单 (Contract Inventory)
|
|
81
|
+
|
|
82
|
+
从 `02_ARCHITECTURE_OVERVIEW.md`、`03_ADR/*.md`、`04_SYSTEM_DESIGN/*.md` 中提取所有公共契约:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
CONTRACT-001: CLI / API / 接口 / 配置 / 文件格式 / 错误语义 / 持久化结构
|
|
86
|
+
├── 来源文档: Architecture / ADR / System Design
|
|
87
|
+
├── 风险级别: 基础规则层 | 跨系统 | 关键路径
|
|
88
|
+
├── 实现承接任务: [T{...}, ...]
|
|
89
|
+
├── 验证承接任务: [T{...}, INT-S{N}, ...]
|
|
90
|
+
└── 关注点: [边界情况 / 错误路径 / 回归责任]
|
|
91
|
+
```
|
|
92
|
+
|
|
78
93
|
---
|
|
79
94
|
|
|
80
|
-
## 🔍
|
|
95
|
+
## 🔍 7 大检测 Pass
|
|
81
96
|
|
|
82
97
|
### Pass A: 重复检测 (Duplication Detection)
|
|
83
98
|
|
|
@@ -119,7 +134,7 @@ T{X.Y.Z}: 标题
|
|
|
119
134
|
| C3 | **幽灵引用** | 任务引用了 Architecture 文档中不存在的组件/接口/API |
|
|
120
135
|
| C4 | **缺失输入/输出** | 任务没有明确的输入或输出字段 |
|
|
121
136
|
| C5 | **缺失验证说明** | 任务没有说明如何验证完成 |
|
|
122
|
-
| C6 | **缺失验证类型** | 任务没有指定验证类型(单元测试/集成测试/E2E
|
|
137
|
+
| C6 | **缺失验证类型** | 任务没有指定验证类型(单元测试/集成测试/E2E测试/冒烟测试/回归测试/手动验证/编译检查/Lint检查) |
|
|
123
138
|
|
|
124
139
|
**严重度规则**: C2 在 P0 任务上 → CRITICAL。C3 一律 → HIGH。C6 在 P0 任务上 → HIGH。
|
|
125
140
|
|
|
@@ -172,13 +187,33 @@ T{X.Y.Z}: 标题
|
|
|
172
187
|
| F3 | **深度依赖链** | 链长 > 5 → 警告瓶颈风险 |
|
|
173
188
|
| F4 | **孤立任务** | 无依赖方且不被依赖(孤岛)→ 确认是否有意为之 |
|
|
174
189
|
| F5 | **关键路径分析** | 识别最长依赖链 → 标出瓶颈任务 |
|
|
175
|
-
| F6 | **验收标准质量** | Given-When-Then
|
|
190
|
+
| F6 | **验收标准质量** | 默认检查 Given-When-Then 完整性;纯技术性基础任务允许清晰 Done When + 可执行验证方法 |
|
|
176
191
|
| F7 | **Sprint 均衡度** | Sprint 工作量方差 > 均值 50% → 不均衡警告 |
|
|
177
192
|
|
|
178
193
|
**严重度规则**: F1 > 16h → HIGH。F3 链 > 7 → HIGH。F5 仅信息 → LOW。
|
|
179
194
|
|
|
180
195
|
---
|
|
181
196
|
|
|
197
|
+
### Pass G: 契约覆盖检测 (Contract Coverage)
|
|
198
|
+
|
|
199
|
+
**目标**: 确保公共契约与基础单测责任没有漏口。
|
|
200
|
+
|
|
201
|
+
| # | 检查项 | 如何检查 |
|
|
202
|
+
|---|--------|---------|
|
|
203
|
+
| G1 | **公共契约无实现承接** | Contract Inventory 中的公共契约在 Tasks 中找不到对应实现任务。 |
|
|
204
|
+
| G2 | **公共契约无验证承接** | 契约有实现任务,但没有明确验证类型/验证说明/INT 承接。 |
|
|
205
|
+
| G3 | **高风险契约缺错误路径验证** | API / CLI / 配置 / 文件格式等契约没有失败态、边界态验证责任。 |
|
|
206
|
+
| G4 | **基础逻辑缺单测承接** | registry / manifest / parser / schema / diff / merge / normalizer / planner 等基础逻辑没有单元测试承接。 |
|
|
207
|
+
| G5 | **契约与验证类型错配** | 明显公共契约仅给模糊手动验证或验证层级明显不足。 |
|
|
208
|
+
| G6 | **回归责任缺失** | 变更影响既有关键契约,但任务中无最小回归验证。 |
|
|
209
|
+
|
|
210
|
+
**严重度规则**: G1 在 P0 或核心契约上 → CRITICAL。G2/G3/G6 → HIGH。G4 共享基础逻辑缺单测 → HIGH。G5 → MEDIUM。
|
|
211
|
+
|
|
212
|
+
> [!IMPORTANT]
|
|
213
|
+
> **如果任务声明了 `契约承接`,但在 `04_SYSTEM_DESIGN/*.md` / ADR / Architecture 中找不到对应契约来源,应优先报告为设计证据缺口,而不是默认视作任务正确。**
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
182
217
|
## 📊 输出格式:任务审查报告
|
|
183
218
|
|
|
184
219
|
按以下结构生成报告:
|
|
@@ -186,8 +221,8 @@ T{X.Y.Z}: 标题
|
|
|
186
221
|
```markdown
|
|
187
222
|
## 📊 任务审查报告
|
|
188
223
|
|
|
189
|
-
> **审查文件**: .anws/v{N}/05_TASKS.md
|
|
190
|
-
> **对照文档**: 01_PRD.md, 02_ARCHITECTURE_OVERVIEW.md, 03_ADR/*
|
|
224
|
+
> **审查文件**: .anws/v{N}/05_TASKS.md
|
|
225
|
+
> **对照文档**: 01_PRD.md, 02_ARCHITECTURE_OVERVIEW.md, 03_ADR/*, 04_SYSTEM_DESIGN/*
|
|
191
226
|
> **日期**: {YYYY-MM-DD}
|
|
192
227
|
|
|
193
228
|
---
|
|
@@ -202,6 +237,7 @@ T{X.Y.Z}: 标题
|
|
|
202
237
|
| D 不一致性检测 | — | — | — | — | — |
|
|
203
238
|
| E 覆盖率检测 | — | — | — | — | — |
|
|
204
239
|
| F 质量粒度 | — | — | — | — | — |
|
|
240
|
+
| G 契约覆盖 | — | — | — | — | — |
|
|
205
241
|
| **合计** | **—** | **—** | **—** | **—** | **—** |
|
|
206
242
|
|
|
207
243
|
**整体健康度**: 🟢 健康 / 🟡 需关注 / 🔴 阻塞
|
|
@@ -238,6 +274,18 @@ T{X.Y.Z}: 标题
|
|
|
238
274
|
|
|
239
275
|
---
|
|
240
276
|
|
|
277
|
+
### 契约覆盖率
|
|
278
|
+
|
|
279
|
+
| 契约 | 类型 | 实现承接 | 验证承接 | 状态 |
|
|
280
|
+
|------|------|---------|---------|:----:|
|
|
281
|
+
| `update --target` 显式选择语义 | CLI | T1.2.1 | T6.2.1 | ✅ |
|
|
282
|
+
| install-lock fallback 重建语义 | 状态/文件格式 | T4.1.1 | T6.2.1 | ✅ |
|
|
283
|
+
| adapter target matrix 映射 | 基础规则层 | T2.1.1 | T6.1.1 | ✅ |
|
|
284
|
+
|
|
285
|
+
**设计证据来源**: 已读取 / 未读取 `04_SYSTEM_DESIGN/*`
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
241
289
|
### 关键路径
|
|
242
290
|
|
|
243
291
|
> 最长依赖链,高亮瓶颈任务。
|
|
@@ -43,9 +43,10 @@ description: "将架构设计拆解为可执行的 WBS 任务清单。适用于
|
|
|
43
43
|
- [ ] `{TARGET_DIR}/01_PRD.md` 存在
|
|
44
44
|
- [ ] `{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md` 存在
|
|
45
45
|
|
|
46
|
-
4.
|
|
47
|
-
- [ ] `{TARGET_DIR}/04_SYSTEM_DESIGN/` 存在
|
|
48
|
-
- 如缺失: 提示 "建议先运行 `/design-system` 为每个系统生成详细设计。跳过此步可能导致任务粒度过粗。"
|
|
46
|
+
4. **检查条件性必需文件**:
|
|
47
|
+
- [ ] `{TARGET_DIR}/04_SYSTEM_DESIGN/` 存在
|
|
48
|
+
- 如缺失: 提示 "建议先运行 `/design-system` 为每个系统生成详细设计。跳过此步可能导致任务粒度过粗。"
|
|
49
|
+
- **如果本版本涉及公共接口、CLI 参数语义、配置结构、文件格式、错误语义、跨系统协议或持久化结构** → `04_SYSTEM_DESIGN/` 视为**必需**,缺失时不得继续正常拆解
|
|
49
50
|
|
|
50
51
|
5. **如果必需文件缺失**: 报错并提示运行 `/genesis` 更新该版本。
|
|
51
52
|
|
|
@@ -57,11 +58,45 @@ description: "将架构设计拆解为可执行的 WBS 任务清单。适用于
|
|
|
57
58
|
|
|
58
59
|
1. **读取 Architecture**: 读取 `{TARGET_DIR}/02_ARCHITECTURE_OVERVIEW.md`
|
|
59
60
|
2. **读取 PRD**: 读取 `{TARGET_DIR}/01_PRD.md`
|
|
60
|
-
3. **读取 ADRs**: 扫描 `{TARGET_DIR}/03_ADR/` 目录
|
|
61
|
-
4. **加载测试策略约束**:
|
|
62
|
-
- 如 `{TARGET_DIR}/03_ADR/` 中存在测试策略、质量门禁、验证分层相关 ADR,必须一并读取
|
|
63
|
-
- 将其中关于单元/集成/E2E/冒烟/回归测试的约束视为 Task 生成输入,而不是事后参考
|
|
64
|
-
5.
|
|
61
|
+
3. **读取 ADRs**: 扫描 `{TARGET_DIR}/03_ADR/` 目录
|
|
62
|
+
4. **加载测试策略约束**:
|
|
63
|
+
- 如 `{TARGET_DIR}/03_ADR/` 中存在测试策略、质量门禁、验证分层相关 ADR,必须一并读取
|
|
64
|
+
- 将其中关于单元/集成/E2E/冒烟/回归测试的约束视为 Task 生成输入,而不是事后参考
|
|
65
|
+
5. **提取公共契约与验证责任**:
|
|
66
|
+
- 从 `02_ARCHITECTURE_OVERVIEW.md`、`03_ADR/`、`04_SYSTEM_DESIGN/` 中提取所有公共契约
|
|
67
|
+
- 至少覆盖:操作契约、跨系统接口、HTTP API、CLI 命令/参数语义、配置结构、文件格式、错误语义、持久化结构
|
|
68
|
+
- 这些契约必须作为 Task 生成输入,而不是留给 `/forge` 临场猜测
|
|
69
|
+
6. **调用技能**: `task-planner`
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step 1.5: 契约承接建模 (Contract Mapping)
|
|
74
|
+
|
|
75
|
+
**目标**: 在任务拆解前,先确认哪些公共契约必须被任务和验证接住。
|
|
76
|
+
|
|
77
|
+
> [!IMPORTANT]
|
|
78
|
+
> **公共契约必须有承接。**
|
|
79
|
+
>
|
|
80
|
+
> Blueprint 不只要覆盖 REQ 和 User Story,还要确保对外可观察契约不会在实现阶段裸奔。
|
|
81
|
+
>
|
|
82
|
+
> **如果公共契约需要依赖 `04_SYSTEM_DESIGN` 才能被明确定义,而该目录缺失,应直接报告“契约定义缺口”,而不是继续生成看似完整的任务清单。**
|
|
83
|
+
|
|
84
|
+
执行要求:
|
|
85
|
+
|
|
86
|
+
1. 从设计文档中提取所有公共契约
|
|
87
|
+
2. 判断每个契约属于:
|
|
88
|
+
- 基础规则层契约
|
|
89
|
+
- 跨模块/跨系统契约
|
|
90
|
+
- 关键用户路径契约
|
|
91
|
+
3. 对每个公共契约至少规划:
|
|
92
|
+
- 一个实现承接任务
|
|
93
|
+
- 一个验证承接点(单元测试 / 集成测试 / INT / E2E / 手动验证 之一)
|
|
94
|
+
4. 如契约属于基础层纯逻辑、映射、解析、归一化、注册表、schema、planner、diff/merge 等低依赖逻辑:
|
|
95
|
+
- 默认优先生成单元测试承接
|
|
96
|
+
- 主要分支、边界情况和错误路径应尽量被单元测试覆盖
|
|
97
|
+
|
|
98
|
+
> [!IMPORTANT]
|
|
99
|
+
> **禁止把“公共契约的验证责任”全部拖到高层集成或 E2E。**
|
|
65
100
|
|
|
66
101
|
---
|
|
67
102
|
|
|
@@ -74,25 +109,30 @@ description: "将架构设计拆解为可执行的 WBS 任务清单。适用于
|
|
|
74
109
|
> 每个 Level 3 任务必须包含以下字段。
|
|
75
110
|
|
|
76
111
|
> [!IMPORTANT]
|
|
77
|
-
> **调用 `task-planner` 时必须显式传递以下约束**:
|
|
78
|
-
> - 当前版本的 PRD、Architecture、ADRs、System Design 是唯一事实来源
|
|
79
|
-
> - 如 ADR 中存在测试策略与质量门禁,`task-planner` 必须优先遵循
|
|
80
|
-
> - 默认按“最轻但足够”的原则选择验证类型
|
|
81
|
-
> -
|
|
82
|
-
> -
|
|
112
|
+
> **调用 `task-planner` 时必须显式传递以下约束**:
|
|
113
|
+
> - 当前版本的 PRD、Architecture、ADRs、System Design 是唯一事实来源
|
|
114
|
+
> - 如 ADR 中存在测试策略与质量门禁,`task-planner` 必须优先遵循
|
|
115
|
+
> - 默认按“最轻但足够”的原则选择验证类型
|
|
116
|
+
> - 每个公共契约至少要有一个实现任务承接
|
|
117
|
+
> - 每个高风险公共契约至少要有一个明确的验证承接点
|
|
118
|
+
> - 基础层纯逻辑、规则映射、解析、归一化、注册表、schema、planner、diff/merge 等低依赖逻辑,应默认优先单元测试,且主要分支/边界/错误路径应尽量覆盖
|
|
119
|
+
> - **冒烟测试默认仅放在 `INT-S{N}` 或极少数里程碑任务**
|
|
120
|
+
> - 不得因为“更保险”就把大量任务默认升级成 E2E测试
|
|
83
121
|
|
|
84
122
|
### 任务格式模板
|
|
85
123
|
|
|
86
124
|
```markdown
|
|
87
|
-
- [ ] **T{X}.{Y}.{Z}** [REQ-XXX]: 任务标题
|
|
88
|
-
- **描述**: 具体要做什么
|
|
89
|
-
- **输入**: 设计文档引用 + 前置任务产出(必须包含至少一个文档引用)
|
|
90
|
-
- **输出**: 产出的文件/组件/接口
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
125
|
+
- [ ] **T{X}.{Y}.{Z}** [REQ-XXX]: 任务标题
|
|
126
|
+
- **描述**: 具体要做什么
|
|
127
|
+
- **输入**: 设计文档引用 + 前置任务产出(必须包含至少一个文档引用)
|
|
128
|
+
- **输出**: 产出的文件/组件/接口
|
|
129
|
+
- **契约承接**: [本任务实现或验证的公共契约;如无可写“无”]
|
|
130
|
+
- **📎 参考**: ADR_XXX_*.md 或 System Design 章节(如有)
|
|
131
|
+
- **验收标准**:
|
|
132
|
+
- Given [前置条件]
|
|
133
|
+
- When [执行动作]
|
|
134
|
+
- Then [预期结果]
|
|
135
|
+
- (仅当纯技术性基础任务不适合 GWT 时,才允许使用清晰的 Done When 列表)
|
|
96
136
|
- **验证类型**: [单元测试 | 集成测试 | E2E测试 | 冒烟测试 | 回归测试 | 手动验证 | 编译检查 | Lint检查]
|
|
97
137
|
- **验证说明**: [如何检查完成,检查什么,具体命令或步骤]
|
|
98
138
|
- **估时**: Xh
|
|
@@ -104,12 +144,25 @@ description: "将架构设计拆解为可执行的 WBS 任务清单。适用于
|
|
|
104
144
|
> [!IMPORTANT]
|
|
105
145
|
> **Blueprint 必须按测试分层生成任务,而不是把所有验证都塞成 E2E。**
|
|
106
146
|
>
|
|
107
|
-
> 默认采用以下层次:
|
|
108
|
-
> - **单元测试**:
|
|
109
|
-
> - **集成测试**: 验证模块/系统协作
|
|
110
|
-
> - **冒烟测试**: 验证里程碑关口的少量关键路径是否可运行
|
|
111
|
-
> - **E2E测试**: 验证关键用户故事或主业务链路
|
|
112
|
-
> - **回归测试**: 验证新变更未破坏已完成的关键能力
|
|
147
|
+
> 默认采用以下层次:
|
|
148
|
+
> - **单元测试**: 验证局部逻辑;基础层、共享层、纯逻辑层默认优先,且应尽量覆盖主要分支、边界情况和错误路径
|
|
149
|
+
> - **集成测试**: 验证模块/系统协作
|
|
150
|
+
> - **冒烟测试**: 验证里程碑关口的少量关键路径是否可运行
|
|
151
|
+
> - **E2E测试**: 验证关键用户故事或主业务链路
|
|
152
|
+
> - **回归测试**: 验证新变更未破坏已完成的关键能力
|
|
153
|
+
|
|
154
|
+
### 契约覆盖规则
|
|
155
|
+
|
|
156
|
+
> [!IMPORTANT]
|
|
157
|
+
> **Blueprint 必须确保公共契约被任务和验证接住。**
|
|
158
|
+
>
|
|
159
|
+
> 公共契约包括:操作契约、跨系统接口、HTTP API、CLI 参数语义、配置结构、文件格式、错误语义、持久化结构。
|
|
160
|
+
|
|
161
|
+
要求:
|
|
162
|
+
- 每个公共契约至少有一个实现任务承接
|
|
163
|
+
- 每个高风险公共契约至少有一个验证承接点
|
|
164
|
+
- 不得仅因为“后面会有集成测试”就省略基础规则层的单元测试
|
|
165
|
+
- 若某契约会影响既有关键能力,应额外规划最小回归验证责任
|
|
113
166
|
|
|
114
167
|
### 冒烟测试使用原则
|
|
115
168
|
|
|
@@ -194,7 +247,7 @@ graph TD
|
|
|
194
247
|
|
|
195
248
|
---
|
|
196
249
|
|
|
197
|
-
## Step 5: User Story Overlay (交叉验证)
|
|
250
|
+
## Step 5: User Story Overlay (交叉验证)
|
|
198
251
|
|
|
199
252
|
**目标**: 从**用户价值维度**验证任务完备性。WBS 按系统拆解,这一步从 User Story 视角交叉检查。
|
|
200
253
|
|
|
@@ -213,7 +266,20 @@ graph TD
|
|
|
213
266
|
- 每个 US 的 task 链是否能形成**可独立验证**的闭环?
|
|
214
267
|
- 高优先级 US (P0) 的 task 是否分布在靠前的 Sprint?
|
|
215
268
|
|
|
216
|
-
4. **生成 User Story View**: 追加到 `05_TASKS.md` 末尾
|
|
269
|
+
4. **生成 User Story View**: 追加到 `05_TASKS.md` 末尾
|
|
270
|
+
|
|
271
|
+
5. **生成 Contract Coverage Overlay**: 如存在公共契约,追加到 `05_TASKS.md` 末尾
|
|
272
|
+
|
|
273
|
+
### Contract Coverage Overlay 格式
|
|
274
|
+
|
|
275
|
+
```markdown
|
|
276
|
+
## 🔐 Contract Coverage Overlay
|
|
277
|
+
|
|
278
|
+
| 契约 | 类型 | 实现承接 | 验证承接 | 状态 |
|
|
279
|
+
|------|------|---------|---------|:----:|
|
|
280
|
+
| `update --target` 显式选择语义 | CLI | T1.2.1 | T6.2.1 | ✅ |
|
|
281
|
+
| install-lock fallback 重建语义 | 文件/状态格式 | T4.1.1 | T6.2.1 | ✅ |
|
|
282
|
+
```
|
|
217
283
|
|
|
218
284
|
### User Story View 格式
|
|
219
285
|
|
|
@@ -258,14 +324,16 @@ graph TD
|
|
|
258
324
|
|
|
259
325
|
---
|
|
260
326
|
|
|
261
|
-
## 检查清单
|
|
262
|
-
- ✅ 每个 Sprint 有退出标准和 INT 集成验证任务?
|
|
263
|
-
- ✅ 05_TASKS.md 是否包含所有 WBS 任务?
|
|
264
|
-
- ✅ 每个任务是否有 Context 和 Acceptance Criteria?
|
|
265
|
-
- ✅ 任务间的输入/输出是否对齐(接口追溯)?
|
|
266
|
-
- ✅
|
|
267
|
-
- ✅
|
|
268
|
-
- ✅
|
|
327
|
+
## 检查清单
|
|
328
|
+
- ✅ 每个 Sprint 有退出标准和 INT 集成验证任务?
|
|
329
|
+
- ✅ 05_TASKS.md 是否包含所有 WBS 任务?
|
|
330
|
+
- ✅ 每个任务是否有 Context 和 Acceptance Criteria?
|
|
331
|
+
- ✅ 任务间的输入/输出是否对齐(接口追溯)?
|
|
332
|
+
- ✅ 公共契约是否都被实现任务与验证承接点接住?
|
|
333
|
+
- ✅ 基础层低依赖逻辑是否默认获得单元测试承接,且覆盖主要分支/边界/错误路径?
|
|
334
|
+
- ✅ 是否生成了 Mermaid 依赖图?
|
|
335
|
+
- ✅ User Story Overlay 已生成,覆盖 GAP 已补充?
|
|
336
|
+
- ✅ 已更新 AGENTS.md(含初始波次建议)?
|
|
269
337
|
|
|
270
338
|
---
|
|
271
339
|
|