@haaaiawd/anws 1.0.1 → 1.1.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 CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  const fs = require('node:fs/promises');
4
4
  const path = require('node:path');
5
+ const crypto = require('node:crypto');
5
6
  const { copyDir } = require('./copy');
6
7
  const { MANAGED_FILES, USER_PROTECTED_FILES } = require('./manifest');
7
8
  const { success, warn, info, fileLine, skippedLine, blank, logo } = require('./output');
@@ -25,6 +26,7 @@ async function init() {
25
26
  }
26
27
  // 仅覆盖托管文件(用户自有文件不受影响)
27
28
  const { written: updated, skipped } = await overwriteManaged(srcRoot, cwd);
29
+ await storeAgentsTemplateHash(srcRoot, cwd);
28
30
  printSummary(updated, skipped, 'updated');
29
31
  return;
30
32
  }
@@ -36,6 +38,9 @@ async function init() {
36
38
 
37
39
  const written = await copyDir(srcRoot, destRoot);
38
40
 
41
+ // 存储 agents.md 模板指纹,供后续 update 检测模板变化
42
+ await storeAgentsTemplateHash(srcRoot, cwd);
43
+
39
44
  // 打印文件列表
40
45
  for (const absPath of written) {
41
46
  const rel = path.relative(cwd, absPath).replace(/\\/g, '/');
@@ -159,4 +164,23 @@ function printNextSteps() {
159
164
  info(' 2. Run /genesis in your AI assistant to start a new project');
160
165
  }
161
166
 
167
+ /**
168
+ * 存储 agents.md 模板的 MD5 指纹。
169
+ * 供 `anws update` 检测模板是否在版本间发生了变化。
170
+ * @param {string} srcRoot 模板 .agent/ 目录绝对路径
171
+ * @param {string} cwd 项目根目录
172
+ */
173
+ async function storeAgentsTemplateHash(srcRoot, cwd) {
174
+ const templatePath = path.join(srcRoot, 'rules', 'agents.md');
175
+ const hashPath = path.join(cwd, '.agent', 'rules', '.agents-template-hash');
176
+
177
+ try {
178
+ const content = await fs.readFile(templatePath, 'utf-8');
179
+ const hash = crypto.createHash('md5').update(content).digest('hex');
180
+ await fs.writeFile(hashPath, hash, 'utf-8');
181
+ } catch {
182
+ // 模板文件不存在时静默失败(不应该发生)
183
+ }
184
+ }
185
+
162
186
  module.exports = init;
package/lib/update.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  const fs = require('node:fs/promises');
4
4
  const path = require('node:path');
5
+ const crypto = require('node:crypto');
5
6
  const { MANAGED_FILES, USER_PROTECTED_FILES } = require('./manifest');
6
7
  const { success, warn, error, info, fileLine, skippedLine, blank, logo } = require('./output');
7
8
 
@@ -66,10 +67,24 @@ async function update() {
66
67
  skippedLine(rel.replace(/\\/g, '/'));
67
68
  }
68
69
  }
70
+
71
+ // 检查 agents.md 模板是否有变更,提供 .new 文件供用户合并
72
+ const agentsMerged = await checkAgentsTemplate(cwd, srcRoot);
73
+
69
74
  blank();
70
75
  success(`Done! ${updated.length} file(s) updated${skipped.length > 0 ? `, ${skipped.length} skipped` : ''}.`);
71
76
  info('Managed files have been updated to the latest version.');
72
77
  info('Your custom files in .agent/ were not touched.');
78
+
79
+ if (agentsMerged) {
80
+ blank();
81
+ warn('agents.md template has changed!');
82
+ info('A new template has been saved to:');
83
+ info(' .agent/rules/agents.md.new');
84
+ blank();
85
+ info('Please review and merge the changes into your agents.md.');
86
+ info('After merging, delete agents.md.new.');
87
+ }
73
88
  }
