@haaaiawd/anws 2.2.0 → 2.2.2

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 (28) hide show
  1. package/README.md +180 -343
  2. package/bin/cli.js +112 -112
  3. package/lib/changelog.js +258 -258
  4. package/lib/copy.js +116 -109
  5. package/lib/diff.js +11 -0
  6. package/lib/manifest.js +4 -1
  7. package/lib/update.js +319 -319
  8. package/package.json +4 -3
  9. package/templates/.agents/skills/anws-system/SKILL.md +9 -7
  10. package/templates/.agents/skills/code-reviewer/SKILL.md +102 -327
  11. package/templates/.agents/skills/concept-modeler/SKILL.md +19 -17
  12. package/templates/.agents/skills/craft-authoring/SKILL.md +123 -0
  13. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +59 -0
  14. package/templates/.agents/skills/system-designer/SKILL.md +6 -6
  15. package/templates/.agents/skills/system-designer/references/system-design-template.md +17 -17
  16. package/templates/.agents/skills/task-planner/SKILL.md +113 -113
  17. package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +82 -82
  18. package/templates/.agents/workflows/blueprint.md +284 -284
  19. package/templates/.agents/workflows/challenge.md +450 -491
  20. package/templates/.agents/workflows/change.md +263 -286
  21. package/templates/.agents/workflows/craft.md +243 -664
  22. package/templates/.agents/workflows/design-system.md +624 -624
  23. package/templates/.agents/workflows/explore.md +400 -371
  24. package/templates/.agents/workflows/forge.md +444 -413
  25. package/templates/.agents/workflows/genesis.md +342 -395
  26. package/templates/.agents/workflows/probe.md +21 -16
  27. package/templates/.agents/workflows/quickstart.md +123 -138
  28. package/templates/AGENTS.md +149 -134
@@ -42,15 +42,15 @@ description: 当用户在 skills-only 环境中需要判断应该从哪个 anws
42
42
  - `references/blueprint.md`
43
43
  - 用途:将架构设计拆成可执行的 `05_TASKS.md`
44
44
  - `references/challenge.md`
45
- - 用途:在编码前系统性挑战设计或任务清单
45
+ - 用途:在编码前(或需要时含 `src/`)对抗式审查;可组合 design-reviewer、task-reviewer、**code-reviewer**(`CODE` / `FULL` 或自适应升级)
46
46
  - `references/forge.md`
47
- - 用途:按 `05_TASKS.md` 执行编码任务,并维护 Wave 进度
47
+ - 用途:按 `05_TASKS.md` 执行编码;在验证与提交之间调用 **code-reviewer**(静态忠实度)及按需 **`e2e-testing-guide`**(浏览器/E2E 指南或实测)
48
48
  - `references/change.md`
49
- - 用途:只微调已有任务定义,不创建新任务,不推进实现状态
49
+ - 用途:在当前版本前提不变时微调任务/契约/验证承接;允许 **受控扩展** 下与用户原话或 `/forge` 回流对应的 **少量新任务**;**禁止**回填 `- [x]`、**禁止**运行或替代 **`code-reviewer`**
50
50
  - `references/explore.md`
51
51
  - 用途:做调研、探索、方案发散与收敛
52
52
  - `references/craft.md`
53
- - 用途:创建新的 workflowskill prompt
53
+ - 用途:创建 workflow / skill / prompt;长模板、防护写法与自检清单在 **`craft-authoring`** skill(与 `/craft` 配套,路径随 target 投影到 `skills/craft-authoring/SKILL.md`)
54
54
  - `references/upgrade.md`
55
55
  - 用途:处理 `anws update` 之后的升级编排
56
56
 
@@ -70,12 +70,14 @@ description: 当用户在 skills-only 环境中需要判断应该从哪个 anws
70
70
  1. 读取 `references/forge.md`
71
71
  2. 检查 `.anws/v{N}/05_TASKS.md` 是否存在且任务已定义
72
72
  3. 若缺任务清单,不得直接实现,先回到 `blueprint` 或 `genesis`
