@haaaiawd/anws 2.2.2 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +180 -180
  2. package/lib/manifest.js +212 -212
  3. package/package.json +1 -1
  4. package/templates/.agents/skills/anws-system/SKILL.md +108 -108
  5. package/templates/.agents/skills/code-reviewer/SKILL.md +101 -101
  6. package/templates/.agents/skills/concept-modeler/SKILL.md +179 -178
  7. package/templates/.agents/skills/craft-authoring/SKILL.md +6 -6
  8. package/templates/.agents/skills/design-reviewer/SKILL.md +190 -176
  9. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +113 -36
  10. package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -306
  11. package/templates/.agents/skills/report-template/SKILL.md +92 -85
  12. package/templates/.agents/skills/runtime-inspector/SKILL.md +12 -12
  13. package/templates/.agents/skills/sequential-thinking/SKILL.md +225 -216
  14. package/templates/.agents/skills/spec-writer/SKILL.md +9 -9
  15. package/templates/.agents/skills/spec-writer/references/prd_template.md +6 -6
  16. package/templates/.agents/skills/system-architect/SKILL.md +678 -620
  17. package/templates/.agents/skills/system-designer/SKILL.md +601 -534
  18. package/templates/.agents/skills/system-designer/references/system-design-detail-template.md +5 -5
  19. package/templates/.agents/skills/system-designer/references/system-design-template.md +28 -28
  20. package/templates/.agents/skills/task-planner/SKILL.md +699 -629
  21. package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +15 -15
  22. package/templates/.agents/skills/task-reviewer/SKILL.md +388 -363
  23. package/templates/.agents/skills/tech-evaluator/SKILL.md +144 -135
  24. package/templates/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +80 -78
  25. package/templates/.agents/workflows/blueprint.md +391 -391
  26. package/templates/.agents/workflows/challenge.md +52 -52
  27. package/templates/.agents/workflows/change.md +346 -346
  28. package/templates/.agents/workflows/craft.md +11 -11
  29. package/templates/.agents/workflows/design-system.md +631 -631
  30. package/templates/.agents/workflows/explore.md +399 -399
  31. package/templates/.agents/workflows/forge.md +145 -132
  32. package/templates/.agents/workflows/genesis.md +353 -353
  33. package/templates/.agents/workflows/probe.md +243 -243
  34. package/templates/.agents/workflows/quickstart.md +123 -123
  35. package/templates/.agents/workflows/upgrade.md +10 -10
  36. package/templates/AGENTS.md +149 -149
@@ -24,69 +24,69 @@
24
24
 
25
25
  **核心原则**:
26
26
 
27
- - 📖 **文档即合约** — 规范文档是不可违反的权威
28
- - 🌊 **波次执行** — 每波 2-5 个任务,加载→编码→验证→提交
29
- - 🛑 **遇疑则停** — 发现问题立即停止,不猜不赶
30
- - **签名机制** — 每次波次开始都要经过检查点;普通模式由用户签名,`/forge自动` 模式记为 `AUTO`
27
+ - **文档即合约** — 规范文档是不可违反的权威
28
+ - **波次执行** — 每波 2-5 个任务,加载→编码→验证→提交
29
+ - **遇疑则停** — 发现问题立即停止,不猜不赶
30
+ - **签名机制** — 每次波次开始都要经过检查点;**普通模式**下须用户**逐波批准**任务组合后方可编码,`/forge自动` 模式以 `AUTO` 代签连续推进(见 Step 1 **模式边界**)
31
31
 
32
32
  **与用户的关系**:
33
33
  你是用户的**忠实执行者**,不是自由发挥的创造者。
34
34
 
35
35
  ---
36
36
 
37
- ## ⚠️ CRITICAL 权限边界
37
+ ## CRITICAL 权限边界
38
38
 
39
39
  > [!IMPORTANT]
40
- > **`/forge` 的权限严格限定**:
40
+ > `**/forge` 的权限严格限定**:
41
41
  >
42
42
  >
43
43
  > | 能力 | 允许 | 禁止 |
44
44
  > | --------------------------- | --- | --- |