74
89
 
75
90
  /**
@@ -95,4 +110,44 @@ async function askUpdate() {
95
110
  });
96
111
  }
97
112
 
113
+ /**
114
+ * 检查 agents.md 模板是否相比上次安装/更新有变化。
115
+ * 用 hash 文件记录上次模板指纹,与新模板比较。
116
+ * 如果有变化 → 写入 agents.md.new + 更新 hash。
117
+ *
118
+ * @param {string} cwd 项目根目录
119
+ * @param {string} srcRoot 模板 .agent/ 目录
120
+ * @returns {Promise<boolean>} 是否产生了 .new 文件
121
+ */
122
+ async function checkAgentsTemplate(cwd, srcRoot) {
123
+ const templatePath = path.join(path.dirname(srcRoot), '.agent', 'rules', 'agents.md');
124
+ const hashPath = path.join(cwd, '.agent', 'rules', '.agents-template-hash');
125
+ const newPath = path.join(cwd, '.agent', 'rules', 'agents.md.new');
126
+
127
+ const templateExists = await fs.access(templatePath).then(() => true).catch(() => false);
128
+ if (!templateExists) return false;
129
+
130
+ const templateContent = await fs.readFile(templatePath, 'utf-8');
131
+ const newHash = crypto.createHash('md5').update(templateContent).digest('hex');
132
+
133
+ // 读取上次存储的 hash
134
+ let oldHash = null;
135
+ try {
136
+ oldHash = (await fs.readFile(hashPath, 'utf-8')).trim();
137
+ } catch {
138
+ // hash 文件不存在(首次 update 或旧版本安装)
139
+ }
140
+
141
+ if (oldHash === newHash) {
142
+ return false; // 模板没变化
143
+ }
144
+
145
+ // 模板有变化 → 写入 .new 供用户合并
146
+ await fs.writeFile(newPath, templateContent, 'utf-8');
147
+ // 更新 hash 记录
148
+ await fs.writeFile(hashPath, newHash, 'utf-8');
149
+
150
+ return true;
151
+ }
152
+
98
153
  module.exports = update;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haaaiawd/anws",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Antigravity Workflow System CLI — one command to install AI collaboration workflows into your project",