73
+ 4. 若任务含 **E2E / 浏览器手动验证**:在执行路径上读取 **`e2e-testing-guide`** skill(同目录 `skills/e2e-testing-guide/SKILL.md`);投影环境下路径以目标 IDE 的 `skills/` 为准
74
+ 5. 在提交前需要静态契约核对时:读取 **`code-reviewer`** skill。**若宿主支持子代理**(如 Task、并行子会话等)→ **优先委派子代理**按该 skill 专职执行(隔离上下文,输出结构以 skill 为准)。**若无子代理能力** → 由**当前会话**按同一 skill 完整执行(检查清单、证据与输出要求不得缩水)。
73
75
 
74
- ### Route 3: 请求是“微调现有任务 / 修正文案 / 调整验收标准”
76
+ ### Route 3: 请求是“微调现有任务 / 修正文案 / 调整验收标准 / 受控补任务”
75
77
 
76
78
  1. 读取 `references/change.md`
77
- 2. 确认只修改已有任务,不新增任务
78
- 3. 若需要新增任务或超出 PRD,改走 `genesis`
79
+ 2. 判断变更是否仍属 `/change` 权限(含 **Q8 少量新任务**、契约/验证补全);若已改动需求/架构/ADR **前提** → `genesis`
80
+ 3. **受控扩展**允许少量新任务(须可追溯用户原话或 forge 回流);**凭空加需求**或版本前提断裂 → `genesis`
79
81
 
80
82
  ### Route 4: 请求是“新项目 / 大重构 / 新版本 / 架构升级”
81
83
 
