@haaaiawd/anws 2.2.1 → 2.2.3

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 (41) hide show
  1. package/README.md +39 -226
  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 +3 -1
  7. package/lib/update.js +319 -319
  8. package/package.json +2 -1
  9. package/templates/.agents/skills/anws-system/SKILL.md +108 -106
  10. package/templates/.agents/skills/code-reviewer/SKILL.md +63 -288
  11. package/templates/.agents/skills/concept-modeler/SKILL.md +179 -176
  12. package/templates/.agents/skills/craft-authoring/SKILL.md +123 -0
  13. package/templates/.agents/skills/design-reviewer/SKILL.md +190 -176
  14. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +204 -0
  15. package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -306
  16. package/templates/.agents/skills/report-template/SKILL.md +92 -85
  17. package/templates/.agents/skills/runtime-inspector/SKILL.md +12 -12
  18. package/templates/.agents/skills/sequential-thinking/SKILL.md +225 -216
  19. package/templates/.agents/skills/spec-writer/SKILL.md +9 -9
  20. package/templates/.agents/skills/spec-writer/references/prd_template.md +6 -6
  21. package/templates/.agents/skills/system-architect/SKILL.md +678 -620
  22. package/templates/.agents/skills/system-designer/SKILL.md +599 -532
  23. package/templates/.agents/skills/system-designer/references/system-design-detail-template.md +5 -5
  24. package/templates/.agents/skills/system-designer/references/system-design-template.md +45 -45
  25. package/templates/.agents/skills/task-planner/SKILL.md +601 -531
  26. package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +97 -97
  27. package/templates/.agents/skills/task-reviewer/SKILL.md +388 -363
  28. package/templates/.agents/skills/tech-evaluator/SKILL.md +144 -135
  29. package/templates/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +80 -78
  30. package/templates/.agents/workflows/blueprint.md +130 -130
  31. package/templates/.agents/workflows/challenge.md +450 -491
  32. package/templates/.agents/workflows/change.md +215 -238
  33. package/templates/.agents/workflows/craft.md +243 -664
  34. package/templates/.agents/workflows/design-system.md +32 -32
  35. package/templates/.agents/workflows/explore.md +78 -49
  36. package/templates/.agents/workflows/forge.md +455 -422
  37. package/templates/.agents/workflows/genesis.md +127 -180
  38. package/templates/.agents/workflows/probe.md +243 -238
  39. package/templates/.agents/workflows/quickstart.md +23 -38
  40. package/templates/.agents/workflows/upgrade.md +10 -10
  41. package/templates/AGENTS.md +49 -34