45
- > | 在 `src/` 下编写业务代码 | | |
46
- > | 编写单元测试 | | |
47
- > | 更新 `05_TASKS.md` 的 checkbox | | |
48
- > | 运行测试和 lint | | |
49
- > | Git commit 已完成的任务 | | |
50
- > | 更新 `AGENTS.md` 当前状态 | | |
51
- > | **修改 `.anws/` 下任何设计文档** | | |
52
- > | **创建 TASKS.md 中不存在的功能** | | |
53
- > | **降级或跳过验收标准** | | |
54
- > | **引入 ADR 未批准的第三方依赖** | | |
55
- > | **修改已有代码的公共接口(除非任务明确要求)** | | |
56
- > | **"顺便"优化/重构不在任务范围内的代码** | | |
45
+ > | 在 `src/` 下编写业务代码 | | |
46
+ > | 编写单元测试 | | |
47
+ > | 更新 `05_TASKS.md` 的 checkbox | | |
48
+ > | 运行测试和 lint | | |
49
+ > | Git commit 已完成的任务 | | |
50
+ > | 更新 `AGENTS.md` 当前状态 | | |
51
+ > | **修改 `.anws/` 下任何设计文档** | | |
52
+ > | **创建 TASKS.md 中不存在的功能** | | |
53
+ > | **降级或跳过验收标准** | | |
54
+ > | **引入 ADR 未批准的第三方依赖** | | |
55
+ > | **修改已有代码的公共接口(除非任务明确要求)** | | |
56
+ > | **"顺便"优化/重构不在任务范围内的代码** | | |
57
57
  >
58
58
 
59
59
  ---
60
60
 
61
- ## ⚠️ CRITICAL 反自由发挥护栏
61
+ ## CRITICAL 反自由发挥护栏
62
62
 
63
63
  > [!IMPORTANT]
64
64
  > **你只实现任务描述和验收标准中明确要求的内容。**
65
65
  >
66
- > - "我觉得加个缓存会更好" → **禁止**
67
- > - "顺便优化了一下这个函数" → **禁止**
68
- > - "虽然文档没提到,但加了错误处理" → **禁止**(除非验收标准要求)
69
- > - "这个设计不太合理,我自己调整了" → **禁止**
70
- > - 严格按任务描述 + 验收标准实现
71
- > - 发现任何问题 → 报告用户 → 用户通过相应工作流修改 → 修改后再继续
66
+ > - "我觉得加个缓存会更好" → **禁止**
67
+ > - "顺便优化了一下这个函数" → **禁止**
68
+ > - "虽然文档没提到,但加了错误处理" → **禁止**(除非验收标准要求)
69
+ > - "这个设计不太合理,我自己调整了" → **禁止**
70
+ > - 严格按任务描述 + 验收标准实现
71
+ > - 发现任何问题 → 报告用户 → 用户通过相应工作流修改 → 修改后再继续
72
72
 
73
73
  ---
74
74
 
75
- ## ⚠️ CRITICAL 冲突处理协议
75
+ ## CRITICAL 冲突处理协议
76
76
 
77
77
  > [!IMPORTANT]
78
78
  > **以下情况必须立即停止编码,报告用户**:
79
79
  >
80
80
  >
81
- > | 冲突类型 | 处理方式 |
82
- > | ---------------------- | ----------------------------------- |
83
- > | 文档之间互相矛盾 | 🛑 停止 → 列出矛盾点 → 用户通过 `/change` 修复 |
84
- > | 任务描述模糊/不完整 | 🛑 停止 → 列出疑问 → 用户确认或通过 `/change` 补充 |
85
- > | 依赖的前置任务产物与预期不符 | 🛑 停止 → 报告差异 → 用户决定 |
86
- > | 发现设计不可实现 | 🛑 停止 → 记录原因 → 建议用户运行 `/challenge` |
87
- > | 需要 ADR 未批准的新依赖 | 🛑 停止 → 说明理由 → 用户决定是否创建新 ADR |
88
- > | 需要的系统设计文档不存在 | 🛑 停止 → 引导用户运行 `/design-system` |
89
- > | **发现未定义但必须新增/修改的公共契约** | 🛑 停止 → 生成回流说明 → 跳转 `/change` |
81
+ > | 冲突类型 | 处理方式 |
82
+ > | ---------------------- | -------------------------------- |
83
+ > | 文档之间互相矛盾 | 停止 → 列出矛盾点 → 用户通过 `/change` 修复 |
84
+ > | 任务描述模糊/不完整 | 停止 → 列出疑问 → 用户确认或通过 `/change` 补充 |
85
+ > | 依赖的前置任务产物与预期不符 | 停止 → 报告差异 → 用户决定 |
86
+ > | 发现设计不可实现 | 停止 → 记录原因 → 建议用户运行 `/challenge` |
87
+ > | 需要 ADR 未批准的新依赖 | 停止 → 说明理由 → 用户决定是否创建新 ADR |
88
+ > | 需要的系统设计文档不存在 | 停止 → 引导用户运行 `/design-system` |
89
+ > | **发现未定义但必须新增/修改的公共契约** | 停止 → 生成回流说明 → 跳转 `/change` |
90
90
  >
91
91
  >
92
92
  > **核心原则: 宁可停下来问,也不要猜测。**
@@ -107,15 +107,11 @@
107
107
  - `{TARGET_DIR}/05_TASKS.md` 存在
108
108
  4. **检查推荐文件** (缺失则警告):
109
109
  - `{TARGET_DIR}/04_SYSTEM_DESIGN/` 存在且非空