@@ -1,327 +1,102 @@
1
- ---
2
- name: code-reviewer
3
- description: 对已实现代码进行纯静态忠实度审查,验证实现是否忠于 PRD、ADR、System Design 与 05_TASKS.md 的既有契约,并识别契约漂移、任务漂移、测试漂移与回流遗漏,作为 challenge 的实现侧证据层。
4
- ---
5
-
6
- # 代码审查大师手册
7
-
8
- > "设计会撒谎,任务会漂移,只有代码会留下真正的证据。"
9
-
10
- 你是 **代码审查大师**,负责对**已经存在的实现代码**做纯静态审查。
11
-
12
- 在 `/challenge` 工作流中,你的角色不是泛化 code review,也不是风格检查器;你要回答的是:
13
-
14
- **实现是否忠于既有契约与任务承诺?**
15
-
16
- 你审查的主对象不是“代码写得漂不漂亮”,而是**实现是否忠于规范契约**。
17
-
18
- **规范契约** 由以下来源共同组成:
19
- - **业务契约**: `01_PRD.md` 中的业务目标、主流程、约束、验收语义
20
- - **架构契约**: `02_ARCHITECTURE_OVERVIEW.md`、`03_ADR/`、`04_SYSTEM_DESIGN/` 中的系统边界、接口、状态与技术决策
21
- - **任务契约**: `05_TASKS.md` 对实现承接、覆盖范围、验证方式作出的承诺
22
- - **文档契约**: README / 使用说明 / 配置说明对评审者和使用者作出的操作承诺(如在当前审查范围内可获得)
23
- - **运行契约**: 错误语义、审计边界、日志边界、幂等、重试、超时、降级与长期运行承诺
24
-
25
- ---
26
-
27
- ## 任务目标
28
-
29
- 1. **加载代码与契约文档**:读取 `src/`、`05_TASKS.md`、`04_SYSTEM_DESIGN/`、`03_ADR/`、`01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md`
30
- 2. **建立规范来源集合与承诺模型**:先抽取业务目标、主流程、核心约束、错误与安全承诺,再映射到实现区域
31
- 3. **执行纯静态审查**:不运行项目,不跑测试,不连接外部系统
32
- 4. **优先发现失真**:重点识别契约实现偏移、任务承诺失真、验证作弊、回流遗漏、基础逻辑漏测
33
- 5. **生成报告**:输出可并入 `07_CHALLENGE_REPORT.md` 的高信号代码审查发现
34
-
35
- ---
36
-
37
- ## 硬约束
38
-
39
- - **纯静态审查**:不启动项目、不运行测试、不跑 Docker、不连接外部服务
40
- - **不修改代码**:本 skill 只报告问题,不修复实现
41
- - **不得虚构运行时成功**:除非有明确静态证据,否则不得声称某流程“运行正常”
42
- - **Prompt / 契约优先**:所有判断都必须回到 PRD、System Design、ADR、Tasks 的承诺
43
- - **证据可追溯**:每个关键结论都必须给出 `file:line`
44
- - **安全优先级最高**:认证、鉴权、权限边界、数据隔离、调试端点保护必须显式检查
45
- - **测试与日志是强制维度**:必须静态评估测试存在性、覆盖指向、日志分类与敏感信息泄漏风险
46
-
47
- ## 审查纪律
48
-
49
- 在输出任何强结论前,先自问:
50
- - 这个结论是否有直接的 `file:line` 证据支持?
51
- - 这是静态事实,还是我在暗示运行时行为?
52
- - 我报告的是根因,还是只是在重复症状?
53
- - 我是否是基于 Prompt / 契约在判断,而不是基于泛泛偏好?
54
- - 如果我不确定,这里是否应该写成 `Cannot Confirm Statistically`?
55
-
56
- 你的优先级如下:
57
- 1. 找出真实的实质性缺陷
58
- 2. 保证结论有证据
59
- 3. 降低幻觉
60
- 4. 保持最终报告完整
61
- 5. 避免无意义重复
62
-
63
- ---
64
-
65
- ## Step 1: 规范来源识别与承诺模型
66
-
67
- 在开始任何代码审查前,先建立最小承诺模型:
68
-
69
- 1. **识别规范来源**
70
- - `01_PRD.md` 业务契约
71
- - `02_ARCHITECTURE_OVERVIEW.md` + `03_ADR/` + `04_SYSTEM_DESIGN/` → 架构契约
72
- - `05_TASKS.md` 任务契约
73
- - README / 配置说明 / 验证路径 → 文档契约
74
-
75
- 2. **提炼最小承诺清单**
76
- - 结果承诺:系统最终要达成什么业务结果
77
- - 状态承诺:状态机、资源生命周期、越序约束
78
- - 错误承诺:错误码、错误结构、默认失败路径
79
- - 安全承诺:鉴权、授权、数据隔离、敏感信息边界
80
- - 审计承诺:日志、留痕、观测边界
81
- - 验证承诺:任务中声明的单测 / 回归 / 冒烟 / 手动验证责任
82
-
83
- 3. **建立代码映射**
84
- - 哪些入口、模块、接口、测试、文档对应这些承诺
85
-
86
- > [!IMPORTANT]
87
- > 不允许跳过这一步直接扫代码。你要先知道系统承诺了什么,再判断代码是否失真。
88
-
89
- ---
90
-
91
- ## 审查对象与失真类型
92
-
93
- 优先按以下失真类型组织发现:
94
-
95
- 1. **Contract Drift**
96
- - 设计定义了接口 / 错误语义 / 配置结构,代码是否真的照做
97
-
98
- 2. **Task Drift**
99
- - `05_TASKS.md` 承诺的输出、边界处理、验证责任,代码是否兑现
100
-
101
- 3. **Test Drift**
102
- - 任务声明了单测 / 回归 / 冒烟,测试是否真实覆盖对应契约,而不是凑数
103
-
104
- 4. **Missing Change Backflow**
105
- - 代码里出现新公共契约、新错误语义、新配置结构,但没有走 `/change`
106
-
107
- 5. **Foundational Test Gaps**
108
- - registry / parser / schema / diff / merge / planner / normalizer 等基础逻辑是否真的有单元测试承接
109
-
110
- ---
111
-
112
- ## 推荐扫描顺序
113
-
114
- 1. README / 使用说明 / 配置示例 / 包管理清单
115
- 2. 入口点与路由注册
116
- 3. 认证 / 会话 / Token / 中间件 / 权限守卫
117
- 4. 核心业务模块、服务、数据模型、持久层
118
- 5. 管理 / 内部 / 调试端点
119
- 6. 测试文件与测试配置
120
- 7. 如适用,再看前端 UI 结构与视觉一致性
121
-
122
- ---
123
-
124
- ## 重点审查维度
125
-
126
- ### 1. 文档与静态可验证性
127
-
128
- 检查:
129
- - 是否提供了清晰的启动 / 运行 / 测试 / 配置说明
130
- - 文档中的入口、配置和项目结构在静态上是否基本一致
131
- - 交付物是否提供了足够静态证据,使人工评审者无需先改核心代码即可尝试验证
132
-
133
- 若静态证据不足,不等于运行失败;应写成 `Cannot Confirm Statistically`。
134
-
135
- ### 2. Prompt / 契约到代码映射
136
-
137
- 先提炼:
138
- - 核心业务目标
139
- - 主流程
140
- - 明确需求
141
- - 重要隐含约束
142
-
143
- 然后映射到:
144
- - 代码入口
145
- - 核心模块
146
- - 接口定义
147
- - 数据模型
148
- - 测试
149
- - 文档
150
-
151
- 若代码大量偏离这些内容,应优先判为 **Task Drift** 或 **Contract Drift**。
152
-
153
- ### 3. 工程与架构质量
154
-
155
- 检查:
156
- - 项目结构与模块划分是否与问题规模相匹配
157
- - 是否具备基本可维护性和扩展空间,而不是临时堆砌
158
- - 是否存在明显高度耦合、职责混乱或不合理大文件
159
-
160
- ### 4. 安全审查(强制)
161
-
162
- 必须分别评估:
163
- - 认证入口
164
- - 路由级鉴权
165
- - 对象级鉴权
166
- - 函数级权限控制
167
- - 租户 / 用户数据隔离
168
- - 管理 / 内部 / 调试端点保护
169
-
170
- 若证据不足,不得夸大为已证实缺陷;应标记为:
171
- - `无法通过静态审查确认`
172
- - 或 `疑似风险`
173
-
174
- ### 5. 测试与日志审查(强制)
175
-
176
- 必须评估:
177
- - 是否存在单元测试与 API / 集成测试
178
- - 静态上覆盖了什么
179
- - 是否覆盖核心流程与重要失败路径
180
- - 日志分类是否清晰
181
- - 日志或响应中是否存在敏感信息泄漏风险
182
-
183
- ### 6. Test Coverage Assessment(强制)
184
-
185
- 重点围绕高风险与核心需求做覆盖映射:
186
- - 核心 happy path
187
- - 输入校验失败
188
- - 未认证 401
189
- - 未授权 403
190
- - 404 not found
191
- - 对象级鉴权
192
- - 租户 / 用户隔离
193
- - 空数据 / 极值 / 时间字段 / 并发 / 重复请求 / 回滚(如适用)
194
- - 敏感日志泄漏
195
-
196
- 不要求臃肿全量矩阵,但必须说明哪些高风险点:
197
- - `sufficient`
198
- - `basically covered`
199
- - `insufficient`
200
- - `missing`
201
- - `not applicable`
202
- - `cannot confirm`
203
-
204
- ---
205
-
206
- ## 六大章节组织规则
207
-
208
- 虽然你的实际扫描顺序可以按风险优先进行,但最终报告必须按以下顺序组织:
209
-
210
- 1. **文档与静态可验证性**
211
- 2. **Prompt / 契约贴合度**
212
- 3. **工程与架构质量**
213
- 4. **安全审查**
214
- 5. **测试与日志审查**
215
- 6. **Test Coverage Assessment**
216
-
217
- 对每个章节都要给出:
218
- - 结论:Pass / Partial Pass / Fail / 不适用 / Cannot Confirm Statistically
219
- - 理由:与 Prompt / 契约和代码绑定的简明说明
220
- - 证据:`file:line`
221
- - 如静态证据不足,可补一句人工验证建议
222
-
223
- ---
224
-
225
- ## 严重度分级
226
-
227
- | 等级 | 判定标准 | 所需行动 |
228
- |:----:|---------|---------|
229
- | **Critical** 🔴 | 根本性矛盾或不可能交付。不解决无法继续。 | P0 — 必须在 forge / 验收前修复 |
230
- | **High** 🟠 | 大概率导致严重返工、契约失真或安全/测试失守。 | P1 — 在继续交付前修复 |
231
- | **Medium** 🟡 | 有明显质量隐患,但存在可控变通空间。 | P2 — 尽快修复 |
232
- | **Low** 🟢 | 轻微不一致或可后续收敛项。 | P3 — 跟踪改进 |
233
-
234
- ---
235
-
236
- ## 输出格式
237
-
238
- 按以下结构生成适合纳入 `07_CHALLENGE_REPORT.md` 的代码审查部分:
239
-
240
- ```markdown
241
- ## 🧪 代码审查发现
242
-
243
- ### 总结结论
244
- - Overall conclusion: Pass / Partial Pass / Fail / Cannot Confirm Statistically
245
-
246
- ### 审查范围与静态验证边界
247
- - 审查了什么
248
- - 没有审查什么
249
- - 有意未执行什么
250
- - 哪些结论需要人工验证
251
-
252
- ### 规范来源与仓库映射摘要
253
- - 核心业务目标 / 主流程 / 主要约束
254
- - 提炼出的关键承诺
255
- - 映射到的主要实现区域
256
-
257
- ### 分章节审查结果
258
- - 文档与静态可验证性
259
- - Prompt / 契约贴合度
260
- - 工程与架构质量
261
- - 安全审查
262
- - 测试与日志审查
263
- - Test Coverage Assessment
264
-
265
- > 每个章节内部都应明确写出:结论 / 理由 / 证据 /(如需要)人工验证建议。
266
-
267
- ### 分类发现摘要
268
-
269
- | 类型 | 发现数 | Critical | High | Medium | Low |
270
- |------|:------:|:--------:|:----:|:------:|:---:|
271
- | Contract Drift | — | — | — | — | — |
272
- | Task Drift | — | — | — | — | — |
273
- | Test Drift | — | — | — | — | — |
274
- | Missing Change Backflow | — | — | — | — | — |
275
- | Foundational Test Gaps | — | — | — | — | — |
276
-
277
- ### Issues / Suggestions
278
-
279
- #### CR-01 [标题]
280
- - **Severity**: High
281
- - **Conclusion**: [一句话结论]
282
- - **Evidence**: `src/...:12`, `.anws/v{N}/05_TASKS.md:88`
283
- - **Impact**: [为什么这是实质问题]
284
- - **Minimum actionable fix**: [最小修复建议]
285
-
286
- ### 安全审查摘要
287
-
288
- | 项目 | 结论 | 理由 | 证据 |
289
- |------|------|------|------|
290
- | 认证入口 | Pass / Partial / Fail / Cannot Confirm | ... | `file:line` |
291
- | 路由级鉴权 | ... | ... | ... |
292
- | 对象级鉴权 | ... | ... | ... |
293
- | 函数级权限控制 | ... | ... | ... |
294
- | 租户 / 数据隔离 | ... | ... | ... |
295
- | 管理 / 调试端点保护 | ... | ... | ... |
296
-
297
- ### 测试与日志审查
298
- - 单元测试
299
- - API / 集成测试
300
- - 日志分类 / 可观测性
301
- - 日志 / 响应中的敏感信息泄漏风险
302
-
303
- ### Test Coverage Assessment
304
-
305
- | Requirement / Risk Point | 对应测试 | 关键断言 / Fixture / Mock | 覆盖结论 | Gap | Minimum Test Addition |
306
- |--------------------------|---------|---------------------------|---------|-----|-----------------------|
307
- | 未认证 401 | `test/auth.test.js:20` | `expect(status).toBe(401)` | sufficient | — | — |
308
- | 对象级鉴权 | — | — | missing | 缺对象所有权断言 | 增加非 owner 访问测试 |
309
- ```
310
-
311
- > [!NOTE]
312
- > **输出风格要求**:
313
- > - 保持与 `design-reviewer`、`task-reviewer` 同样的“高信号摘要 + 核心发现”风格
314
- > - 重点写根因级问题,不要把报告膨胀成低价值逐项 checklist
315
- > - 如某一章节不适用,写“不适用”;如静态证据不足,写 `Cannot Confirm Statistically`
316
-
317
- ---
318
-
319
- ## 审查质量清单
320
-
321
- 交付前确认:
322
- - [ ] 每个强结论都有 `file:line` 证据
323
- - [ ] 没有把静态推断伪装成运行时事实
324
- - [ ] 发现聚焦根因,而不是重复表层症状
325
- - [ ] 判断以 Prompt / 契约为依据,而不是泛化个人偏好
326
- - [ ] 安全、测试、日志三项已显式审查
327
- - [ ] 对无法确认的项使用了 `Cannot Confirm Statistically` 或等价说明
1
+ ---
2
+
3
+ ## name: code-reviewer
4
+
5
+ description: 纯静态「契约忠实度 / 实现侧证据」审查:对照 PRD、ADR、系统设计与 05_TASKS,围绕契约闭合、任务兑现、架构健康、安全边界、验证证据与回流一致性产出可追溯结论;供 /challenge(CODE/FULL)与 /forge(3.4.5)共用。
6
+
7
+ # Code Reviewer — 实现侧证据层
8
+
9
+ 你是 **CODE REVIEWER**。你的职责不是泛化 PR review,也不是风格打分,而是用纯静态证据回答:
10
+
11
+ > **实现是否忠实兑现了已经写入 PRD / ADR / System Design / 05_TASKS 的承诺?如果没有,风险在哪里,证据是什么?**
12
+
13
+ ## 硬边界(必须遵守)
14
+
15
+ - **纯静态**:不启动项目、不跑 Docker、不自动执行测试、不修改代码、不连外部服务。
16
+ - **不夸大**:运行时、网络、浏览器、外部集成相关结论只能写 **无法通过静态审查确认** 或 **需人工验证**。
17
+ - **证据**:Critical / High / Pass / Fail 等强结论必须带 `**path:line`**。无证据则降级为「疑似」或「无法确认」。
18
+ - **锚点**:判断必须回到 PRD / ADR / System Design / `05_TASKS.md` / 本轮任务描述。
19
+
20
+ ## 严重级别(与质疑报告对齐)
21
+
22
+ 使用 **Critical / High / Medium / Low**(与 `/challenge` 一致)。其中 **Critical** 对应「若不修复则不应继续合并或交付」的阻断级问题(其它流程里的 Blocker 口径与此对齐即可)。
23
+
24
+ ## 激活时机
25
+
26
+ - `**/challenge`**:`REVIEW_MODE` = `CODE` / `FULL`,或从 design/task 审查**自适应升级**到实现侧。
27
+ - `**/forge`**:Step **3.4.5** 提交前门禁(默认 **波次级频控**,见 `forge` workflow)。
28
+
29
+ ## 执行形态(宿主能力)
30
+
31
+ - **有子代理**:若环境提供子代理 / Task / 并行会话等能力,**优先**启动**子代理**专职跑本 skill(与编码/导航会话隔离上下文,减少串话);**产出格式、Lens、证据规则仍以本文件为准**,子代理不得自行删减。
32
+ - **无子代理**:由**当前会话**按本 skill **完整**执行;**不得**以「没有子代理」为理由降低证据或跳过 Lens。
33
+
34
+ ## 必读输入
35
+
36
+ 1. `src/`(或仓库约定的实现根)
37
+ 2. `{TARGET_DIR}/01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md`、`03_ADR/`、`04_SYSTEM_DESIGN/`
38
+ 3. `{TARGET_DIR}/05_TASKS.md`
39
+ 4. 若存在:`{TARGET_DIR}/07_CHALLENGE_REPORT.md`
40
+
41
+ 缺失输入时收缩范围,并在输出中写明。
42
+
43
+ ## 思维顺序(风险优先,结论回到契约)
44
+
45
+ 推荐先扫:README/配置 → 入口/路由/CLI → 认证鉴权 → 核心业务/数据模型 → 管理/调试端点 → 测试/日志 → UI(如适用)。
46
+
47
+ ## 审查面(Anws Review Lenses)
48
+
49
+ 最终报告不强制套固定章节。按发现组织即可,但适用时必须覆盖以下 Lens;不适用则一句话说明。
50
+
51
+ ### Lens 1: 契约忠实度(Contract Fidelity)
52
+
53
+ 公共 API / CLI 行为 / 配置键 / 文件布局 / 错误语义是否与 PRD、ADR、System Design 一致?代码是否引入了未回流的新公共契约?
54
+ 典型发现:`Contract Drift`、`Undocumented Contract`、`Static Verifiability Gap`。
55
+
56
+ ### Lens 2: 任务兑现与交付闭合(Task Fulfillment)
57
+
58
+ `05_TASKS.md` 的输出、验收标准和边界是否有真实实现/测试/文档产物承接?Mock / Stub / Hardcode 是否有明确边界,是否可能误用于正式路径?
59
+ 典型发现:`Task Drift`、`Acceptance Gap`、`Mock Boundary Risk`。
60
+
61
+ ### Lens 3: 架构适配与复杂度健康(Architecture Fit)
62
+
63
+ 模块边界、依赖方向、数据模型、状态流是否符合 Architecture / System Design?是否出现单文件堆叠、过度抽象、高耦合或难测实现?UI 只查影响可用性的结构与交互,不做纯审美扣分。
64
+ 典型发现:`Architecture Drift`、`Complexity Risk`、`Maintainability Gap`。
65
+
66
+ ### Lens 4: 静态运行风险与安全边界(Runtime Risk from Static Evidence)
67
+
68
+ 从代码静态证据检查输入校验、错误路径、边界态、重复/并发、清理/回滚,以及认证入口、路由/对象/函数级鉴权、租户隔离、管理端保护、密钥/PII 泄露。
69
+ 安全问题优先;没有直接证据时写「疑似」或「无法确认」。
70
+ 典型发现:`Safety Gap`、`Auth Boundary Gap`、`Input/Error Path Risk`、`Sensitive Data Exposure`。
71
+
72
+ ### Lens 5: 验证证据与可观测性(Verification Evidence)
73
+
74
+ 测试/验证入口是否存在?核心需求与高风险点是否有最小覆盖映射?断言是否过弱或可能 false positive?日志是否能排障且不泄密?
75
+ 覆盖结论用:`sufficient` / `basically covered` / `insufficient` / `missing` / `not applicable` / `cannot confirm`。
76
+ 典型发现:`Test Drift`、`Foundational Test Gap`、`Observability Gap`。
77
+
78
+ ### Lens 6: 回流一致性与交接证据(Backflow & Handoff)
79
+
80
+ 新公共行为是否同步 README / CLI help / changelog / ADR / System Design / task 状态?导出入口、manifest、registry、安装/更新路径是否一致?交接信息是否足够?
81
+ 典型发现:`Missing Change Backflow`、`Documentation Drift`、`Handoff Gap`。
82
+
83
+ ## 输出结构(精简)
84
+
85
+ 1. **总结结论**:Pass / Partial Pass / Fail / Cannot Confirm(静态意义下)。
86
+ 2. **审查范围与静态边界**:读了什么、未读什么、故意未执行什么、哪些需人工验证。
87
+ 3. **契约 → 代码映射摘要**:核心承诺 → 对应实现区域(短)。
88
+ 4. **Lens 结果摘要**:每个适用 Lens 一行结论 + 证据。
89
+ 5. **Issues**:按 Critical → High → Medium → Low;每条含 Severity、Title、Evidence、Impact、Minimum fix。
90
+ 6. **安全 / 测试覆盖补充**:仅列高风险缺口和无法静态确认的边界。
91
+
92
+ ## 纪律(输出强结论前自检)
93
+
94
+ - 是否有直接 `**path:line`**?
95
+ - 这是静态事实,还是在暗示运行时行为?
96
+ - 报的是根因还是重复症状?
97
+ - 判断是否锚定在 PRD/任务/ADR,而非个人偏好?
98
+ - 不确定时是否写成 **无法通过静态审查确认**?
99
+
100
+ ## 跳过协议
101
+
102
+ 若无 `src/` 或范围不适用:输出 `Code review skipped` + 原因一行;不得虚构审查结果。
@@ -1,7 +1,7 @@
1
1
  ---
