@haaaiawd/anws 2.3.0 → 2.4.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.
Files changed (92) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +52 -22
  3. package/lib/diff.js +5 -2
  4. package/lib/init.js +217 -96
  5. package/lib/install-state.js +18 -3
  6. package/lib/manifest.js +376 -79
  7. package/lib/prompt.js +68 -0
  8. package/lib/resources/index.js +36 -2
  9. package/lib/update.js +12 -6
  10. package/package.json +48 -47
  11. package/templates/.agents/skills/anws-system/SKILL.md +108 -108
  12. package/templates/.agents/skills/code-reviewer/SKILL.md +170 -115
  13. package/templates/.agents/skills/concept-modeler/SKILL.md +230 -179
  14. package/templates/.agents/skills/craft-authoring/SKILL.md +186 -183
  15. package/templates/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +61 -0
  16. package/templates/.agents/skills/design-reviewer/SKILL.md +265 -190
  17. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +246 -135
  18. package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -321
  19. package/templates/.agents/skills/output-contract/SKILL.md +37 -0
  20. package/templates/.agents/skills/report-template/SKILL.md +92 -92
  21. package/templates/.agents/skills/sequential-thinking/SKILL.md +222 -225
  22. package/templates/.agents/skills/spec-writer/SKILL.md +75 -30
  23. package/templates/.agents/skills/system-architect/SKILL.md +538 -678
  24. package/templates/.agents/skills/system-designer/SKILL.md +601 -601
  25. package/templates/.agents/skills/task-planner/SKILL.md +1 -2
  26. package/templates/.agents/skills/task-reviewer/SKILL.md +428 -388
  27. package/templates/.agents/skills/tech-evaluator/SKILL.md +252 -144
  28. package/templates/.agents/workflows/blueprint.md +157 -69
  29. package/templates/.agents/workflows/challenge.md +331 -497
  30. package/templates/.agents/workflows/change.md +182 -339
  31. package/templates/.agents/workflows/craft.md +159 -197
  32. package/templates/.agents/workflows/design-system.md +202 -674
  33. package/templates/.agents/workflows/explore.md +187 -399
  34. package/templates/.agents/workflows/forge.md +650 -609
  35. package/templates/.agents/workflows/genesis.md +439 -351
  36. package/templates/.agents/workflows/probe.md +219 -241
  37. package/templates/.agents/workflows/quickstart.md +302 -123
  38. package/templates/.agents/workflows/upgrade.md +145 -182
  39. package/templates_en/.agents/skills/anws-system/SKILL.md +108 -0
  40. package/templates_en/.agents/skills/code-reviewer/SKILL.md +170 -0
  41. package/templates_en/.agents/skills/concept-modeler/SKILL.md +230 -0
  42. package/templates_en/.agents/skills/craft-authoring/SKILL.md +179 -0
  43. package/templates_en/.agents/skills/craft-authoring/references/BUNDLE_POLICY.md +60 -0
  44. package/templates_en/.agents/skills/craft-authoring/references/PROMPT_QUALITY_RUBRIC.md +92 -0
  45. package/templates_en/.agents/skills/craft-authoring/references/SCORECARD_TEMPLATE.md +52 -0
  46. package/templates_en/.agents/skills/design-reviewer/SKILL.md +265 -0
  47. package/templates_en/.agents/skills/e2e-testing-guide/SKILL.md +246 -0
  48. package/templates_en/.agents/skills/nexus-mapper/SKILL.md +306 -0
  49. package/templates_en/.agents/skills/nexus-mapper/references/language-customization.md +167 -0
  50. package/templates_en/.agents/skills/nexus-mapper/references/output-schema.md +311 -0
  51. package/templates_en/.agents/skills/nexus-mapper/references/probe-protocol.md +246 -0
  52. package/templates_en/.agents/skills/nexus-mapper/scripts/extract_ast.py +706 -0
  53. package/templates_en/.agents/skills/nexus-mapper/scripts/git_detective.py +194 -0
  54. package/templates_en/.agents/skills/nexus-mapper/scripts/languages.json +127 -0
  55. package/templates_en/.agents/skills/nexus-mapper/scripts/query_graph.py +556 -0
  56. package/templates_en/.agents/skills/nexus-mapper/scripts/requirements.txt +6 -0
  57. package/templates_en/.agents/skills/nexus-query/SKILL.md +114 -0
  58. package/templates_en/.agents/skills/nexus-query/scripts/extract_ast.py +706 -0
  59. package/templates_en/.agents/skills/nexus-query/scripts/git_detective.py +194 -0
  60. package/templates_en/.agents/skills/nexus-query/scripts/languages.json +127 -0
  61. package/templates_en/.agents/skills/nexus-query/scripts/query_graph.py +556 -0
  62. package/templates_en/.agents/skills/nexus-query/scripts/requirements.txt +6 -0
  63. package/templates_en/.agents/skills/output-contract/SKILL.md +37 -0
  64. package/templates_en/.agents/skills/report-template/SKILL.md +85 -0
  65. package/templates_en/.agents/skills/report-template/references/REPORT_TEMPLATE.md +100 -0
  66. package/templates_en/.agents/skills/runtime-inspector/SKILL.md +101 -0
  67. package/templates_en/.agents/skills/sequential-thinking/SKILL.md +214 -0
  68. package/templates_en/.agents/skills/spec-writer/SKILL.md +153 -0
  69. package/templates_en/.agents/skills/spec-writer/references/prd_template.md +177 -0
  70. package/templates_en/.agents/skills/system-architect/SKILL.md +538 -0
  71. package/templates_en/.agents/skills/system-architect/references/rfc_template.md +59 -0
  72. package/templates_en/.agents/skills/system-designer/SKILL.md +534 -0
  73. package/templates_en/.agents/skills/system-designer/references/system-design-detail-template.md +187 -0
  74. package/templates_en/.agents/skills/system-designer/references/system-design-template.md +605 -0
  75. package/templates_en/.agents/skills/task-planner/SKILL.md +251 -0
  76. package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +109 -0
  77. package/templates_en/.agents/skills/task-planner/references/TASK_TEMPLATE_05B.md +176 -0
  78. package/templates_en/.agents/skills/task-reviewer/SKILL.md +428 -0
  79. package/templates_en/.agents/skills/tech-evaluator/SKILL.md +252 -0
  80. package/templates_en/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +78 -0
  81. package/templates_en/.agents/workflows/blueprint.md +200 -0
  82. package/templates_en/.agents/workflows/challenge.md +331 -0
  83. package/templates_en/.agents/workflows/change.md +182 -0
  84. package/templates_en/.agents/workflows/craft.md +159 -0
  85. package/templates_en/.agents/workflows/design-system.md +202 -0
  86. package/templates_en/.agents/workflows/explore.md +187 -0
  87. package/templates_en/.agents/workflows/forge.md +651 -0
  88. package/templates_en/.agents/workflows/genesis.md +439 -0
  89. package/templates_en/.agents/workflows/probe.md +219 -0
  90. package/templates_en/.agents/workflows/quickstart.md +303 -0
  91. package/templates_en/.agents/workflows/upgrade.md +145 -0
  92. package/templates_en/AGENTS.md +149 -0