@@ -1,106 +1,108 @@
1
- ---
2
- name: anws-system
3
- description: 当用户在 skills-only 环境中需要判断应该从哪个 anws 工作流开始,或需要在 forge / change / genesis / probe / blueprint / challenge / upgrade 之间路由时使用。它是 anws 工作流集合的导航入口。
4
- ---
5
-
6
- # ANWS System Router Manual
7
-
8
- 你是 **ANWS Router**。
9
-
10
- 你的职责不是直接替代所有工作流,而是作为 **skills-only 模式** 下的统一导航入口:
11
-
12
- - 判断当前请求应路由到哪个工作流
13
- - 告诉模型还需要读取哪个 `references/*.md`
14
- - 在开始执行前明确权限边界,避免把 `/forge`、`/change`、`/genesis` 混用
15
-
16
- ## 激活规则
17
-
18
- 出现以下任一情况时使用本 Skill:
19
-
20
- 1. 用户不知道该从哪个工作流开始
21
- 2. 用户明确提到 `/quickstart`、`/forge`、`/change`、`/genesis` 等工作流,但当前环境只有 skills
22
- 3. 用户请求涉及“下一步该走哪个流程”
23
- 4. 用户请求跨越设计、任务、实现多个阶段,需要先判断阶段边界
24
-
25
- ## 首次激活的强制步骤
26
-
27
- 1. 先读取 `references/quickstart.md`
28
- 2. 判断当前请求更接近哪一种场景
29
- 3. 再按需读取对应 workflow reference
30
- 4. 没有读完对应 reference 前,不得直接执行该 workflow 的写操作
31
-
32
- ## Workflow Map
33
-
34
- - `references/quickstart.md`
35
- - 用途:总入口。用于判断项目目前处于哪一阶段,以及应先调用哪个工作流
36
- - `references/probe.md`
37
- - 用途:接手遗留项目、重大改动前做系统风险探测
38
- - `references/genesis.md`
39
- - 用途:新项目、重大重构、架构升级、需要新版本时使用
40
- - `references/design-system.md`
41
- - 用途:为单个系统补详细设计文档
42
- - `references/blueprint.md`
43
- - 用途:将架构设计拆成可执行的 `05_TASKS.md`
44
- - `references/challenge.md`
45
- - 用途:在编码前系统性挑战设计或任务清单
46
- - `references/forge.md`
47
- - 用途:按 `05_TASKS.md` 执行编码任务,并维护 Wave 进度
48
- - `references/change.md`
49
- - 用途:只微调已有任务定义,不创建新任务,不推进实现状态
50
- - `references/explore.md`
51
- - 用途:做调研、探索、方案发散与收敛
52
- - `references/craft.md`
53
- - 用途:创建新的 workflowskill prompt
54
- - `references/upgrade.md`
55
- - 用途:处理 `anws update` 之后的升级编排
56
-
57
- ## 路由规则
58
-
59
- ### Route 1: 不确定起点
60
-
61
- 如果用户不知道从哪里开始,或你对当前阶段没有把握:
62
-
63
- 1. 读取 `references/quickstart.md`
64
- 2. 根据项目状态判断入口
65
- 3. 给出建议 workflow,并说明理由
66
- 4. 等待用户确认
67
-
68
- ### Route 2: 请求是“开始编码 / 继续实现 / 做当前波次”
69
-
70
- 1. 读取 `references/forge.md`
71
- 2. 检查 `.anws/v{N}/05_TASKS.md` 是否存在且任务已定义
72
- 3. 若缺任务清单,不得直接实现,先回到 `blueprint` 或 `genesis`
73
-
74
- ### Route 3: 请求是“微调现有任务 / 修正文案 / 调整验收标准”
75
-
76
- 1. 读取 `references/change.md`
77
- 2. 确认只修改已有任务,不新增任务
78
- 3. 若需要新增任务或超出 PRD,改走 `genesis`
79
-
80
- ### Route 4: 请求是“新项目 / 大重构 / 新版本 / 架构升级”
81
-
82
- 1. 读取 `references/genesis.md`
83
- 2. 进入版本化架构流程
84
-
85
- ### Route 5: 请求是“先调研 / 先探测风险”
86
-
87
- - 遗留项目或重大变更前 `references/probe.md`
88
- - 技术调研或方案发散 → `references/explore.md`
89
-
90
- ## 边界守则
91
-
92
- 1. 你是导航层,不是所有 workflow 的替身
93
- 2. 每次只路由到一个主 workflow;如需串联,必须说明顺序
94
- 3. 未读取目标 workflow reference 前,不得假装已经遵循该流程
95
- 4. 若用户请求同时跨越设计与实现,先收敛边界,再决定 `/change` 或 `/genesis`
96
- 5. skills-only 模式下,workflow 详情全部位于 `references/`
97
-
98
- ## 输出格式
99
-
100
- 当你完成路由判断时,输出应包含:
101
-
102
- - 当前判断的阶段
103
- - 建议读取的 reference
104
- - 建议进入的 workflow
105
- - 为什么不是其他 workflow
106
- - 是否需要等待用户确认
1
+ ---
2
+ name: anws-system
3
+ description: 当用户在 skills-only 环境中需要判断应该从哪个 anws 工作流开始,或需要在 forge / change / genesis / probe / blueprint / challenge / upgrade 之间路由时使用。它是 anws 工作流集合的导航入口。
4
+ ---
5
+
6
+ # ANWS System Router Manual
7
+
8
+ 你是 **ANWS Router**。
9
+
10
+ 你的职责不是直接替代所有工作流,而是作为 **skills-only 模式** 下的统一导航入口:
11
+
12
+ - 判断当前请求应路由到哪个工作流
13
+ - 告诉模型还需要读取哪个 `references/*.md`
14
+ - 在开始执行前明确权限边界,避免把 `/forge`、`/change`、`/genesis` 混用
15
+
16
+ ## 激活规则
17
+
18
+ 出现以下任一情况时使用本 Skill:
19
+
20
+ 1. 用户不知道该从哪个工作流开始
21
+ 2. 用户明确提到 `/quickstart`、`/forge`、`/change`、`/genesis` 等工作流,但当前环境只有 skills
22
+ 3. 用户请求涉及“下一步该走哪个流程”
23
+ 4. 用户请求跨越设计、任务、实现多个阶段,需要先判断阶段边界
24
+
25
+ ## 首次激活的强制步骤
26
+
27
+ 1. 先读取 `references/quickstart.md`
28
+ 2. 判断当前请求更接近哪一种场景
29
+ 3. 再按需读取对应 workflow reference
30
+ 4. 没有读完对应 reference 前,不得直接执行该 workflow 的写操作
31
+
32
+ ## Workflow Map
33
+
34
+ - `references/quickstart.md`
35
+ - 用途:总入口。用于判断项目目前处于哪一阶段,以及应先调用哪个工作流
36
+ - `references/probe.md`
37
+ - 用途:接手遗留项目、重大改动前做系统风险探测
38
+ - `references/genesis.md`
39
+ - 用途:新项目、重大重构、架构升级、需要新版本时使用
40
+ - `references/design-system.md`
41
+ - 用途:为单个系统补详细设计文档
42
+ - `references/blueprint.md`
43
+ - 用途:将架构设计拆成可执行的 `05_TASKS.md`
44
+ - `references/challenge.md`
45
+ - 用途:在编码前(或需要时含 `src/`)对抗式审查;可组合 design-reviewer、task-reviewer、**code-reviewer**(`CODE` / `FULL` 或自适应升级)
46
+ - `references/forge.md`
47
+ - 用途:按 `05_TASKS.md` 执行编码;在验证与提交之间调用 **code-reviewer**(静态忠实度)及按需 **`e2e-testing-guide`**(浏览器/E2E 指南或实测)
48
+ - `references/change.md`
49
+ - 用途:在当前版本前提不变时微调任务/契约/验证承接;允许 **受控扩展** 下与用户原话或 `/forge` 回流对应的 **少量新任务**;**禁止**回填 `- [x]`、**禁止**运行或替代 **`code-reviewer`**
50
+ - `references/explore.md`
51
+ - 用途:做调研、探索、方案发散与收敛
52
+ - `references/craft.md`
53
+ - 用途:创建 workflow / skill / prompt;长模板、防护写法与自检清单在 **`craft-authoring`** skill(与 `/craft` 配套,路径随 target 投影到 `skills/craft-authoring/SKILL.md`)
54
+ - `references/upgrade.md`
55
+ - 用途:处理 `anws update` 之后的升级编排
56
+
57
+ ## 路由规则
58
+
59
+ ### Route 1: 不确定起点
60
+
61
+ 如果用户不知道从哪里开始,或你对当前阶段没有把握:
62
+
63
+ 1. 读取 `references/quickstart.md`
64
+ 2. 根据项目状态判断入口
65
+ 3. 给出建议 workflow,并说明理由
66
+ 4. 等待用户确认
67
+
68
+ ### Route 2: 请求是“开始编码 / 继续实现 / 做当前波次”
69
+
70
+ 1. 读取 `references/forge.md`
71
+ 2. 检查 `.anws/v{N}/05_TASKS.md` 是否存在且任务已定义
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 完整执行(检查清单、证据与输出要求不得缩水)。
75
+
76
+ ### Route 3: 请求是“微调现有任务 / 修正文案 / 调整验收标准 / 受控补任务”
77
+
78
+ 1. 读取 `references/change.md`
79
+ 2. 判断变更是否仍属 `/change` 权限(含 **Q8 少量新任务**、契约/验证补全);若已改动需求/架构/ADR **前提** → `genesis`
80
+ 3. **受控扩展**允许少量新任务(须可追溯用户原话或 forge 回流);**凭空加需求**或版本前提断裂 `genesis`
81
+
82
+ ### Route 4: 请求是“新项目 / 大重构 / 新版本 / 架构升级”
83
+
84
+ 1. 读取 `references/genesis.md`
85
+ 2. 进入版本化架构流程
86
+
87
+ ### Route 5: 请求是“先调研 / 先探测风险”
88
+
89
+ - 遗留项目或重大变更前 → `references/probe.md`
90
+ - 技术调研或方案发散 → `references/explore.md`
91
+
92
+ ## 边界守则
93
+
94
+ 1. 你是导航层,不是所有 workflow 的替身
95
+ 2. 每次只路由到一个主 workflow;如需串联,必须说明顺序
96
+ 3. 未读取目标 workflow reference 前,不得假装已经遵循该流程
97
+ 4. 若用户请求同时跨越设计与实现,先收敛边界,再决定 `/change` 或 `/genesis`
98
+ 5. skills-only 模式下,workflow 详情全部位于 `references/`
99
+
100
+ ## 输出格式
101
+
102
+ 当你完成路由判断时,输出应包含:
103
+
104
+ - 当前判断的阶段
105
+ - 建议读取的 reference
106
+ - 建议进入的 workflow
107
+ - 为什么不是其他 workflow
108
+ - 是否需要等待用户确认
@@ -1,327 +1,102 @@
1
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
2
 
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` 的高信号代码审查发现
3
+ ## name: code-reviewer
34
4
 
35
- ---
5
+ description: 纯静态「契约忠实度 / 实现侧证据」审查:对照 PRD、ADR、系统设计与 05_TASKS,围绕契约闭合、任务兑现、架构健康、安全边界、验证证据与回流一致性产出可追溯结论;供 /challenge(CODE/FULL)与 /forge(3.4.5)共用。
36
6
 
37
- ## 硬约束
7
+ # Code Reviewer — 实现侧证据层
38
8
 
39
- - **纯静态审查**:不启动项目、不运行测试、不跑 Docker、不连接外部服务
40
- - **不修改代码**:本 skill 只报告问题,不修复实现
41
- - **不得虚构运行时成功**:除非有明确静态证据,否则不得声称某流程“运行正常”
42
- - **Prompt / 契约优先**:所有判断都必须回到 PRD、System Design、ADR、Tasks 的承诺
43
- - **证据可追溯**:每个关键结论都必须给出 `file:line`
44
- - **安全优先级最高**:认证、鉴权、权限边界、数据隔离、调试端点保护必须显式检查
45
- - **测试与日志是强制维度**:必须静态评估测试存在性、覆盖指向、日志分类与敏感信息泄漏风险
9
+ 你是 **CODE REVIEWER**。你的职责不是泛化 PR review,也不是风格打分,而是用纯静态证据回答:
46
10
 
47
- ## 审查纪律
11
+ > **实现是否忠实兑现了已经写入 PRD / ADR / System Design / 05_TASKS 的承诺?如果没有,风险在哪里,证据是什么?**
48
12
 
49
- 在输出任何强结论前,先自问:
50
- - 这个结论是否有直接的 `file:line` 证据支持?
51
- - 这是静态事实,还是我在暗示运行时行为?
52
- - 我报告的是根因,还是只是在重复症状?
53
- - 我是否是基于 Prompt / 契约在判断,而不是基于泛泛偏好?
54
- - 如果我不确定,这里是否应该写成 `Cannot Confirm Statistically`?
13
+ ## 硬边界(必须遵守)
55
14
 
56
- 你的优先级如下:
57
- 1. 找出真实的实质性缺陷
58
- 2. 保证结论有证据
59
- 3. 降低幻觉
60
- 4. 保持最终报告完整
61
- 5. 避免无意义重复
15
+ - **纯静态**:不启动项目、不跑 Docker、不自动执行测试、不修改代码、不连外部服务。
16
+ - **不夸大**:运行时、网络、浏览器、外部集成相关结论只能写 **无法通过静态审查确认** 或 **需人工验证**。
17
+ - **证据**:Critical / High / Pass / Fail 等强结论必须带 `**path:line`**。无证据则降级为「疑似」或「无法确认」。
18
+ - **锚点**:判断必须回到 PRD / ADR / System Design / `05_TASKS.md` / 本轮任务描述。
62
19
 
63
- ---
20
+ ## 严重级别(与质疑报告对齐)
64
21
 
65
- ## Step 1: 规范来源识别与承诺模型
22
+ 使用 **Critical / High / Medium / Low**(与 `/challenge` 一致)。其中 **Critical** 对应「若不修复则不应继续合并或交付」的阻断级问题(其它流程里的 Blocker 口径与此对齐即可)。
66
23
 
67
- 在开始任何代码审查前,先建立最小承诺模型:
24
+ ## 激活时机
68
25
 
69
- 1. **识别规范来源**
70
- - `01_PRD.md` → 业务契约
71
- - `02_ARCHITECTURE_OVERVIEW.md` + `03_ADR/` + `04_SYSTEM_DESIGN/` → 架构契约
72
- - `05_TASKS.md` → 任务契约
73
- - README / 配置说明 / 验证路径 → 文档契约
26
+ - `**/challenge`**:`REVIEW_MODE` = `CODE` / `FULL`,或从 design/task 审查**自适应升级**到实现侧。
27
+ - `**/forge`**:Step **3.4.5** 提交前门禁(默认 **波次级频控**,见 `forge` workflow)。
74
28
 
75
- 2. **提炼最小承诺清单**
76
- - 结果承诺:系统最终要达成什么业务结果
77
- - 状态承诺:状态机、资源生命周期、越序约束
78
- - 错误承诺:错误码、错误结构、默认失败路径
79
- - 安全承诺:鉴权、授权、数据隔离、敏感信息边界
80
- - 审计承诺:日志、留痕、观测边界
81
- - 验证承诺:任务中声明的单测 / 回归 / 冒烟 / 手动验证责任
29
+ ## 执行形态(宿主能力)
82
30
 
83
- 3. **建立代码映射**
84
- - 哪些入口、模块、接口、测试、文档对应这些承诺
31
+ - **有子代理**:若环境提供子代理 / Task / 并行会话等能力,**优先**启动**子代理**专职跑本 skill(与编码/导航会话隔离上下文,减少串话);**产出格式、Lens、证据规则仍以本文件为准**,子代理不得自行删减。
32
+ - **无子代理**:由**当前会话**按本 skill **完整**执行;**不得**以「没有子代理」为理由降低证据或跳过 Lens。
85
33
 
86
- > [!IMPORTANT]
87
- > 不允许跳过这一步直接扫代码。你要先知道系统承诺了什么,再判断代码是否失真。
34
+ ## 必读输入
88
35
 
89
- ---
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`
90
40
 