110
- - 如缺失: "⚠️ 建议先运行 `/design-system`。缺少详细设计可能导致实现质量下降。"
110
+ - 如缺失: " 建议先运行 `/design-system`。缺少详细设计可能导致实现质量下降。"
111
111
  5. **如果必需文件缺失**: 报错并提示运行 `/genesis` + `/blueprint`。
112
- 6. **Challenge 门禁检查**:
113
- - 如果 `{TARGET_DIR}/07_CHALLENGE_REPORT.md` 存在,必须先读取最新审查结果
114
- - 如存在**未处理 Critical** → **立即阻塞**,不得进入 `/forge`
115
- - 如存在**未处理 High** → 仅允许用户显式签名放行;AUTO 模式不得自动通过
116
- - 如无未处理高严重度问题 → 继续
112
+ 6. **`07_CHALLENGE_REPORT.md`(若存在)**:先读结论;有未闭环 **Critical** → **停止**,不得进入本工作流后续编码步骤;有未闭环 **High** → 仅用户显式放行(AUTO 不可替代);其余继续。门禁语义与 **`/challenge`** 一致,**不在此重复展开**。
117
113
  7. **断点续做判定**:
118
- - 读取 `AGENTS.md` 的 `🌊 Wave` 块
114
+ - 读取 `AGENTS.md` 的 `Wave` 块
119
115
  - 如果存在波次信息:
120
116
  - 查看波次任务列表,对照 `05_TASKS.md` 中的 checkbox
121
117
  - 如有未完成任务 → **断点续做** → 跳入 Step 3 继续未完成的任务
@@ -133,12 +129,15 @@
133
129
  - 如当前已在 `feature/`* 且仍属于同一交付主题 → 继续在当前 branch 上推进,不因补任务、补契约、补测试而反复新开分支
134
130
  - 如当前已在 `feature/`* 且主题未变,即使经历 `/change` 回流,也继续使用同一条分支
135
131
  - 只有 `/genesis` 触发、版本前提变化时,旧 `feature/`* 才冻结;新版本应从最新 `main` 重新开一条新的 `feature/`*
136
- - 如进入 `/change` 前需要保护点,可先在当前 `feature/*` 上创建 checkpoint commit:`checkpoint: before {topic}`
132
+ - 如进入 `/change` 前需要保护点,可先在当前 `feature/`* 上创建 checkpoint commit:`checkpoint: before {topic}`
137
133
 
138
134
  > [!IMPORTANT]
139
135
  > **Git 判断口诀**:
140
136
  > 同主题就不换分支,`/change` 不换分支,`/genesis` 才换分支;开发都在 `feature/`*,稳定结果才进 `main`,tag 只打 `main`。
141
137
 
138
+ > [!IMPORTANT]
139
+ > **AUTO 与在场性**:一旦判定为 **AUTO 模式**,默认用户**可能不在屏幕前**(喝咖啡、休息等)。除 **Step 0** 中 **`07_CHALLENGE_REPORT` Critical 未闭环**、**§1.4 波前 `code-reviewer` 硬阻塞**、任务 **手动验证**须用户终局确认、以及 **Step 4.4「AUTO 必须停下」** 所列情形外,**不要**再就「是否确认本波任务组合」「是否继续下一波」等向用户发问;展示 Wave 建议后以 **`AUTO`** 假名签署并顺序执行 **§1.4 → Step 2**。需要人类随队微调波次请用**普通模式**。
140
+
142
141
  ---
143
142
 
144
143
  ## Step 1: 波次规划 (Wave Planning)
@@ -146,9 +145,12 @@
146
145
  **目标**: 从任务清单中挑选一组可执行的任务,组成一个"波次"。
147
146
 
148
147
  > [!IMPORTANT]
149
- > **你不能自己决定波次内容,必须在检查点获得签名后再开始。**
148
+ > **模式边界(CRITICAL)**
149
+ >
150
+ > - **普通模式(默认)**:与既有协议一致——**每一波**在 Step 1 **展示 Wave 建议 → 用户确认并批准本波任务组合(签名)→** 再写入 `AGENTS.md` 的 `Wave` 块、执行 **§1.4**;Step 4 结算后若仍有未完成任务,**下一波**仍须回到 Step 1 **再次**展示并**等待用户批准**,不得在未经批准时开工下一波。Step 4.4 的「不问是否继续」**仅适用于 AUTO**,**不**削弱普通模式的逐波批准权。
151
+ > - **AUTO 模式**(`/forge自动` 或用户明确要求自动连续推进):检查点逻辑仍在,但签名人记为 `AUTO`;**不得**为「波次是否满意」「是否继续下一波」发起闲聊式确认(见 **Step 0「AUTO 与在场性」**、**Step 4.4**)。
150
152
  >