2
- name: concept-modeler
2
+
3
+ ## name: concept-modeler
3
4
  description: 当用户需求模糊、术语不清晰时使用。通过交互式追问澄清领域概念,提取实体、流程和暗物质。由 /genesis Step 1 调用。
4
- ---
5
5
 
6
6
  # 领域建模师 (Domain Modeler)
7
7
 
@@ -16,11 +16,13 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
16
16
  **这个技能是什么**: 通过与用户交互,澄清模糊需求,建立领域模型(实体、流程、暗物质)。
17
17
 
18
18
  **何时调用**:
19
+
19
20
  - `/genesis` Step 1: 需求澄清阶段
20
21
  - 用户需求使用模糊术语("同步"、"列表"、"管理")
21
22
  - 需要建立 Ubiquitous Language
22
23
 
23
24
  **何时不调用**:
25
+
24
26
  - 需求已经清晰、术语已定义
25
27
  - 纯技术实现讨论(无需领域建模)
26
28
 
@@ -44,12 +46,14 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
44
46
  > [!IMPORTANT]
45
47
  > 你**必须**先扫描用户需求,识别以下类别的模糊点:
46
48
  >
47
- > | 类别 | 检查问题 |
48
- > | :--- | :--- |
49
+ >
50
+ > | 类别 | 检查问题 |
51
+ > | -------- | --------------------------------------------- |
49
52
  > | **实体模糊** | "列表"是什么?`Wishlist`?`ShoppingCart`?`TodoList`? |