5
5
  "keywords": [
6
6
  "ai",
@@ -34,13 +34,16 @@
34
34
 
35
35
  ## 📍 当前状态 (由 Workflow 自动更新)
36
36
 
37
- > **注意**: 此部分由 `/genesis` 和 `/blueprint` 自动维护。
37
+ > **注意**: 此部分由 `/genesis`、`/blueprint` 和 `/forge` 自动维护。
38
38
 
39
39
  - **最新架构版本**: `尚未初始化`
40
40
  - **活动任务清单**: `尚未生成`
41
41
  - **待办任务数**: -
42
42
  - **最近一次更新**: `-`
43
43
 
44
+ ### 🌊 Wave 1 — 待 /blueprint 或 /forge 设置
45
+ _尚未开始执行_
46
+
44
47
  ---
45
48
 
46
49
  ## 🌳 项目结构 (Project Tree)
@@ -69,11 +72,11 @@
69
72
  | `/genesis` | 新项目 / 重大重构 | PRD, Architecture, ADRs |
70
73
  | `/scout` | 变更前 / 接手项目 | `genesis/v{N}/00_SCOUT_REPORT.md` |
71
74
  | `/design-system` | genesis 后 | 04_SYSTEM_DESIGN/*.md |
72
- | `/blueprint` | genesis 后 | 05_TASKS.md |
73
- | `/forge` | blueprint 后 | 实际代码实现 |
75
+ | `/blueprint` | genesis 后 | 05_TASKS.md + agents.md 初始 Wave |
74
76
  | `/change` | 微调已有任务 | 更新 TASKS + SYSTEM_DESIGN (仅修改) + CHANGELOG |
75
77
  | `/explore` | 调研时 | 探索报告 |
76
- | `/challenge` | 决策前质疑 | 07_CHALLENGE_REPORT.md |
78
+ | `/challenge` | 决策前质疑 | 07_CHALLENGE_REPORT.md (含问题总览目录) |
79
+ | `/forge` | 编码执行 | 代码 + 更新 agents.md Wave 块 |
77
80
  | `/craft` | 创建工作流/技能/提示词 | Workflow / Skill / Prompt 文档 |
78
81
 
79
82
  ---
@@ -87,4 +90,4 @@
87
90
 
88
91
  ---
89
92
 
90
- > **状态自检**: 准备好了?运行 `/genesis` 开始你的第一个项目设计吧。
93
+ > **状态自检**: 准备好了?运行 `/genesis` 开始你的第一个项目设计吧。
@@ -101,7 +101,7 @@ description: 使用WBS方法将系统设计文档分解为层次化任务。支
101
101
  - [ ] **T1.1.1** [基础]: 设置 Vite + React 项目
102
102
  - **描述**: 初始化前端项目,配置Vite、React、TypeScript
103
103
  - **输入**: PRD (React技术栈要求)
104
- - **输出**: 可运行的Hello World应用
104
+ - **输出**: 可运行的Hello World应用 (`src/App.tsx`, `vite.config.ts`)
105
105
  - **验收标准**:
106
106
  - [ ] `npm run dev` 正常启动
107
107
  - [ ] 页面显示"Hello World"
@@ -111,6 +111,16 @@ description: 使用WBS方法将系统设计文档分解为层次化任务。支
111
111
  - **优先级**: P0
112
112
  ```
113
113
 
114
+ ### 接口追溯规则
115
+
116
+ > [!IMPORTANT]
117
+ > **任务间的输入/输出必须对齐。**
118
+ >
119
+ > 如果任务 B 依赖任务 A,则 B 的「输入」必须明确引用 A 的「输出」的具体产物(文件路径、接口名、数据格式)。
120
+ >
121
+ > - ✅ 好: B 输入 = “T1.1.1 产出的 `App.tsx` 组件 + `vite.config.ts` 配置”
122
+ > - ❌ 差: B 输入 = “前端项目”
123
+
114
124
  ---
115
125
 
116
126
  ## 📋 任务元数据完整性
@@ -338,6 +348,50 @@ graph TD
338
348
 
339
349
  ---
340
350
 
351
+ ## 🎯 Sprint 退出标准与集成验证任务
352
+
353
+ ### Sprint 退出标准
354
+
355
+ > [!IMPORTANT]
356
+ > **每个 Sprint/里程碑必须有明确的退出标准。**
357
+ >
358
+ > 退出标准定义"什么算做完",它不是模糊的"任务都打勾了",而是**可演示、可验证的具体状态**。
359
+
360
+ **Sprint 路线图格式**:
361
+ ```markdown
362
+ | Sprint | 代号 | 核心任务 | 退出标准 | 预估 |
363
+ |--------|------|---------|---------|------|
364
+ | S1 | Hello World | 基础设施+数据 | headless 运行 2 国 5 回合 + 基本渲染可见 | 3-4d |
365
+ | S2 | 功能成型 | 实体+交互 | 完整功能可演示 + HUD 显示资源 | 5-6d |
366
+ ```
367
+
368
+ **退出标准要求**:
369
+ - 必须是可客观验证的(可截图/录屏/日志证明)
370
+ - 必须涵盖跨系统集成(而非单个组件)
371
+ - 描述用户/开发者能观察到的行为,而非内部实现细节
372
+
373
+ ### 集成验证任务 (INT Task)
374
+
375
+ 每个 Sprint 末尾生成一个 **INT-S{N}** 任务,专门验证退出标准:
376
+
377
+ ```markdown
378
+ - [ ] **INT-S{N}** [MILESTONE]: S{N} 集成验证 — {代号}
379
+ - **描述**: 验证 S{N} 退出标准
380
+ - **输入**: S{N} 所有任务的产出
381
+ - **输出**: 集成验证报告(通过/失败 + Bug 清单)
382
+ - **验收标准**:
383
+ - Given S{N} 所有任务已完成
384
+ - When 逐条执行退出标准中的检查
385
+ - Then 全部通过 → Sprint 完成; 有失败 → 记录 Bug
386
+ - **验证说明**: 按退出标准逐条执行,截图/录屏/日志确认
387
+ - **估时**: 2-4h
388
+ - **依赖**: S{N} 最后一个任务
389
+ ```
390
+
391
+ INT 任务是该 Sprint 的"关门任务"。**未通过 INT 任务的 Sprint 不得标记为完成。**
392
+
393
+ ---
394
+
341
395
  ## 💡 常见场景与模式
342
396
 
343
397
  ### 场景1: 新功能开发
@@ -50,21 +50,32 @@
50
50
 
51
51
  ---
52
52
 
53
+ ## 📊 Sprint 路线图
54
+
55
+ | Sprint | 代号 | 核心任务 | 退出标准 | 预估 |
56
+ |--------|------|---------|---------|------|
57
+ | S1 | Foundation | T001-T002 | DB 可连接 + 环境变量生效 | 1d |
58
+ | S2 | Core Logic | T003-T005 | 完整认证流程可运行 | 2d |
59
+
60
+ ---
61
+
53
62
  ### Phase 3: Integration
54
63
 
55
64
  #### T005 - Login Endpoint
56
65
  - **User Story**: US01
57
66
  - **Description**: Implement `POST /api/login` that validates credentials and returns JWT.
58
67
  - **Dependencies**: T003 (User table populated), T004 (JWT generator ready)
68
+ - **Input**: T003 产出的 `users` 表 + T004 产出的 `generate_token()` 函数
69
+ - **Output**: `/api/login` 端点 (`src/routes/auth.js`)
59
70
  - **Done When**:
60
71
  1. Valid login returns `{token: "..."}`.
61
72
  2. Invalid login returns 401.
62
73
 
63
- #### T005-CHK - [Verification] Verify US01 - User Authentication
74
+ #### INT-S2 - [MILESTONE] S2 集成验证 Core Logic
64
75
  - **User Story**: US01
65
- - **Type**: Checkpoint (Story Milestone)
66
- - **Description**: Validate entire authentication flow works end-to-end.
67
- - **Dependencies**: All US01 tasks (T001-T005)
76
+ - **Type**: Integration Verification (Sprint Gate)
77
+ - **Description**: 验证 S2 退出标准:完整认证流程可运行
78
+ - **Dependencies**: All S2 tasks (T003-T005)
68
79
  - **Done When**:
69
80
  1. Run `npm run dev` or equivalent
70
81
  2. Register a new user via `/api/register`
@@ -75,8 +75,8 @@ description: 将架构设计拆解为可执行的 WBS 任务清单,每个任
75
75
  ```markdown
76
76
  - [ ] **T{X}.{Y}.{Z}** [REQ-XXX]: 任务标题
77
77
  - **描述**: 具体要做什么
78
- - **输入**: 依赖的文件/接口
79
- - **输出**: 产出的文件/组件
78
+ - **输入**: 依赖的文件/接口(如依赖前置任务,必须引用其具体输出产物)
79
+ - **输出**: 产出的文件/组件/接口
80
80
  - **验收标准**:
81
81
  - Given [前置条件]
82
82
  - When [执行动作]
@@ -86,6 +86,16 @@ description: 将架构设计拆解为可执行的 WBS 任务清单,每个任
86
86
  - **依赖**: T{A}.{B}.{C} (如有)
87
87
  ```
88
88
 
89
+ ### 接口追溯规则
90
+
91
+ > [!IMPORTANT]
92
+ > **任务间的输入/输出必须对齐。**
93
+ >
94
+ > 如果任务 B 依赖任务 A,则 B 的「输入」必须明确引用 A 的「输出」的具体产物(文件路径、接口名、数据格式)。
95
+ >
96
+ > - ✅ 好: B 输入 = “T2.1.2 产出的 `MapGenerator` 类(`src/core/map_gen.py`)的 `generate()` 方法返回的 `World` 对象”
97
+ > - ❌ 差: B 输入 = “地图数据”
98
+
89
99
  ### 验证说明格式指南
90
100
 
91
101
  > [!IMPORTANT]
@@ -106,7 +116,50 @@ description: 将架构设计拆解为可执行的 WBS 任务清单,每个任
106
116
 
107
117
  ---
108
118
 
109
- ## Step 3: 依赖分析 (Dependency Analysis)
119
+ ## Step 3: Sprint 路线图与退出标准 (Sprint Roadmap)
120
+
121
+ **目标**: 将任务分组为 Sprint/里程碑,每个 Sprint 必须有明确的退出标准和集成验证任务。
122
+
123
+ > [!IMPORTANT]
124
+ > **每个 Sprint 必须有退出标准和集成验证任务。**
125
+ >
126
+ > Sprint 不只是“一堆任务”,而是一个有明确入口和出口的工作单元。
127
+ > 退出标准定义“什么算做完”,集成验证任务负责“证明做完”。
128
+
129
+ ### Sprint 路线图格式
130
+
131
+ ```markdown
132
+ ## 📊 Sprint 路线图
133
+
134
+ | Sprint | 代号 | 核心任务 | 退出标准 | 预估 |
135
+ |--------|------|---------|---------|------|
136
+ | S1 | Hello World | 基础设施+核心数据 | headless 运行通过 + 基本渲染可见 | 3-4d |
137
+ | S2 | 功能成型 | 实体+交互 | 完整功能可演示 + HUD 正常 | 5-6d |
138
+ ```
139
+
140
+ ### 集成验证任务 (INT Task)
141
+
142
+ 每个 Sprint 末尾必须生成一个 **INT-S{N}** 集成验证任务,专门负责验证该 Sprint 的退出标准:
143
+
144
+ ```markdown
145
+ - [ ] **INT-S{N}** [MILESTONE]: S{N} 集成验证 — {代号}
146
+ - **描述**: 验证 S{N} 退出标准,确认所有跨系统功能正常协作
147
+ - **输入**: S{N} 所有任务的产出
148
+ - **输出**: 集成验证报告(通过/失败 + Bug 清单)
149
+ - **验收标准**:
150
+ - Given S{N} 所有任务已完成
151
+ - When 执行退出标准中的每一项检查
152
+ - Then 全部通过 → Sprint 完成; 有失败 → 记录 Bug 并触发修复波次
153
+ - **验证说明**: 按土出标准逐条执行,截图/录屏/日志确认
154
+ - **估时**: 2-4h
155
+ - **依赖**: S{N} 所有任务
156
+ ```
157
+
158
+ > INT 任务是该 Sprint 的“关门任务”。未通过 INT 任务的 Sprint 不得标记为完成。
159
+
160
+ ---
161
+
162
+ ## Step 4: 依赖分析 (Dependency Analysis)
110
163
 
111
164
  **目标**: 生成 Mermaid 依赖图。
112
165
 
@@ -121,7 +174,7 @@ graph TD
121
174
 
122
175
  ---
123
176
 
124
- ## Step 4: 复杂度审计
177
+ ## Step 5: 复杂度审计
125
178
 
126
179
  调用 `complexity-guard` 确保:
127
180
  - 单个任务 ≤ 8 小时
@@ -130,7 +183,7 @@ graph TD
130
183
 
131
184
  ---
132
185
 
133
- ## Step 5: 生成文档
186
+ ## Step 6: 生成文档
134
187
 
135
188
  **目标**: 保存最终的任务清单,并**更新 AGENTS.md**。
136
189
 
@@ -140,20 +193,26 @@ graph TD
140
193
  2. **验证**: 确保文件包含所有任务、验收标准和依赖图。
141
194
  3. **更新 .agent/rules/agents.md "当前状态"**:
142
195
  - 活动任务清单: `genesis/v{N}/05_TASKS.md`
143
- - 待办任务数: `{X}` (计算 total tasks)
144
196
  - 最近一次更新: `{Today}`
197
+ - 写入初始波次建议,让 `/forge` 可以直接启动:
198
+ ```markdown
199
+ ### 🌊 Wave 1 — {S1 的第一批任务目标}
200
+ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
201
+ ```
145
202
 
146
203
  ---
147
204
 
148
205
  ## 检查清单
206
+ - ✅ 每个 Sprint 有退出标准和 INT 集成验证任务?
149
207
  - ✅ 05_TASKS.md 是否包含所有 WBS 任务?
150
208
  - ✅ 每个任务是否有 Context 和 Acceptance Criteria?
209
+ - ✅ 任务间的输入/输出是否对齐(接口追溯)?
151
210
  - ✅ 是否生成了 Mermaid 依赖图?
152
- - ✅ 已更新 .agent/rules/agents.md
211
+ - ✅ 已更新 .agent/rules/agents.md(含初始波次建议)?
153
212
 
154
213
  ---
155
214
 
156
- ## Step 6: 最终确认
215
+ ## Step 7: 最终确认
157
216
 
158
217
  **展示统计**:
159
218
  ```markdown
@@ -179,7 +238,9 @@ graph TD
179
238
  - ✅ 定位到最新架构版本 `v{N}`
180
239
  - ✅ 任务清单 `05_TASKS.md` 已生成
181
240
  - ✅ 每个 Level 3 任务包含验证说明
241
+ - ✅ 任务间输入/输出已对齐(接口追溯)
242
+ - ✅ 每个 Sprint 有退出标准和 INT 集成验证任务
182
243
  - ✅ 生成了 Mermaid 依赖图
183
- - ✅ 已更新 .agent/rules/agents.md
244
+ - ✅ 已更新 .agent/rules/agents.md(含初始波次建议)
184
245
  - ✅ 用户已确认
185
246
  </completion_criteria>
@@ -320,8 +320,21 @@ description: 对项目决策进行系统性挑战,通过三维度审查框架
320
320
 
321
321
  > **审查日期**: {YYYY-MM-DD}
322
322
  > **审查范围**: {TARGET_DIR} 全部设计文档
323
- > **审查者**: AI Challenger
324
- > **总计发现**: X 项问题
323
+ > **累计轮次**: {N}
324
+
325
+ ---
326
+
327
+ ## 📋 问题总览
328
+
329
+ > 此目录随每轮审查同步维护。已解决的轮次仅保留此摘要行,详细内容在确认修复后删除。
330
+
331
+ ### 第一轮({日期},{X}/{Y} 已修复)
332
+
333
+ | ID | 严重度 | 摘要 | 状态 |
334
+ |----|--------|------|------|
335
+ | C1-CX | 🔴 | [同级别问题的精简一行摘要] | ✅ 全部修复 / ⏳ 待修复 |
336
+ | H1-HX | 🟠 | [同级别问题的精简一行摘要] | ✅ 全部修复 / ⏳ 待修复 |
337
+ | M1-MX | 🟡 | [同级别问题的精简一行摘要] | ✅ 全部修复 / ⏳ 实现时处理 |
325
338
 
326
339
  ---
327
340
 
@@ -333,15 +346,11 @@ description: 对项目决策进行系统性挑战,通过三维度审查框架
333
346
  2. **运行模拟维度** - 时序正确性、状态同步、边界条件
334
347
  3. **工程实现维度** - 可测试性、可维护性、性能、安全
335
348
 
336
- 每个问题按以下结构描述:
337
- - **严重度**: Critical / High / Medium / Low
338
- - **问题描述**: 具体不足
339
- - **影响**: 对系统的影响
340
- - **建议**: 解决方案
341
-
342
349
  ---
343
350
 
344
- ## 📊 问题统计
351
+ ## 🔥 第{N}轮详细审查(当前活跃)
352
+
353
+ ### 📊 本轮问题统计
345
354
 
346
355
  | 严重度 | 数量 | 占比 |
347
356
  |--------|------|------|
@@ -359,9 +368,7 @@ description: 对项目决策进行系统性挑战,通过三维度审查框架
359
368
 
360
369
  ---
361
370
 
362
- # 第一部分: 系统设计问题
363
-
364
- ## 🔴 Critical 级别
371
+ # 🔴 Critical 级别
365
372
 
366
373
  ### C1. [问题标题]
367
374
 
@@ -387,45 +394,22 @@ description: 对项目决策进行系统性挑战,通过三维度审查框架
387
394
 
388
395
  ---
389
396
 
390
- # 第二部分: 运行模拟问题
391
-
392
- ## 🔴 Critical 级别
397
+ ## 🟡 Medium / 🟢 Low 级别
393
398
 
394
399
  ...
395
400
 
396
401
  ---
397
402
 
398
- # 第三部分: 工程实现问题
399
-
400
- ...
401
-
402
- ---
403
-
404
- # 总结与建议
405
-
406
- ## 🎯 核心发现
407
-
408
- **Critical 问题**: [总结最严重的问题]
409
-
410
- **High 问题**: [总结高风险问题]
411
-
412
- **系统性风险**: [是否存在系统性的设计缺陷]
413
-
414
- ---
415
-
416
403
  ## 📋 建议行动清单
417
404
 
418
405
  ### P0 - 立即处理 (阻塞)
419
406
  1. [C级问题] - [建议方案]
420
- 2. ...
421
407
 
422
408
  ### P1 - 近期处理 (重要)
423
409
  1. [H级问题] - [建议方案]
424
- 2. ...
425
410
 
426
411
  ### P2 - 持续改进 (优化)
427
412
  1. [M/L级问题] - [建议方案]
428
- 2. ...
429
413
 
430
414
  ---
431
415
 
@@ -456,12 +440,47 @@ description: 对项目决策进行系统性挑战,通过三维度审查框架
456
440
 
457
441
  ---
458
442
 
443
+ ## Step 6: 轮次归档协议 (Round Archive Protocol)
444
+
445
+ **目标**: 保持报告精简,已解决的轮次只保留摘要。
446
+
447
+ > [!IMPORTANT]
448
+ > **此步骤在每轮新审查开始时自动执行,不需要单独触发。**
449
+
450
+ ### 归档规则
451
+
452
+ 1. **新轮审查开始时**,检查上一轮的所有问题是否已解决(由用户确认修复)
453
+ 2. **如已解决** →
454
+ - 在 `📋 问题总览` 中将该轮的状态全部标为 ✅
455
+ - **删除该轮的详细审查章节**(`## 🔥 第{N-1}轮详细审查`)
456
+ - 问题总览中的摘要行即为该轮的永久存档
457
+ 3. **如部分解决** →
458
+ - 已解决的问题在总览中标 ✅
459
+ - 未解决的问题保留 ⏳ 并在新轮中继续跟踪
460
+ - 上一轮详情中仅保留未解决问题的描述
461
+ 4. **报告中同一时刻只有一轮详细内容**(当前活跃轮)
462
+
463
+ ### 总览行合并规则
464
+
465
+ 同严重度的已解决问题合并为一行,格式:
466
+ ```markdown
467
+ | C1-C4 | 🔴 | 条约矛盾/毁约逻辑/升级公式/领地缺失 | ✅ 全部修复 |
468
+ ```
469
+
470
+ 未解决问题保持独立行,格式:
471
+ ```markdown
472
+ | R2-C1 | 🔴 | executor v2 动作缺失 | ⏳ 待修复 |
473
+ ```
474
+
475
+ ---
476
+
459
477
  <completion_criteria>
460
478
  - ✅ 深度阅读了项目设计文档
461
479
  - ✅ Pre-Mortem 分析有逻辑依据
462
480
  - ✅ 每个质疑点都有证据支撑
463
481
  - ✅ 技术健壮性审计已完成
464
482
  - ✅ Top 3 假设已尝试验证
465
- - ✅ 质疑报告格式完整
483
+ - ✅ 质疑报告格式完整(含问题总览目录)
484
+ - ✅ 上一轮已解决问题的详情已归档(仅保留总览行)
466
485
  - ✅ 用户已阅读并决定下一步
467
486
  </completion_criteria>
@@ -108,9 +108,12 @@ description: 按照架构文档和任务清单将设计锻造为代码,通过
108
108
  5. **如果必需文件缺失**: 报错并提示运行 `/genesis` + `/blueprint`。
109
109
 
110
110
  6. **断点续做判定**:
111
- - 读取 `.agent/rules/agents.md` 的 "当前状态"
112
- - 如果存在 "当前波次" 信息 → **断点续做** → 跳入 Step 3 继续未完成的波次
113
- - 如果没有 **新开始** → 继续 Step 1
111
+ - 读取 `.agent/rules/agents.md` 的 `🌊 Wave` 块
112
+ - 如果存在波次信息:
113
+ - 查看波次任务列表,对照 `05_TASKS.md` 中的 checkbox
114
+ - 如有未完成任务 → **断点续做** → 跳入 Step 3 继续未完成的任务
115
+ - 如全部完成 → **新波次** → 继续 Step 1
116
+ - 如果不存在 → **新开始** → 继续 Step 1
114
117
 
115
118
  ---
116
119
 
@@ -157,7 +160,14 @@ description: 按照架构文档和任务清单将设计锻造为代码,通过
157
160
  确认此波次?或调整任务组合?
158
161
  ```
159
162
 
160
- **人类检查点** ⚠️: 用户确认后才进入 Step 2。
163
+ **人类检查点** ⚠️: 用户确认后,将确认的波次写入 `.agent/rules/agents.md` 的 `🌊 Wave` 块:
164
+
165
+ ```markdown
166
+ ### 🌊 Wave {N} — {波次目标简述}
167
+ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
168
+ ```
169
+
170
+ 然后进入 Step 2。
161
171
 
162
172
  ---
163
173
 
@@ -293,15 +303,14 @@ description: 按照架构文档和任务清单将设计锻造为代码,通过
293
303
 
294
304
  ### 4.1 更新状态
295
305
 
296
- **更新 `.agent/rules/agents.md` "当前状态"**:
306
+ **更新 `.agent/rules/agents.md`**:
307
+
308
+ 1. 更新 `🌊 Wave` 块为下一波的初始状态(如果已知下一波任务),或标记当前波已完成:
297
309
  ```markdown
298
- - **最新架构版本**: `genesis/v{N}`
299
- - **活动任务清单**: `genesis/v{N}/05_TASKS.md`
300
- - **当前波次**: Wave {N} ✅ 已完成
301
- - **已完成任务**: T{...}, T{...}, ...
302
- - **待办任务数**: {剩余数}
303
- - **最近一次更新**: {YYYY-MM-DD}
310
+ ### 🌊 Wave {N} ✅ — {波次目标简述}
311
+ T{X.Y.Z}, T{X.Y.Z}, T{X.Y.Z}
304
312
  ```
313
+ 2. 更新 `最近一次更新` 日期
305
314
 
306
315
  ### 4.2 波次回顾
307
316