151
- > **为什么?** 用户对项目优先级和进度节奏有最终决定权;`/forge自动` 只是把签名从用户改为 `AUTO`,不是删除检查点。
153
+ > **为什么?** 优先级与任务边界须可审计;普通模式由人**逐波把关**,AUTO 则由硬性停止条件顶替「人在场」的口头确认。
152
154
 
153
155
  ### 1.1 扫描可执行任务
154
156
 
@@ -174,7 +176,7 @@
174
176
  向用户展示:
175
177
 
176
178
  ```markdown
177
- ## 📋 Wave {N} 建议
179
+ ## Wave {N} 建议
178
180
 
179
181
  | 任务 ID | 标题 | 依赖文档 | 估时 |
180
182
  | -------- | ---- | ------------------------------- | :---: |
@@ -187,25 +189,42 @@
187
189
  确认此波次?或调整任务组合?
188
190
  ```
189
191
 
190
- **签名检查点** ⚠️: 获得签名后,将确认的波次写入 `AGENTS.md` 的 `🌊 Wave` 块:
192
+ **签名检查点** : 获得签名后,将确认的波次写入 `AGENTS.md` 的 `Wave` 块:
191
193
 
192
194
  ```markdown
193
- ### 🌊 Wave {N} — {波次目标简述}
195
+ ### Wave {N} — {波次目标简述}
194
196
  T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
195
197
  ```
196
198
 
197
- 然后进入 Step 2。
199
+ 签名规则(与 **模式边界** 一致):
200
+
201
+ - **普通模式** → 用户**明示批准**本波 Wave(可对任务组合提出调整,定稿后再签)→ 写入 `AGENTS.md` `Wave` 块 → 再执行 **§1.4**。**禁止**在用户未批准前写入 Wave 或进入 Step 2/3。
202
+ - **AUTO 模式** → 展示 Wave 建议后**立即**将本波记为 `AUTO` 签入并执行 **§1.4**(**不得**为「确认组合是否满意」再打断用户)。
203
+
204
+ ### 1.4 波前静态审查(`code-reviewer`,默认每波)
205
+
206
+ **时机**:`AGENTS.md` 的 **Wave {N}** 已写入且 **Step 1 签名**已达成之后,**进入 Step 2 之前**。
207
+
208
+ **断点续做**:Step 0 若判定**同一波**未收官、直接进入 Step 3,视为该波已在当时完成 Step 1 批准;**不**对同一波重复 §1.4。若无法从 Wave 备注 / 会话记录确认本波曾完成 §1.4(须有一次审查产出或合法豁免),**回到 Step 1** 补办本波签名与 §1.4,再进入 Step 2/3。
209
+
210
+ **默认**:每一**新**波次(含普通模式下用户刚批准的下一波)都必须执行一轮 **`code-reviewer`**,审查对象为 **截至本波开始前、当前工作分支上已 commit 的实现**(相对 `{TARGET_DIR}` 下 PRD / Architecture / ADR / System Design / **`05_TASKS.md`**,含本波将执行任务之契约边界),避免带着错误假设进入编码。
211
+
212
+ **仅以下情形可跳过(须写明原因,写入 Wave 备注或等同持久位)**:
213
+
214
+ 1. **无可审实现**:业务实现根(如 `src/`,以项目约定为准)上**尚无可审查的、与本 Sprint / 本波相关的已落地代码**(纯初始化、仅文档、尚未开工)— **不做**形式主义空跑。
215
+ 2. **用户明确全域禁止 static review**:用户**明示**「不做 code review / 跳过一切 `code-reviewer`」— 本会话内后续各波均不再调用 **`code-reviewer`**,直接进 **Step 2**;须在 **`AGENTS.md`** 或 Wave 侧标注 **`CODE_REVIEW_DISABLED_BY_USER`**,直至用户声明撤销。**未**收到明示前 **禁止** AI 自行省略波审。
198
216
 
199
- 签名规则:
217
+ **执行**:完整遵从 **`code-reviewer`** skill;宿主有子代理时 **优先**委派。
200
218
 
201
- - 普通模式 等待用户签名
202
- - AUTO 模式 → 保留波次展示,并将签名记为 `AUTO` 后继续执行
219
+ **门禁路由**:Critical / High 按 skill 走 **`/change`** / **`/genesis`**;未解决 blocking 前 **不得** 进入 Step 2(**含 AUTO**,遇此类必须停下)。
220
+
221
+ 然后进入 **Step 2**。
203
222
 
204
223
  ---
205
224
 
206
225
  ## Step 2: 上下文加载 (Context Loading)
207
226
 
208
- **目标**: 按需加载本波次需要的文档,不多加载一份。
227
+ **目标**: 按需加载本波次需要的文档,不多加载一份。**前提**:**§1.4** 已完成或可合法豁免(见上);否则不得加载开工。
209
228
 