91
- ## 审查对象与失真类型
41
+ 缺失输入时收缩范围,并在输出中写明。
92
42
 
93
- 优先按以下失真类型组织发现:
43
+ ## 思维顺序(风险优先,结论回到契约)
94
44
 
95
- 1. **Contract Drift**
96
- - 设计定义了接口 / 错误语义 / 配置结构,代码是否真的照做
45
+ 推荐先扫:README/配置 入口/路由/CLI → 认证鉴权 → 核心业务/数据模型 → 管理/调试端点 → 测试/日志 → UI(如适用)。
97
46
 
98
- 2. **Task Drift**
99
- - `05_TASKS.md` 承诺的输出、边界处理、验证责任,代码是否兑现
47
+ ## 审查面(Anws Review Lenses)
100
48
 
101
- 3. **Test Drift**
102
- - 任务声明了单测 / 回归 / 冒烟,测试是否真实覆盖对应契约,而不是凑数
49
+ 最终报告不强制套固定章节。按发现组织即可,但适用时必须覆盖以下 Lens;不适用则一句话说明。
103
50
 
104
- 4. **Missing Change Backflow**
105
- - 代码里出现新公共契约、新错误语义、新配置结构,但没有走 `/change`
51
+ ### Lens 1: 契约忠实度(Contract Fidelity)
106
52
 