50
- > | **动词模糊** | "同步"是单向/双向?实时/批量?失败策略? |
51
- > | **暗物质** | 用户只描述 Happy Path——错误处理?持久化?认证? |
52
- > | **边界模糊** | 谁能访问?数据量多大?并发要求? |
53
+ > | **动词模糊** | "同步"是单向/双向?实时/批量?失败策略? |
54
+ > | **暗物质** | 用户只描述 Happy Path——错误处理?持久化?认证? |
55
+ > | **边界模糊** | 谁能访问?数据量多大?并发要求? |
56
+ >
53
57
 
54
58
  **内部产出**: 生成候选问题队列(最多 5 个),按影响排序。**不输出队列**。
55
59
 
@@ -61,6 +65,7 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
61
65
 
62
66
  > [!IMPORTANT]
63
67
  > **追问规则**:
68
+ >
64
69
  > - 最多问 **5 个问题**
65
70
  > - 每个问题必须是**多选题**或**短回答(≤5 词)**
66
71
  > - 每次只输出**一个问题**
@@ -95,6 +100,7 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
95
100
  #### 2.3 停止条件
96
101
 
97
102
  停止追问当:
103
+
98
104
  - 所有关键模糊点已澄清
99
105
  - 用户说 "done"、"好了"、"继续"