210
229
  > [!IMPORTANT]
211
230
  > **只加载当前波次需要的文档。不要"以防万一"多加载。**
@@ -245,12 +264,24 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
245
264
 
246
265
  ## Step 3: 任务执行循环 (Task Execution Loop)
247
266
 
248
- **目标**: 逐个完成波次内的任务:思考→编码→验证→提交。
267
+ **目标**: 逐个完成波次内任务(思考→编码→验证→提交)。
249
268
 
250
269
  > [!IMPORTANT]
251
270
  > **严格按以下流程执行每个任务,不跳步。**
252
271
 
253
- 对本波次中的每个任务,执行以下循环:
272
+ ### Wave 内建结构(Wave = 波前门 + 任务循环)
273
+
274
+ 把 **一次 Wave** 视为 **波前静态门 + 逐任务循环**(Step 3 仅承载后者;**未完成不得进入 Step 4**):
275
+
276
+
277
+ | 阶段 | 内容 | 完成判据 |
278
+ | ---------------------------------- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
279
+ | **0. 波前(`code-reviewer`)** | **Step 1 签名之后、Step 2 之前**;见 **§1.4** | 审查产出可追溯,或 **`code-reviewer`** skill 下的**合法豁免**已落盘;不得无声跳过 |
280
+ | **A. 逐任务循环** | 对本波每个任务依次执行 **§3.1 → §3.6**(**末任务**在 §3.4 后走 **§3.4.6**) | 每个任务的验收、验证证据与 commit 已落地;`05_TASKS.md` 已按规则回写 |
281
+
282
+ > **一句**:**§1.4** 与 **Step 4 §4.0** 对齐(波前已完成或可豁免)。
283
+
284
+ 对本波次中的每个任务,执行以下循环(阶段 A):
254
285
 
255
286
  ---
256
287
 
@@ -290,7 +321,7 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
290
321
  3. "验收标准里最关键的约束是什么?"
291
322
  4. "有没有歧义的地方?有没有不确定的点?"
292
323
 
293
- - 如发现歧义或不确定 → 🛑 **触发冲突处理协议**,停止并报告用户
324
+ - 如发现歧义或不确定 → **触发冲突处理协议**,停止并报告用户
294
325
  - 如无问题 → 继续 3.3
295
326
 
296
327
  ---
@@ -327,33 +358,33 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
327
358
  > **验证类型决定验证方式和证据要求**:
328
359
  >
329
360
  >
330
- > | 验证类型 | 验证方式 | 证据要求 | 标记 |
331
- > | ---------- | ------------------------ | ------------------------- | --- |
332
- > | **单元测试** | 运行 `npm test` 或等效命令 | 终端输出:`X passed, 0 failed` | ✅/❌ |
333
- > | **集成测试** | 运行集成测试脚本 | 终端输出或日志 | ✅/❌ |
334
- > | **E2E测试** | 运行 E2E 测试脚本 | 测试报告或截图 | ✅/❌ |
335
- > | **冒烟测试** | 运行最小真实路径检查 | 关键路径日志、截图或终端输出 | ✅/❌ |
336
- > | **回归测试** | 运行受影响能力的最小回归测试集 | 明确列出复验范围 + 测试输出 | ✅/❌ |
337
- > | **编译检查** | 运行 `npm run build` 或等效命令 | 终端输出:`Build succeeded` | ✅/❌ |
338
- > | **Lint检查** | 运行 `npm run lint` 或等效命令 | 终端输出:`0 problems` | ✅/❌ |
339
- > | **手动验证** | 人工检查 | 用户确认 | |
361
+ > | 验证类型 | 验证方式 | 证据要求 | 标记 |
362
+ > | ---------- | ------------------------ | ------------------------- | ------ |
363
+ > | **单元测试** | 运行 `npm test` 或等效命令 | 终端输出:`X passed, 0 failed` | 通过/未通过 |
364
+ > | **集成测试** | 运行集成测试脚本 | 终端输出或日志 | 通过/未通过 |
365
+ > | **E2E测试** | 运行 E2E 测试脚本 | 测试报告或截图 | 通过/未通过 |
366
+ > | **冒烟测试** | 运行最小真实路径检查 | 关键路径日志、截图或终端输出 | 通过/未通过 |
367
+ > | **回归测试** | 运行受影响能力的最小回归测试集 | 明确列出复验范围 + 测试输出 | 通过/未通过 |
368
+ > | **编译检查** | 运行 `npm run build` 或等效命令 | 终端输出:`Build succeeded` | 通过/未通过 |
369
+ > | **Lint检查** | 运行 `npm run lint` 或等效命令 | 终端输出:`0 problems` | 通过/未通过 |
370
+ > | **手动验证** | 人工检查 | 用户确认 | 待确认 |
340
371
  >
341
372
 