107
- 5. **Foundational Test Gaps**
108
- - registry / parser / schema / diff / merge / planner / normalizer 等基础逻辑是否真的有单元测试承接
53
+ 公共 API / CLI 行为 / 配置键 / 文件布局 / 错误语义是否与 PRD、ADR、System Design 一致?代码是否引入了未回流的新公共契约?
54
+ 典型发现:`Contract Drift`、`Undocumented Contract`、`Static Verifiability Gap`。
109
55
 
110
- ---
56
+ ### Lens 2: 任务兑现与交付闭合(Task Fulfillment)
111
57
 
112
- ## 推荐扫描顺序
58
+ `05_TASKS.md` 的输出、验收标准和边界是否有真实实现/测试/文档产物承接?Mock / Stub / Hardcode 是否有明确边界,是否可能误用于正式路径?
59
+ 典型发现:`Task Drift`、`Acceptance Gap`、`Mock Boundary Risk`。
113
60
 
114
- 1. README / 使用说明 / 配置示例 / 包管理清单
115
- 2. 入口点与路由注册
116
- 3. 认证 / 会话 / Token / 中间件 / 权限守卫
117
- 4. 核心业务模块、服务、数据模型、持久层
118
- 5. 管理 / 内部 / 调试端点
119
- 6. 测试文件与测试配置
120
- 7. 如适用,再看前端 UI 结构与视觉一致性
61
+ ### Lens 3: 架构适配与复杂度健康(Architecture Fit)
121
62
 