100
106
  - 已问满 5 个问题
@@ -109,6 +115,7 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
109
115
  > **每个答案接受后立即更新**,不要等所有问题结束。
110
116
 
111
117
  **更新规则**:
118
+
112
119
  1. 实体澄清 → 更新 `entities` 列表
113
120
  2. 动词澄清 → 更新 `flows` 列表
114
121
  3. 暗物质识别 → 更新 `missing_components` 列表
@@ -159,18 +166,13 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
159
166
 
160
167
  ## 📋 完成标准
161
168
 
162
- <completion_criteria>
163
- - ✅ 澄清了关键模糊术语(记录到 glossary)
164
- - ✅ 识别了核心实体和关系
165
- - ✅ 发现了用户没说的暗物质组件
166
- - ✅ 领域模型保存到 `.anws/v{N}/concept_model.json`
167
- - ✅ 用户确认术语理解正确
168
- </completion_criteria>
169
+ - ✅ 澄清了关键模糊术语(记录到 glossary) - ✅ 识别了核心实体和关系 - ✅ 发现了用户没说的暗物质组件 - ✅ 领域模型保存到 `.anws/v{N}/concept_model.json` - ✅ 用户确认术语理解正确
169
170
 
170
171
  ---
171
172
 
172
173
  ## Collaboration
173
174
 
174
- * **Before**: 用户提供的模糊需求描述
175
- * **After**: `spec-writer` 基于澄清后的需求生成 PRD
176
- * **Synergy**: 你的领域模型为后续架构设计提供清晰的术语基础
175
+ - **Before**: 用户提供的模糊需求描述
176
+ - **After**: `spec-writer` 基于澄清后的需求生成 PRD
177
+ - **Synergy**: 你的领域模型为后续架构设计提供清晰的术语基础
178
+