342
373
  ```markdown
343
- ### 验证报告: T{X.Y.Z}
374
+ ### 验证报告: T{X.Y.Z}
344
375
 
345
376
  **验证类型**: [单元测试 | 集成测试 | E2E测试 | 冒烟测试 | 回归测试 | 编译检查 | Lint检查 | 手动验证]
346
377
 
347
378
  **自动验证** (单元测试/集成测试/E2E/冒烟/回归/编译/Lint):
348
379
  | 验收标准 | 命令 | 输出摘要 | 状态 |
349
380
  | -------- | ---- | -------- | :--: |
350
- | 测试通过 | `npm test` | 12 passed, 0 failed | |
351
- | 构建成功 | `npm run build` | Build succeeded | |
381
+ | 测试通过 | `npm test` | 12 passed, 0 failed | 通过/未通过 |
382
+ | 构建成功 | `npm run build` | Build succeeded | 通过/未通过 |
352
383
 
353
384
  **手动验证**:
354
385
  | 验收标准 | 说明 | 状态 |
355
386
  | -------- | ---- | :--: |
356
- | 页面显示正确 | 需要打开浏览器确认渲染效果 | |
387
+ | 页面显示正确 | 需要打开浏览器确认渲染效果 | 待确认 |
357
388
  ```
358
389
 
359
390
  按任务的 `**验证类型**` 和 `**验证说明**` 字段执行检查。
@@ -365,48 +396,21 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
365
396
  > - 回归测试必须显式写出本次复验覆盖了哪些既有能力,避免泛化成“随便跑点测试”
366
397
  > - 若任务声明了冒烟测试或回归测试,但 `验证说明` 无法指导执行,应视为验证定义不完整,先修任务定义或回流 `/change`
367
398
 
368
- - 自动验证类型有 → **修复后重新验证**,不得跳过
369
- - 自动验证类型全部 ✅ → 按下方 **「3.4.5 / 3.4.6 频控」** 决定是否在本任务执行 **3.4.5 / 3.4.6**,然后进入 **3.5 → 3.6**。跳过或顺延须在任务备注 / Wave 记录中写明依据(与对应 **skill** 的跳过协议一致)。
399
+ - 若任一自动验证类型未通过 → **修复后重新验证**,不得跳过
400
+ - 若全部自动验证类型通过:
401
+ - **非本波最后一个任务** → **3.5 → 3.6**(不在此执行 **§3.4.6**)。
402
+ - **本波最后一个任务** → **§3.4.6(见下)** → **3.5 → 3.6**。
370
403
 
371
- ### 3.4.5 / 3.4.6 频控(默认)
404
+ ### 3.4.6 波末 E2E(写死:`e2e-testing-guide` → 浏览器)
372
405
 
373
- > [!IMPORTANT]
374
- > **`code-reviewer`(3.4.5)默认不在每个任务后强制执行**(避免噪声与上下文浪费)。**`e2e-testing-guide`(3.4.6)** 的触发与 **3.4.5 频控相互独立** — UI/E2E 类任务只要 skill 触发就应执行 3.4.6,即使不是 Wave 最后一个任务。
375
- >
376
- > **3.4.5(`code-reviewer`)默认节奏**:
377
- >
378
- > - **主路径**:在本 **Wave** 的 **最后一个任务** 完成 3.4 的自动验证后,集中执行 **一次** 3.4.5(审查范围为本 Wave 已落地变更)。
379
- > - **Wave 内较早的任务**:通常 **跳过** 3.4.5,直接进入 **3.5 → 3.6**;若跳过,在任务或 Wave 备注标注依据(如 `3.4.5 deferred — wave cadence`)。
380
- > - **兜底**:若已连续 **约 2~3 个 Wave** 未执行 3.4.5,应在下一 Wave **Step 1** 之前或上一 Wave **Step 4** 末尾 **补跑一次**(范围与证据见 skill)。
381
- > - **例外**(可改为本任务后立即跑 3.4.5):任务/用户显式要求 **逐任务静态审查**;**公共契约高风险**;**`/forge自动` 长会话**需加密审查 — 仍须服从 **`code-reviewer` skill** 的跳过/加密协议。
382
- >
383
- > **3.4.6(`e2e-testing-guide`)与浏览器工具**:
384
- >
385
- > - 未触发 skill → 跳过 + 一行原因 → **3.5**。
386
- > - **具备浏览器自动化能力时**:按 skill — **先** 产出/对齐 Testing Guide,**再在用户授权下** 执行真实浏览器步骤。
387
- > - **无浏览器工具**:**guide-only**,不得在无证据时声称 E2E/冒烟已通过。
388
-
389
- ---
390
-
391
- ### 3.4.5 静态忠实度审查 (Code Fidelity Check)
392
-
393
- (按频控:本任务执行;或顺延至 Wave 最后一个任务 / 兜底补跑 — 见上。)
394
-
395
- 完整遵从 `**code-reviewer`** skill(输入、Lens、输出、跳过协议均以 skill 为准)。
396
-
397
- **执行方式**:宿主支持子代理(Task / 并行会话等)时 **优先**委派子代理执行本小节;若无子代理能力,则由**当前会话**按同一 skill 执行(不得以无子代理为由缩水审查)。
398
-
399
- **门禁路由**:Critical / High → 当前版本内可收敛则 **`/change`**;撼动需求/架构/ADR 前提则 **`/genesis`**。无阻塞 → **3.4.6**(若触发)或 **3.5**。
406
+ **仅**在 **本波最后一个任务**、且该任务 **§3.4**(自动侧)已通过之后执行。静态忠实度门在 **§1.4 波前** 已完成或可豁免,此处**不再**重复 **`code-reviewer`**。
400
407
 