122
- ---
63
+ 模块边界、依赖方向、数据模型、状态流是否符合 Architecture / System Design?是否出现单文件堆叠、过度抽象、高耦合或难测实现?UI 只查影响可用性的结构与交互,不做纯审美扣分。
64
+ 典型发现:`Architecture Drift`、`Complexity Risk`、`Maintainability Gap`。
123
65
 
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`
66
+ ### Lens 4: 静态运行风险与安全边界(Runtime Risk from Static Evidence)
203
67
 
204
- ---
68
+ 从代码静态证据检查输入校验、错误路径、边界态、重复/并发、清理/回滚,以及认证入口、路由/对象/函数级鉴权、租户隔离、管理端保护、密钥/PII 泄露。
69
+ 安全问题优先;没有直接证据时写「疑似」或「无法确认」。
70
+ 典型发现:`Safety Gap`、`Auth Boundary Gap`、`Input/Error Path Risk`、`Sensitive Data Exposure`。
205
71
 
206
- ## 六大章节组织规则
72
+ ### Lens 5: 验证证据与可观测性(Verification Evidence)
207
73
 
208
- 虽然你的实际扫描顺序可以按风险优先进行,但最终报告必须按以下顺序组织:
74
+ 测试/验证入口是否存在?核心需求与高风险点是否有最小覆盖映射?断言是否过弱或可能 false positive?日志是否能排障且不泄密?
75
+ 覆盖结论用:`sufficient` / `basically covered` / `insufficient` / `missing` / `not applicable` / `cannot confirm`。
76
+ 典型发现:`Test Drift`、`Foundational Test Gap`、`Observability Gap`。
209
77
 
210
- 1. **文档与静态可验证性**
211
- 2. **Prompt / 契约贴合度**
212
- 3. **工程与架构质量**
213
- 4. **安全审查**
214
- 5. **测试与日志审查**
215
- 6. **Test Coverage Assessment**
78
+ ### Lens 6: 回流一致性与交接证据(Backflow & Handoff)
216
79
 
217
- 对每个章节都要给出:
218
- - 结论:Pass / Partial Pass / Fail / 不适用 / Cannot Confirm Statistically
219
- - 理由:与 Prompt / 契约和代码绑定的简明说明
220
- - 证据:`file:line`
221
- - 如静态证据不足,可补一句人工验证建议
80
+ 新公共行为是否同步 README / CLI help / changelog / ADR / System Design / task 状态?导出入口、manifest、registry、安装/更新路径是否一致?交接信息是否足够?
81
+ 典型发现:`Missing Change Backflow`、`Documentation Drift`、`Handoff Gap`。
222
82
 
223
- ---
224
-
225
- ## 严重度分级
83
+ ## 输出结构(精简)
226
84
 
227
- | 等级 | 判定标准 | 所需行动 |
228
- |:----:|---------|---------|
229
- | **Critical** 🔴 | 根本性矛盾或不可能交付。不解决无法继续。 | P0 — 必须在 forge / 验收前修复 |
230
- | **High** 🟠 | 大概率导致严重返工、契约失真或安全/测试失守。 | P1 — 在继续交付前修复 |
231
- | **Medium** 🟡 | 有明显质量隐患,但存在可控变通空间。 | P2 尽快修复 |
232
- | **Low** 🟢 | 轻微不一致或可后续收敛项。 | P3 — 跟踪改进 |
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. **安全 / 测试覆盖补充**:仅列高风险缺口和无法静态确认的边界。
233
91
 
234
- ---
92
+ ## 纪律(输出强结论前自检)
235
93
 
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
- ---
94
+ - 是否有直接 `**path:line`**?
95
+ - 这是静态事实,还是在暗示运行时行为?
96
+ - 报的是根因还是重复症状?
97
+ - 判断是否锚定在 PRD/任务/ADR,而非个人偏好?
98
+ - 不确定时是否写成 **无法通过静态审查确认**?
318
99
 
319
- ## 审查质量清单
100
+ ## 跳过协议
320
101
 
321
- 交付前确认:
322
- - [ ] 每个强结论都有 `file:line` 证据
323
- - [ ] 没有把静态推断伪装成运行时事实
324
- - [ ] 发现聚焦根因,而不是重复表层症状
325
- - [ ] 判断以 Prompt / 契约为依据,而不是泛化个人偏好
326
- - [ ] 安全、测试、日志三项已显式审查
327
- - [ ] 对无法确认的项使用了 `Cannot Confirm Statistically` 或等价说明
102
+ 若无 `src/` 或范围不适用:输出 `Code review skipped` + 原因一行;不得虚构审查结果。