@@ -1,135 +1,246 @@
1
- ---
2
-
3
- ## name: e2e-testing-guide
4
-
5
- description: 规定如何撰写面向真人的 E2E / 手动验证《测试指南》及《E2E Verification》报告格式(PRD 对照、功能面、旅程与步骤);不含实机浏览器编排——实机顺序由 `/forge` §3.7 写死。
6
-
7
- # E2E Testing Guide
8
-
9
- skill **只解决两件事**:(1)**怎么写**可执行的 E2E / 手动验证**测试指南**;(2)**报告长什么样**(含评测列)。**是否在浏览器里按指南操作**,由 `**/forge` §3.7** 统一编排:先按本 skill 产出报告,再在用户授权下使用宿主浏览器工具回填证据。
10
-
11
- > 原则:像真人逛产品一样写清「从哪进、点哪、期望看到什么」;每一项应对得上 **PRD / 验收** 里的可追溯条目。
12
-
13
- ### 测试指南要像人类那样写(必遵)
14
-
15
- 写《测试指南》时,**默认读者是第一次用产品的人**,不是跑脚本的 QA 自动化。指南里必须能还原:
16
-
17
- 1. **真入口**:从用户会用的入口进(首页、深链、邮件里的链接等),**不要**默认从 Storybook/内部调试页写起,除非任务写明允许。
18
- 2. **先「看」再「动」**:每一步前先写「此刻屏幕上应看到什么」(标题、主导航、空态文案),再写要点哪里;禁止「未描述界面就连续点下一步」。
19
- 3. **走完整壳**:顶栏/侧栏/用户菜单/设置/帮助/面包屑/返回等,**人类会乱点的入口**都要在 **Surface coverage** 或 **Journey** 里出现一次,或进 **Coverage gaps** 写原因。
20
- 4. **扫遍范围内可用能力**:每个叶子屏上的 **主 CTA + 明显次要操作**(更多菜单、行内按钮、tabs)在指南里至少有一条对应 **Step**;**不要**只写一条 happy path 就结束。
21
- 5. **人类常用组合**:至少规划筛选+排序+分页、刷新、后退、复制 URL 再打开、Tab 键能走到主按钮等(按产品实际取舍,不写的要进 **Coverage gaps**)。
22
- 6. **数据形态**:列表/表格写清「空一条 / 有一条 / 多条」时分别期望看到什么(能准备数据则写准备方式;不能则写 **Blockers**)。
23
-
24
- ---
25
-
26
- ## 触发条件
27
-
28
- - `05A_TASKS.md` **E2E测试** **手动验证**,或 `05B_VERIFICATION_PLAN.md` 要求实机验证;或改动影响页面/导航/表单/登录等需真机感受的路径。
29
- - 用户要求「写测试指南」「E2E 报告」「浏览器验证清单」等。
30
-
31
- ---
32
-
33
- ## 硬约束
34
-
35
- - **PRD / 验收可追溯**:表格与步骤须能对应到 **PRD 锚点** 或 **任务验收条目**;无 PRD 时在 Scope 声明「准 PRD」来源。
36
- - **人类式覆盖(写在指南里)**:须落实上一节 **《测试指南要像人类那样写》**;导航、空状态、次要入口、主/次 CTA、tabs、行内操作等**在范围内**的能力,须在 **Surface coverage** **Journey/Step** 中出现;刻意不测的写在 **Coverage gaps**。
37
- - **不编造执行结果**:指南可以「未执行」列留空或写「待实机」;**不得**在未实机时把结论写成 `PASS`。
38
- - **证据列留给实机**:URL、截图、日志等由 `/forge` 浏览器阶段填写;指南阶段写清「应采集何种证据」即可。
39
- - **副作用**:指南中须标注哪些步骤需用户事先授权(登录、写库、支付等)。
40
-
41
- ---
42
-
43
- ## 撰写流程(仅文档)
44
-
45
- ### 1. 读取上下文
46
-
47
- 任务与 `05A_TASKS.md`、`05B_VERIFICATION_PLAN.md`、`01_PRD.md`(或 `**输入`** 指向的需求)、相关路由/页面说明、启动方式、账号与角色;缺 URL/账号等写入 **Blockers**。
48
-
49
- ### 2. PRD 对照表(RTM)
50
-
51
-
52
- | PRD 引用 | 需求摘要 | 优先级 P0/P1/P2 | 将落在哪些 Journey |
53
- | ------ | ---- | ------------ | ------------- |
54
-
55
-
56
- 无 PRD 时第一列用 **任务验收 T-x**,并在 Scope 说明。
57
-
58
- ### 3. 功能面清单(Surface)
59
-
60
- **「人类会先看到什么、再点哪里」** 枚举;**禁止**只列路由名而不写「用户怎么发现这个入口」。
61
-
62
-
63
- | 功能面 / 入口 | 用户如何发现 | 映射 Journey | PRD 引用 |
64
- | -------- | ------ | ---------- | ------ |
65
-
66
-
67
- ### 4. 旅程与分项步骤
68
-
69
- 每条 Journey 含 PRD、角色、起点、目标;**Step 顺序 = 人类实际操作顺序**。每步固定写三句:**(1)读屏预期(2)动作(3)可观察结果 + 应采集的证据类型**(如「整页截图」「某接口 200」)。
70
-
71
- 须覆盖:核心成功、冷启动/空态、典型错误、简单边界(刷新/后退/深链)、至少一种视口(若产品声明仅桌面则写明)。
72
-
73
- ### 5. 执行计划(可选短文)
74
-
75
- `Target` / `Environment` / `Role` / `Data setup` / `Side effects` / `Blockers` 一段即可。**不写**浏览器点击协议——实机见 `**/forge` §3.7**。
76
-
77
- ---
78
-
79
- ## 输出格式(Required output)
80
-
81
- 以下 Markdown **原样作为报告骨架**;表头与章节名不要随意删。撰写时假定执行者是 **第一次打开产品的真人**,Surface / Journey / Step 须能体现 **「像人类那样」** 的探索顺序(见上文必遵节)。
82
-
83
- ```markdown
84
- ## E2E Verification
85
-
86
- ### Scope
87
- - PRD / 需求来源:
88
- - Target:
89
- - Environment:
90
- - Browser / Viewport(计划):
91
- - User Role:
92
- - Build / Commit:
93
-
94
- ### PRD traceability (RTM)
95
- | PRD ref | Summary | Priority | Journeys |
96
- | --- | --- | --- | --- |
97
-
98
- ### Surface coverage
99
- | 功能面 / 入口 | 如何发现 | Journey | PRD ref | Notes |
100
- | --- | --- | --- | --- | --- |
101
-
102
- ### Journeys(旅程级)
103
- | ID | PRD ref | User Journey | 旅程结果 | Evidence | Notes |
104
- | --- | --- | --- | --- | --- | --- |
105
-
106
- ### Step breakdown
107
- | Journey | Step | PRD ref | Step 结果 | Evidence | Notes |
108
- | --- | --- | --- | --- | --- | --- |
109
-
110
- ### Findings
111
- - [HIGH/MEDIUM/LOW] 标题
112
- - PRD ref:
113
- - Expected / Actual / Repro / Evidence / Suggested fix:
114
-
115
- ### Coverage gaps
116
- - 未写入旅程或未计划实机的范围及原因
117
-
118
- ### Recommendation
119
- - 是否建议合并/发布/先修再测(基于指南与已知实机结果;若尚未实机须写明)
120
- ```
121
-
122
- ---
123
-
124
- ## 片段模板(可裁剪进 Journey
125
-
126
- - **登录**:访客进受保护页 → 登录成功/失败/空字段/会话过期提示。
127
- - **表单**:必填与校验、成功反馈、失败不丢已填。
128
- - **列表**:空/加载/有数据、筛选排序分页、无结果恢复路径。
129
- - **导航**:主导航、返回、深链、关键操作不被遮挡。
130
-
131
- ---
132
-
133
- ## 质量标准
134
-
135
- 读者拿到指南就能**不读代码**、**像第一次用产品的人那样**按顺序走完全部范围内能力;且每条能对上 PRD/验收。**Surface 清单与 Journey 步骤不得两张皮**。
1
+ ---
2
+ name: e2e-testing-guide
3
+ description: 【ALPHA】规定面向真人的 E2E / 手动验证《测试指南》与《E2E Verification》报告骨架(PRD 可追溯、人机走查顺序、评测列仅能 PASS/PARTIAL_PASS/FAIL);**不含实机浏览器编排**——先后顺序与回填义务由宿主 **`/forge` §3.7**(及 alpha 对齐的 forge 条文)统一写死。
4
+ ---
5
+
6
+ # E2E Testing Guide — 人机验证文稿层【ALPHA】
7
+
8
+ <phase_context>
9
+ 你是 **E2E GUIDE AUTHOR(验证指南撰稿人)**。
10
+
11
+ **使命**:在**未执行或未获授权浏览器实机之前**,产出可让读者「像第一次用产品的人」照着走的《E2E Verification》文档:**读屏先于动作**、入口与覆盖面诚实、每项结论可追到 PRD/验收;不把「写好指南」误认为「测过了」。
12
+ **能力**:上下文采集与 Blocker 显式化;RTM/Surface/Journey 结构化枚举;与人类探索顺序对齐的步骤拆解;Evidence 类型的预期声明;`/forge` §3.7 约定的落盘文件名与先后顺序对接。
13
+ **限制**:不写浏览器自动化协议与本 skill 之外的评测档位;不得在未实机时把 `旅程结果` / `Step 结果` 写成 `PASS`;不得删除下文**硬约束、必遵走查规则、必选表头章节**(仅可压缩复述性旁白);与 **`templates_alpha`** 其它 skill 同工件会话内**禁止**与同路径的 shipped `templates/` 版本混用。
14
+ **与子代理**:父会话独占 **TARGET_DIR/wave-{N}-e2e.md**(或当前工作流离线路径);子任务只允许返还可以合并的**表块与边界说明**,合并后做一次 **spec 契约**验收再落盘。
15
+ **Output Goal**:满足 **Required output** 章节的 Markdown 骨架;实机回填由 `/forge` §3.7 第二步在授权后执行。
16
+ </phase_context>
17
+
18
+ ---
19
+
20
+ ## CRITICAL 方法论锚点
21
+
22
+ > [!IMPORTANT]
23
+ > 指南是「可被 walks 的证明计划」,不是绿勾表演。
24
+ >
25
+ > - **先看见,再相信**:先有读屏预期与可追溯 PRD 锚点,再给动作与可视结果;无界面叙事的连串点击视为不合格步骤。
26
+ > - **覆盖面诚实于人类习惯**:happy path 不足;范围内主/次 CTA、tabs、导航壳与常见组合拳(筛选/分页/后退/深链等)须有 Step 或在 **Coverage gaps** 写明不做原因。
27
+ > - **档位稀缺即纪律**:评测语义只剩三档 PASS / PARTIAL_PASS / FAIL;**禁**自拟「通过但…」「基本完成」或其它伪绿灯。
28
+ > - **表里一心**:Surface 表中声明的入口与 Journey/Step **不得两张皮**;Findings 里每条必须有 PRD ref 与可执行复现句式。
29
+
30
+ ---
31
+
32
+ ## CRITICAL:spec 契约(评测列 + 可追溯)
33
+
34
+ ### 允许的 Step / Journey「结果」字面量(仅此三档)
35
+
36
+ - **`PASS`**:对应 PRD 行为与 UI 观感在 **已授权浏览器实机回填 Evidence 之后**可被证据支持。
37
+ - **`PARTIAL_PASS`**:核心价值可达但存在**已记录**的差距(须在 `Notes` / `Findings` 写明何项未闭环);**禁止**用语义含糊把失败洗成 PASS
38
+ - **`FAIL`**:未达到 PRD / 验收,或阻断继续(亦可在未修前保持 FAIL 直至修复复测)。
39
+
40
+ **严禁「假 PASS」**:指南初稿、`guide-only`、仅静态审查或未获用户授权未完成浏览器回填时:**`旅程结果` / `Step 结果` 留空**,或填 **`待实机`** — **严禁**填写 `PASS` / `PARTIAL_PASS` / `FAIL` 冒充已验证。捏造 URL、截图、网络结论同上。
41
+
42
+ ### PRD traceability(与硬约束等价表述)
43
+
44
+ 任一 RTM、Surface、`PRD ref`/`PRD reference`、Journey、Step、`Findings` 行:**须**能指回 **PRD 锚点** 或 **任务验收条目**(例如 `T-x`);无 PRD 时于 **Scope** 声明「准 PRD」来源。**无锚点的步骤**不进主表正文,或记入 **Coverage gaps** 说明为何不测。
45
+
46
+ 与本 skill **配对**:宿主工作流 **`/forge` §3.7 — 波末 E2E**(触发、收尾 A/B 二选一、`wave-{N}-e2e.md` 路径、`guide-only` 边界)以 **`forge`** 条文为准;本文件不重复整条 workflow,但不与之冲突。
47
+
48
+ ---
49
+
50
+ ## 触发条件
51
+
52
+ - `05A_TASKS.md` 任一任务含 **E2E测试** **手动验证**,或 `05B_VERIFICATION_PLAN.md` 要求实机验证;或改动影响页面/导航/表单/登录等依赖真机感受的路径。
53
+ - 用户明确要求「测试指南」「E2E 报告」「浏览器验证清单」等。
54
+
55
+ ---
56
+
57
+ ## 硬约束
58
+
59
+ - **PRD / 验收可追溯**:表与步骤能指到 PRD 或验收条目;缺 PRD 时 Scope 声明来源。
60
+ - **人类式覆盖(写在指南里)**:须在 **Surface coverage** 或 **Journey/Step** 中体现导航壳、空态、次要入口、主/次 CTA、tabs、行内操作等**范围内**能力;刻意不测进 **Coverage gaps**。
61
+ - **不编造执行结果**:未实机时可留空或 `待实机`;**不得**未实机写 `PASS`(亦不得以其它词伪造绿灯)。评测列仅能使用 **PASS / PARTIAL_PASS / FAIL**(三者之一),且仅在有证据链后填入。
62
+ - **证据列**:URL、截图、日志等由 `/forge` 浏览器阶段在用户授权下回填;指南阶段写清**应采何种 Evidence**。
63
+ - **副作用**:凡涉登录、写库、支付、对生产等价环境写入等步骤,须在指南中**事前标注须用户授权**。
64
+ - **凝练**:`Findings` / `Coverage gaps` / `Notes` **一条一事一句**(可带 PRD ref);禁止同缺口换表述占多行。
65
+
66
+ ---
67
+
68
+ ### 测试指南要像人类那样写(必遵)
69
+
70
+ 1. **真入口**:从真实用户入口写起(首页、深链、邮件链接等);**除非任务明示**,**不要**默认 Storybook / 调试页起笔。
71
+ 2. **先「看」再「动」**:每步前先写此刻屏上应看到的结构/文案,再写动作;禁止未描述界面就连续「下一步」。
72
+ 3. **走完整壳**:顶栏/侧栏/用户菜单/设置/帮助/面包屑/返回等**人类会点到**的入口在 Surface 或 Journey 中出现一次,否则进 Coverage gaps 写原因。
73
+ 4. **扫遍叶子屏能力**:每屏 **主 CTA + 显性次要操作**(更多菜单、行内按钮、tabs)至少映射一条 Step;**禁止只写一条 happy path 就收束**。
74
+ 5. **常用组合**:按产品实际覆盖筛选+排序+分页、刷新、后退、复制 URL 再开、键盘可达主按钮等;不覆盖则 **Coverage gaps** 说明。
75
+ 6. **数据形态**:列表/表格写清「空一条 / 一条 / 多条」各自期望(能准备的写准备方式;不能则写入 **Blockers**)。
76
+
77
+ ---
78
+
79
+ ## 撰写流程(仅文档)
80
+
81
+ ### 1. 读取上下文
82
+
83
+ #### 做什么
84
+
85
+ 读任务与 `05A_TASKS.md`、`05B_VERIFICATION_PLAN.md`、`01_PRD.md`(或 **`输入`** / 需求指向)、路由与页面说明、启动方式、账号与角色视图;记下缺 URL / 凭证 / 环境项并写入 **Blockers**。
86
+
87
+ #### 为什么
88
+
89
+ 无边界则 Surface/Journey 会飘;Blocker 前置避免「写到一半 discovery 才失败」。
90
+
91
+ #### 怎么验收
92
+
93
+ 缺省项已住进 Blockers;**不把假设当事实**写成已 PASS。
94
+
95
+ ---
96
+
97
+ ### 2. PRD 对照表(RTM)
98
+
99
+ #### 做什么
100
+
101
+ 建 **PRD ↔ Journey** 映射;无 PRD 时第一列用 **任务验收 T-x**,Scope 脚注「准 PRD」来源。**子代理可选用法**:一枚子会话只产出下方空表填空 + 无法在表中表达的 Blocker 一行摘要;父会话去重、`PRD ref` 口径统一后与 Surface 对齐。
102
+
103
+ #### 为什么
104
+
105
+ 先有契约行网,再走人类路径;避免「写了很长旅程却对不上验收」。
106
+
107
+ #### 怎么验收
108
+
109
+ 每个将测的 PRD/验收条目**至少出现在一行**或被 **Coverage gaps** 解释为何不测。
110
+
111
+ | PRD 引用 | 需求摘要 | 优先级 P0/P1/P2 | 将落在哪些 Journey |
112
+ | ------ | ---- | ------------ | ------------- |
113
+
114
+ ---
115
+
116
+ ### 3. 功能面清单(Surface)
117
+
118
+ #### 做什么
119
+
120
+ 枚举功能面:**用户如何发现**,而不是只 Dump 路由;禁止「程序员知道的路径」代替「用户会先看到什么」。可选用子代理草稿父合并。
121
+
122
+ #### 为什么
123
+
124
+ Surface 是人的入口地图;与 Journey 双表制衡。
125
+
126
+ #### 怎么验收
127
+
128
+ 表内 **映射 Journey** 列与下文 Journey ID **可逐项对上**或有 gap 条目。
129
+
130
+ | 功能面 / 入口 | 用户如何发现 | 映射 Journey | PRD 引用 |
131
+ | -------- | ------ | ---------- | ------ |
132
+
133
+ ---
134
+
135
+ ### 4. 旅程与分项步骤
136
+
137
+ #### 做什么
138
+
139
+ 每条 Journey:**PRD、角色、起点、目标**;**Step = 真人操作顺序**。每步三段句式:
140
+ **(1)** 读屏预期 **(2)** 动作 **(3)** 可观察结果 + 应采 Evidence 类型(如整页截图、某请求 200)。
141
+ 覆盖:**核心成功、冷启动/空态、典型错误、简单边界(刷新/后退/深链)、至少一种视口**(若仅桌面申明写死)。
142
+
143
+ 可选用子代理按「单个 Journey」切片起草;父合并后检查 **Coverage gaps** / **Surface** 对齐。
144
+
145
+ #### 为什么
146
+
147
+ 步骤是执行的唯一真相来源;粒度不足则浏览器阶段无法逐项回填 Evidence。
148
+
149
+ #### 怎么验收
150
+
151
+ 无「凭空点击」的步骤;Evidence 期望可执行;与人类必遵六项**无矛盾**。
152
+
153
+ ---
154
+
155
+ ### 5. 执行计划(可选短文)
156
+
157
+ 一段话覆盖即可:`Target` / `Environment` / `Role` / `Data setup` / `Side effects` / `Blockers`。**不写**宿主浏览器点击序列(实机遵从 **`/forge` §3.7**)。
158
+
159
+ ---
160
+
161
+ ## 输出格式(Required output)
162
+
163
+ 以下 Markdown **原样作为报告骨架**;章节名与表头栏位**不要随意删**。撰写假定执行者是**第一次打开的真人**。
164
+
165
+ ```markdown
166
+ <!--
167
+ 评测列语义(旅程结果 / Step 结果):仅允许 PASS | PARTIAL_PASS | FAIL。
168
+ 未在用户授权并完成浏览器回填前:留空或写「待实机」——严禁写任一 verdict,严禁自拟其它档位或同义粉饰。
169
+ -->
170
+
171
+ ## E2E Verification
172
+
173
+ ### Scope
174
+ - PRD / 需求来源:
175
+ - Target:
176
+ - Environment:
177
+ - Browser / Viewport(计划):
178
+ - User Role:
179
+ - Build / Commit:
180
+
181
+ ### PRD traceability (RTM)
182
+ | PRD ref | Summary | Priority | Journeys |
183
+ | --- | --- | --- | --- |
184
+
185
+ ### Surface coverage
186
+ | 功能面 / 入口 | 如何发现 | Journey | PRD ref | Notes |
187
+ | --- | --- | --- | --- | --- |
188
+
189
+ ### Journeys(旅程级)
190
+ | ID | PRD ref | User Journey | 旅程结果 | Evidence | Notes |
191
+ | --- | --- | --- | --- | --- | --- |
192
+
193
+ ### Step breakdown
194
+ | Journey | Step | PRD ref | Step 结果 | Evidence | Notes |
195
+ | --- | --- | --- | --- | --- | --- |
196
+
197
+ ### Findings
198
+ - [HIGH/MEDIUM/LOW] 标题
199
+ - PRD ref:
200
+ - Expected / Actual / Repro / Evidence / Suggested fix:
201
+
202
+ ### Coverage gaps
203
+ - 未写入旅程或未计划实机的范围及原因
204
+
205
+ ### Recommendation
206
+ - 是否建议合并/发布/先修再测(基于指南与已知实机结果;若尚未实机须写明)
207
+ ```
208
+
209
+ ---
210
+
211
+ ## 片段模板(可裁剪进 Journey)
212
+
213
+ - **登录**:访客进受保护页 → 登录成功/失败/空字段/会话过期提示。
214
+ - **表单**:必填与校验、成功反馈、失败不丢已填。
215
+ - **列表**:空/加载/有数据、筛选排序分页、无结果恢复路径。
216
+ - **导航**:主导航、返回、深链、关键操作不被遮挡。
217
+
218
+ ---
219
+
220
+ ## 质量标准
221
+
222
+ 读者**不读代码**即可按顺序走完全部范围内能力阐述;每一条能对上 PRD 或验收;**Surface 与 Journey 不得两张皮**。
223
+
224
+ ---
225
+
226
+ ## Handoff checklist(编排 / 浏览器回填 / 合并)
227
+
228
+ - [ ] 已按 **`/forge` §3.7** 判断是否须落盘 `wave-{N}-e2e.md`(或当前工作流离线路径等价物)。
229
+ - [ ] Scope、Blockers、副作用与 **Coverage gaps** 已诚实;无 PRD 时「准 PRD」已写明。
230
+ - [ ] Required output 骨架**表头齐备**;`PRD ref` **无裸露步骤**。
231
+ - [ ] **spec 契约**:未实机不写 PASS/PARTIAL_PASS/FAIL;父合并后抽查无「假 PASS」。
232
+ - [ ] 可选子草稿已去重并入主表;**父会话单次落盘**。
233
+ - [ ] 全文无 emoji。
234
+
235
+ ---
236
+
237
+ <completion_criteria>
238
+ - [ ] **CRITICAL 方法论锚点** 与 **spec 契约**(三档评测 + PRD traceability + 禁假 PASS)在产出中可见遵从
239
+ - [ ] **测试指南要像人类那样写** 六项已落实到 Surface / Journey / Step 或 Coverage gaps
240
+ - [ ] **硬约束** 全部未被削弱(可追溯、覆盖面、Evidence、副作用、禁编造)
241
+ - [ ] Required output 章节结构与**规范表头**保留;额外说明仅加注不删栏
242
+ - [ ] 评测列仅有 **PASS / PARTIAL_PASS / FAIL** 或未填/`待实机`;无明示授权与证据不写 verdict
243
+ - [ ] Surface 表与 Journey/Step **可交叉索引**且无结构性矛盾
244
+ - [ ] `/forge` §3.7 相关交付(路径、收尾 A/B、`guide-only`)与宿主 forge 条文一致或可映射
245
+ - [ ] 全文无 emoji
246
+ </completion_criteria>