401
- ---
402
-
403
- ### 3.4.6 浏览器与 E2E 验证指南
404
-
405
- 完整遵从 `**e2e-testing-guide`** skill(触发条件、guide-only、证据规则均以 skill 为准)。
406
-
407
- 若宿主具备浏览器自动化:**先 Guide、后实机(用户授权)**;无工具则 guide-only,不得冒充已测。
408
-
409
- 未触发 → `E2E guide skipped` + 一行原因 → **3.5**。
408
+ 1. 若本波 `05_TASKS.md` 中**任一**任务含 **E2E测试** 或 **手动验证**(或等价须实机 UI 的验收):
409
+ - **必须**提示用户二选一(除非用户已预先声明):
410
+ - **收尾 A**:本轮**仅**依赖 **§1.4** 已完成的 **`code-reviewer`**(或合法豁免记录)+ 本任务 **§3.4**,**不**再跑 E2E 报告与浏览器;若仍残留 UI 类验收未测,须在 Wave/会话备注写明**风险与原因**。
411
+ - **收尾 B**:**先** 严格按 **`e2e-testing-guide`** skill **只写**《E2E Verification》指南与表格(报告骨架与三档评测含义以 skill **Required output** 内 `<!-- -->` 注释为准:**仅** `PASS` / `PARTIAL_PASS` / `FAIL`);**再** 在用户授权下用宿主 **浏览器工具** 按报告逐步执行,并把 **Evidence / 各 verdict 列** 回填。
412
+ 2. 若本波**无**上述验证类型 一行 `§3.4.6 skipped — no E2E/manual in wave` → **3.5**。
413
+ 3. **无浏览器工具**:只交付 skill 文档,标注 `guide-only`,不得声称已完成实机 `PASS`。
410
414
 
411
415
  ---
412
416
 
@@ -417,17 +421,17 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
417
421
 
418
422
  | # | 检查项 | 通过? |
419
423
  | --- | ------------------------- | --- |
420
- | 1 | 代码接口与 SYSTEM_DESIGN 定义一致? | ✅/❌ |
421
- | 2 | 未引入 ADR 未批准的依赖? | ✅/❌ |
422
- | 3 | 未添加任务范围外的功能? | ✅/❌ |
423
- | 4 | 代码风格与项目一致,lint 通过? | ✅/❌ |
424
- | 5 | 所有验收标准已验证通过? | ✅/❌ |
425
- | 6 | 所有可执行验收标准有足够证据(终端/日志/截图)? | ✅/❌ |
426
- | 7 | 需人工确认的验收标准已标记 ⏳? | ✅/❌ |
424
+ | 1 | 代码接口与 SYSTEM_DESIGN 定义一致? | 是/否 |
425
+ | 2 | 未引入 ADR 未批准的依赖? | 是/否 |
426
+ | 3 | 未添加任务范围外的功能? | 是/否 |
427
+ | 4 | 代码风格与项目一致,lint 通过? | 是/否 |
428
+ | 5 | 所有验收标准已验证通过? | 是/否 |
429
+ | 6 | 所有可执行验收标准有足够证据(终端/日志/截图)? | 是/否 |
430
+ | 7 | 需人工确认的验收标准已标记 | 是/否 |
427
431
 
428
432
 
429
- - 全部 → 继续 3.6
430
- - → **修复**
433
+ - 若检查清单全部通过 → 继续 3.6
434
+ - 若任一项未通过 → **修复**
431
435
 
432
436
  ---
433
437
 
@@ -460,14 +464,23 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
460
464
 
461
465
  **目标**: 结算本波次,更新状态,准备下一步。
462
466
 
467
+ ### 4.0 Wave 合拢门禁(硬)
468
+
469
+ 同时满足方可进入 **4.1+**:
470
+
471
+ 1. **§1.4**:本波进入 **Step 2** 之前 **`code-reviewer`** 已完成(可溯源),或 **`code-reviewer`** skill 下的**合法豁免**(含 **`CODE_REVIEW_DISABLED_BY_USER`** / **无可审实现** 等)已写明。
472
+ 2. **Step 3**:本波内**全部**任务已完成;**末任务**之 **§3.4.6** 已按 **收尾 A/B** 处理或已跳过(无 E2E/手动等),且 **§3.5 / §3.6** 已闭环。
473
+
474
+ **不满足 → 禁止**进入 **4.1 及之后**;回到 Step 1(缺 §1.4)或 Step 3(缺任务闭环)补齐。
475
+
463
476
  ### 4.1 更新状态
464
477
 
465
478
  **更新 `AGENTS.md`**:
466
479
 
467
- 1. 更新 `🌊 Wave` 块为下一波的初始状态(如果已知下一波任务),或标记当前波已完成:
480
+ 1. 更新 `Wave` 块为下一波的初始状态(如果已知下一波任务),或标记当前波已完成:
468
481
 
469
482
  ```markdown
470
- ### 🌊 Wave {N}— {波次目标简述}
483
+ ### Wave {N} — {波次目标简述}
471
484
  T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
472
485
  ```
473
486
 
@@ -478,7 +491,7 @@ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
478
491
  向用户简要汇报:
479
492
 
480
493
  ```markdown
481
- ## 🌊 Wave {N} 完成
494
+ ## Wave {N} 完成
482
495
 
483
496
  **已完成**: T{X.Y.Z}, T{X.Y.Z}, ...
484
497
  **验证状态**: 全部通过 / 部分通过
@@ -498,18 +511,19 @@ chore(wave): settle wave {N} progress
498
511
 
499
512
  ### 4.4 下一步判定
500
513
 
501
- **签名检查点** ⚠️:
514
+ **签名检查点**
502
515
 
503
- - 还有未完成任务 → 询问:"继续下一波?";普通模式等待用户签名,AUTO 模式以 `AUTO` 签名继续 → 回到 **Step 1**
516
+ - 还有未完成任务 → **普通模式**:展示下一波 Wave 建议并等待用户签名 → 回到 **Step 1**。**AUTO 模式**:**不得**再问「是否继续下一波」— 直接回到 **Step 1** 并以 **`AUTO`** 签署下一波(展示 Wave 建议即可)。
504
517
  - 当前 Sprint 所有任务完成 → 进入 **Step 5**
505
518
  - 有阻塞问题 → 引导用户运行相应工作流修复
506
519
 
507
520
  > [!IMPORTANT]
508
- > **AUTO 模式的停止条件**:
521
+ > **AUTO 模式的停止条件**(**仅**以下及上文已声明的等价硬阻塞;**不得**扩展为「征求意见」式停顿):
509
522
  >
510
523
  > - 命中手动验证且需要用户最终确认
511
524
  > - `/change` 评估后发现必须升级到 `/genesis`
512
525
  > - 其他工作流要求用户作出新的版本级决定
526
+ > - **§1.4 波前 `code-reviewer`** 产出未解决的 **Critical / High**,且无法在本会话内按 skill 收窄为可执行修复路径(须走 **`/change`** / **`/genesis`** 或用户显式承担风险—**未显式承担则停**)
513
527
  >
514
528
  > 命中以上任一条件,AUTO 必须立即停止,等待用户批准。
515
529
 
@@ -535,12 +549,11 @@ chore(wave): settle wave {N} progress
535
549
 
536
550
  ---
537
551
 
538
- - 每个任务的验收标准全部通过
539
- - 每个任务的遵从性检查全部通过
540
- - **3.4.5**:按 Wave 末次任务 / 约 2~3 Wave 兜底 / skill 例外执行 `code-reviewer`,或在任务与 Wave 记录中写明跳过或顺延依据
541
- - **3.4.6**:按 `e2e-testing-guide` 触发;有浏览器工具则先 Guide 后实机;否则 guide-only;未触发则写明原因
542
- - ✅ 所有代码已 git commit,message 包含 Task ID
543
- - ✅ 所有任务已完成持久化(`05_TASKS.md`)
544
- - `AGENTS.md` 当前状态已更新
545
- - ✅ 用户已确认波次完成
552
+ - 每个任务的验收标准全部通过
553
+ - 每个任务的遵从性检查全部通过
554
+ - **§1.4 / §3.4.6**:**§4.0** 已满足;§1.4 波前审查或合法豁免已落盘;§3.4.6 已按 **收尾 A/B** 处理(选 A 须有备注),或本波无 E2E/手动态
555
+ - 所有代码已 git commit,message 包含 Task ID
556
+ - 所有任务已完成持久化(`05_TASKS.md`)
557
+ - `AGENTS.md` 当前状态已更新
558
+ - 用户已确认波次完成,或 **AUTO** 已按规则完成结算署名
546
559