@routerhub/agent-rules 1.5.80 → 1.5.81

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/AGENTS.base.md CHANGED
@@ -124,14 +124,144 @@ Closes #456
124
124
 
125
125
  - 新需求先在 `docs/` 写文档,含:目标、范围、功能要求、验收标准。
126
126
 
127
- ## ⚠️ Superpowers 需求开发流程(强制)
127
+ ## ⚠️ 回归测试体系与 TDD 开发流程(强制)
128
128
 
129
- - ⚠️ **每一个新需求、每一次改动,必须严格按以下 Superpowers 流程执行,不可跳过任何步骤:**
130
- 1. **确定设计文档**:在写任何代码之前,必须先明确当前改动归属哪个设计文档(`docs/` 目录下的 HTML 文档)。如该文档不存在,必须先创建设计文档,含目标、范围、功能要求、验收标准。
131
- 2. **准备测试用例**:设计文档确定后,必须先准备测试用例,明确要测什么、怎么测、预期结果是什么。
132
- 3. **开始写代码**:前两步完成后,才能开始编写代码实现。
133
- 4. **发新版本**:代码完成并通过测试后,执行 `./release.sh` 发版。
134
- - ⚠️ **禁止跳过设计文档和测试用例直接写代码。** 没有设计文档和测试用例的改动不得开始编码。
129
+ ### 一、回归测试入口
130
+
131
+ 本项目的回归测试通过回归测试中心执行,入口为 `上线回归测试点.js`,本质是打开回归测试中心 UI 页面(`上线前回归测试.html`),在该页面中勾选用例并一键执行。
132
+
133
+ - **打开回归中心**:`pnpm run regression:open`(自动启动 runner 服务 + 打开浏览器页面)
134
+ - **全量测试按钮**:回归中心页面内有「全量测试」按钮,点击即跑所有已注册的回归用例,生成可视化验收报告
135
+ - **可视化报告**:跑完后自动生成 HTML 报告,包含每条用例的通过/失败状态、E2E 截图、后端代码流程解释卡片、失败定位信息
136
+
137
+ ### 二、回归用例层级
138
+
139
+ 所有回归用例统一注册在 `scripts/superpowers-regression-runner.js` 的 `TEST_CASES` 对象中,按层级分为四类:
140
+
141
+ | 层级 | 说明 | 示例 |
142
+ |------|------|------|
143
+ | **Go 单元测试** | 后端业务规则单测 | Credit 消耗规则、自动充值、低余额提醒、月度限额合约 |
144
+ | **API 冒烟测试** | 接口可达性与鉴权拦截 | 健康检查、登录入口、受保护接口鉴权拦截、支付回调 |
145
+ | **Admin E2E** | 管理端 Playwright 端到端 | 模型 CRUD 生命周期、Credit 管理、月度限额专项 |
146
+ | **User E2E** | 用户端 Playwright 端到端 | 买赠政策验证、客户端页面流程、AI 助手 |
147
+
148
+ ### 三、Superpowers TDD 开发流程(每次会话强制遵循)
149
+
150
+ ⚠️ **每次接收新需求、修改代码时,必须严格按以下流程执行,不可跳过任何步骤:**
151
+
152
+ #### 第 1 步:需求记录(留痕)
153
+
154
+ - 在 `docs/` 目录下新建需求文档(HTML 格式,中文命名),记录:需求背景、功能范围、验收标准、所属版本号/版本名称
155
+ - 如果需求已有版本号 → 标注版本号,后续测试用例归档到该版本
156
+ - 如果需求未说明版本号 → 归档到「全量测试」范围
157
+ - 使用 Superpowers 的 `brainstorming` skill 做需求分析(触发时机:需求不清晰或需要设计方案时)
158
+
159
+ #### 第 2 步:确认需求归属版本
160
+
161
+ - 查看该需求属于哪个版本(如 v2.1.0、v2.2.0 等)
162
+ - 如果用户未说明版本号 → 默认为全量测试范围
163
+ - 在需求文档中明确写出:「归属版本:XXX」或「归属范围:全量测试」
164
+
165
+ #### 第 3 步:测试先行(TDD)
166
+
167
+ - ⚠️ **先写测试用例,再写业务代码**
168
+ - Go 后端需求 → 先在 `app/supply/`、`app/controller/` 等目录下写 Go 单测(`_test.go`)
169
+ - 前端 UI 需求 → 先在 `admin_web/e2e/` 或 `user_web/e2e/` 下写 Playwright E2E spec
170
+ - API 接口需求 → 先在 `scripts/regression-api-smoke.js` 中加冒烟子命令
171
+ - 然后在 `scripts/superpowers-regression-runner.js` 的 `TEST_CASES` 中注册新用例
172
+ - 测试用例描述、断言必须使用中文
173
+
174
+ #### 第 4 步:跑基线回归(改动前)
175
+
176
+ - ⚠️ **改代码之前,必须先跑一次全量回归,建立基线**
177
+ - 确认改动前所有已有用例全部通过,拿到基线报告
178
+ - 如果已有失败用例,先排查是环境问题还是已有 bug,记录在案
179
+
180
+ #### 第 5 步:实现业务代码
181
+
182
+ - 按需求文档和测试用例实现功能
183
+ - 实现过程中持续跑新增的测试用例,确保新功能正确
184
+
185
+ #### 第 6 步:跑全量回归(改动后)
186
+
187
+ - ⚠️ **改完代码后,必须跑全量回归**
188
+ - 确认:新增用例全部通过 + 所有已有用例仍然通过
189
+ - 如果全量回归有失败:
190
+ - 改动导致的 → 修代码,重新跑
191
+ - 环境问题 → 记录在回归报告中
192
+ - 已有用例本身的问题 → 修复用例或更新断言
193
+ - **全量回归全部通过 = 新功能正确 + 已有功能不被破坏**
194
+
195
+ #### 第 7 步:上线前回归
196
+
197
+ - ⚠️ **每次部署生产前,必须跑 `node 上线回归测试点.js`**
198
+ - 这是上线前最后一道防线,确保生产环境不会出问题
199
+
200
+ ### 四、测试用例注册规范
201
+
202
+ 在 `scripts/superpowers-regression-runner.js` 中注册新用例时:
203
+
204
+ ```javascript
205
+ // Go 单测用例模板
206
+ "go-xxx": {
207
+ id: "go-xxx",
208
+ name: "功能名称(中文)",
209
+ command: "go test -count=1 -v -run TestXxx ./app/xxx",
210
+ cwd: ROOT_DIR,
211
+ },
212
+
213
+ // API 冒烟用例模板
214
+ "api-xxx": {
215
+ id: "api-xxx",
216
+ name: "接口名称(中文)",
217
+ command: "node scripts/regression-api-smoke.js xxx",
218
+ cwd: ROOT_DIR,
219
+ },
220
+
221
+ // Admin E2E 用例模板
222
+ "e2e-admin-xxx": {
223
+ id: "e2e-admin-xxx",
224
+ name: "管理端功能名称(中文)",
225
+ command: "pnpm exec playwright test e2e/Xxx.spec.ts",
226
+ cwd: path.join(ROOT_DIR, "admin_web"),
227
+ },
228
+
229
+ // User E2E 用例模板
230
+ "e2e-user-xxx": {
231
+ id: "e2e-user-xxx",
232
+ name: "用户端功能名称(中文)",
233
+ command: "pnpm exec playwright test e2e/Xxx.spec.ts",
234
+ cwd: path.join(ROOT_DIR, "user_web"),
235
+ },
236
+ ```
237
+
238
+ ### 五、留痕机制
239
+
240
+ - 每个需求必须在 `docs/` 下留下需求文档(HTML 格式,中文文件名)
241
+ - 每个需求的测试用例必须在回归中心注册,用例名称包含需求关键词
242
+ - 全量回归报告(HTML)自动生成到 `docs/evidence/visual-acceptance/report.html`,可作为交付证据
243
+ - 如果之前的记录(需求文档、测试用例)与实际情况不符,必须**立即更新**,不留过期文档
244
+ - ⚠️ **每次会话的改动必须有迹可循**:需求文档 → 测试用例 → 回归报告 → 代码改动,四者一一对应
245
+
246
+ ### 六、外部 Coding 的含义
247
+
248
+ 上述流程的本质是**外部化编码(External Coding)**:
249
+
250
+ - 代码的正确性不是靠"我觉得没问题"来判断的,而是靠**外部可观察的测试结果**来验证的
251
+ - 每一次改动,都有一套完整的、可复现的回归用例作为安全网
252
+ - 新增功能的验收标准在写代码之前就以测试用例的形式固化下来
253
+ - 任何人在任何时候跑全量回归,都能立即知道系统当前的健康状态
254
+ - 代码不再是黑盒,而是被测试用例从外部锁定的、可验证的产物
255
+
256
+ ### 七、AI 助手的职责
257
+
258
+ 作为 AI 开发助手,每次接收需求时必须:
259
+
260
+ 1. **第一反应不是写代码,而是确认归属版本 + 写需求文档 + 设计测试用例**
261
+ 2. 在实现代码之前,先在回归中心注册测试用例
262
+ 3. 代码写完后,必须跑全量回归并出示报告
263
+ 4. 交付时必须说明:新增了哪些测试用例、归属于哪个版本/全量测试、全量回归结果
264
+ 5. 如果用户说"直接改就行不用测试",必须提醒用户测试是安全网,建议至少跑新增用例
135
265
 
136
266
  ## 文档格式
137
267
 
@@ -146,14 +276,6 @@ Closes #456
146
276
  - ⚠️ **编写 HTML 报告/文档时,每一段说明文字必须与其对应的截图、图片紧挨着放在一起(同一视觉区域内)**,禁止将说明文字集中放在页面顶部、图片全部堆在底部,导致读者需要上下翻页才能对照阅读。正确做法:每写完一段说明文字后,紧接着就放该段说明对应的图片,形成"说明 → 配图"的紧密组合,然后再写下一段说明和下一张图。
147
277
  - ⚠️ **HTML 报告必须以截图为主、文字为辅**:报告的核心内容是截图,文字仅作为截图的简要说明和补充。页面布局上截图应占主导地位(占据大部分版面),文字说明应精简扼要,禁止出现大段文字配少量截图的情况。读者应能通过翻阅截图快速了解全貌,无需阅读大量文字。
148
278
 
149
- ## 新需求与回归测试准入
150
-
151
- - 每个新需求必须同步新增或更新可自动化回归用例;仅纯文案、纯文档或无可自动化行为的改动可例外,但交付时必须说明无需新增用例的原因与人工验证方式。
152
- - 新增或更新的测试用例必须接入项目回归测试中心的可运行范围:用户明确说明当前版本号或版本名称时,归档到对应版本测试范围;用户未说明版本时,归档到全量测试,确保“全量测试”会执行或展示该用例。
153
- - 使用 Superpowers 或其他代理流程处理需求时,测试设计是交付的一部分;需求文档、实现计划、代码改动与测试接入必须同步考虑,禁止只完成业务代码而遗漏全量或版本回归用例。
154
- - 交付说明必须列出新增或更新的测试用例名称、所在文件、归属范围(版本或全量)以及已执行的测试命令与结果。
155
- - 用户未明确豁免时,默认按 Superpowers 等价流程执行新需求交付;每次需求都必须新增或更新至少一个可自动化回归用例,并接入“全量测试”范围。
156
-
157
279
  ## Superpowers 安装与缺失处理
158
280
 
159
281
  - 团队统一推荐使用 Superpowers 插件或同等技能流程处理新需求、调试、计划、测试驱动开发和完成前验证。
@@ -161,13 +283,6 @@ Closes #456
161
283
  - 用户暂不安装或当前环境无法安装时,不得因此中断任务;必须按本规则中的等价流程继续执行,包括需求文档、实现计划、测试准入、代码实现和完成前验证。
162
284
  - 不得把某一台电脑已安装 Superpowers 当作团队默认事实;交付说明中应明确本次是使用 Superpowers 流程,还是按 AGENTS 规则执行了等价流程。
163
285
 
164
- ## 新需求与回归测试准入
165
-
166
- - 每个新需求必须同步新增或更新可自动化回归用例;仅纯文案、纯文档或无可自动化行为的改动可例外,但交付时必须说明无需新增用例的原因与人工验证方式。
167
- - 新增或更新的测试用例必须接入项目回归测试中心的可运行范围:用户明确说明当前版本号或版本名称时,归档到对应版本测试范围;用户未说明版本时,归档到全量测试,确保“全量测试”会执行或展示该用例。
168
- - 使用 Superpowers 或其他代理流程处理需求时,测试设计是交付的一部分;需求文档、实现计划、代码改动与测试接入必须同步考虑,禁止只完成业务代码而遗漏全量或版本回归用例。
169
- - 交付说明必须列出新增或更新的测试用例名称、所在文件、归属范围(版本或全量)以及已执行的测试命令与结果。
170
-
171
286
  ## 优先级
172
287
 
173
288
  1. 项目私有规则(AGENTS.private.md)
@@ -187,11 +302,11 @@ Closes #456
187
302
  - 涉及配置、官网或其他系统联动时,需同时打开所有相关页面,并按实际操作路径展示联动结果,方便直接验证。
188
303
  - 若客观上无法可视化展示,需说明原因,并补充截图、录屏、日志或请求响应作为替代证据。
189
304
 
190
- ## 外部文档查看(Notion / 需登录页面)
305
+ ## 外部文档查看/浏览器控制(agent-browser)
191
306
 
192
- - 查看 Notion 文档或其他需要登录态的外部页面时,必须使用 Chrome DevTools MCP(`navigate_page` + `take_snapshot` / `evaluate_script`),禁止使用 WebFetch。WebFetch 无法处理需要登录的页面,会直接报错看不到内容;浏览器 MCP 可复用用户已有的登录态。
193
- - 页面 snapshot 太大无法直接读取时,用 `evaluate_script` 执行 `document.body.innerText` 或更精准的选择器提取文本内容,再分段读取。
194
- - 提取到的外部文档内容涉及项目关键规范/数据时,应保存为长期记忆(`memory/` 目录)方便后续引用。
307
+ - ⚠️ **浏览器控制以个人全局 `CLAUDE.md`(`~/.claude/CLAUDE.md`)为准,本文件不再重复定义端口、Profile、启动流程等配置。**
308
+ - 团队开发者在自己的全局 `CLAUDE.md` 中配置 agent-browser + Chrome CDP 环境(端口、Profile 目录等)。
309
+ - 基本约定:所有需要登录态的页面必须使用 `agent-browser --cdp <端口>` 连接已登录 Chrome,禁止 WebFetch / 无状态模式。
195
310
 
196
311
  <!-- @domain: frontend -->
197
312
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routerhub/agent-rules",
3
- "version": "1.5.80",
3
+ "version": "1.5.81",
4
4
  "description": "Shared Copilot agent rules and guidelines for RouterHub projects",
5
5
  "main": "AGENTS.base.md",
6
6
  "bin": {
package/rules/global.md CHANGED
@@ -126,14 +126,144 @@ Closes #456
126
126
 
127
127
  - 新需求先在 `docs/` 写文档,含:目标、范围、功能要求、验收标准。
128
128
 
129
- ## ⚠️ Superpowers 需求开发流程(强制)
129
+ ## ⚠️ 回归测试体系与 TDD 开发流程(强制)
130
130
 
131
- - ⚠️ **每一个新需求、每一次改动,必须严格按以下 Superpowers 流程执行,不可跳过任何步骤:**
132
- 1. **确定设计文档**:在写任何代码之前,必须先明确当前改动归属哪个设计文档(`docs/` 目录下的 HTML 文档)。如该文档不存在,必须先创建设计文档,含目标、范围、功能要求、验收标准。
133
- 2. **准备测试用例**:设计文档确定后,必须先准备测试用例,明确要测什么、怎么测、预期结果是什么。
134
- 3. **开始写代码**:前两步完成后,才能开始编写代码实现。
135
- 4. **发新版本**:代码完成并通过测试后,执行 `./release.sh` 发版。
136
- - ⚠️ **禁止跳过设计文档和测试用例直接写代码。** 没有设计文档和测试用例的改动不得开始编码。
131
+ ### 一、回归测试入口
132
+
133
+ 本项目的回归测试通过回归测试中心执行,入口为 `上线回归测试点.js`,本质是打开回归测试中心 UI 页面(`上线前回归测试.html`),在该页面中勾选用例并一键执行。
134
+
135
+ - **打开回归中心**:`pnpm run regression:open`(自动启动 runner 服务 + 打开浏览器页面)
136
+ - **全量测试按钮**:回归中心页面内有「全量测试」按钮,点击即跑所有已注册的回归用例,生成可视化验收报告
137
+ - **可视化报告**:跑完后自动生成 HTML 报告,包含每条用例的通过/失败状态、E2E 截图、后端代码流程解释卡片、失败定位信息
138
+
139
+ ### 二、回归用例层级
140
+
141
+ 所有回归用例统一注册在 `scripts/superpowers-regression-runner.js` 的 `TEST_CASES` 对象中,按层级分为四类:
142
+
143
+ | 层级 | 说明 | 示例 |
144
+ |------|------|------|
145
+ | **Go 单元测试** | 后端业务规则单测 | Credit 消耗规则、自动充值、低余额提醒、月度限额合约 |
146
+ | **API 冒烟测试** | 接口可达性与鉴权拦截 | 健康检查、登录入口、受保护接口鉴权拦截、支付回调 |
147
+ | **Admin E2E** | 管理端 Playwright 端到端 | 模型 CRUD 生命周期、Credit 管理、月度限额专项 |
148
+ | **User E2E** | 用户端 Playwright 端到端 | 买赠政策验证、客户端页面流程、AI 助手 |
149
+
150
+ ### 三、Superpowers TDD 开发流程(每次会话强制遵循)
151
+
152
+ ⚠️ **每次接收新需求、修改代码时,必须严格按以下流程执行,不可跳过任何步骤:**
153
+
154
+ #### 第 1 步:需求记录(留痕)
155
+
156
+ - 在 `docs/` 目录下新建需求文档(HTML 格式,中文命名),记录:需求背景、功能范围、验收标准、所属版本号/版本名称
157
+ - 如果需求已有版本号 → 标注版本号,后续测试用例归档到该版本
158
+ - 如果需求未说明版本号 → 归档到「全量测试」范围
159
+ - 使用 Superpowers 的 `brainstorming` skill 做需求分析(触发时机:需求不清晰或需要设计方案时)
160
+
161
+ #### 第 2 步:确认需求归属版本
162
+
163
+ - 查看该需求属于哪个版本(如 v2.1.0、v2.2.0 等)
164
+ - 如果用户未说明版本号 → 默认为全量测试范围
165
+ - 在需求文档中明确写出:「归属版本:XXX」或「归属范围:全量测试」
166
+
167
+ #### 第 3 步:测试先行(TDD)
168
+
169
+ - ⚠️ **先写测试用例,再写业务代码**
170
+ - Go 后端需求 → 先在 `app/supply/`、`app/controller/` 等目录下写 Go 单测(`_test.go`)
171
+ - 前端 UI 需求 → 先在 `admin_web/e2e/` 或 `user_web/e2e/` 下写 Playwright E2E spec
172
+ - API 接口需求 → 先在 `scripts/regression-api-smoke.js` 中加冒烟子命令
173
+ - 然后在 `scripts/superpowers-regression-runner.js` 的 `TEST_CASES` 中注册新用例
174
+ - 测试用例描述、断言必须使用中文
175
+
176
+ #### 第 4 步:跑基线回归(改动前)
177
+
178
+ - ⚠️ **改代码之前,必须先跑一次全量回归,建立基线**
179
+ - 确认改动前所有已有用例全部通过,拿到基线报告
180
+ - 如果已有失败用例,先排查是环境问题还是已有 bug,记录在案
181
+
182
+ #### 第 5 步:实现业务代码
183
+
184
+ - 按需求文档和测试用例实现功能
185
+ - 实现过程中持续跑新增的测试用例,确保新功能正确
186
+
187
+ #### 第 6 步:跑全量回归(改动后)
188
+
189
+ - ⚠️ **改完代码后,必须跑全量回归**
190
+ - 确认:新增用例全部通过 + 所有已有用例仍然通过
191
+ - 如果全量回归有失败:
192
+ - 改动导致的 → 修代码,重新跑
193
+ - 环境问题 → 记录在回归报告中
194
+ - 已有用例本身的问题 → 修复用例或更新断言
195
+ - **全量回归全部通过 = 新功能正确 + 已有功能不被破坏**
196
+
197
+ #### 第 7 步:上线前回归
198
+
199
+ - ⚠️ **每次部署生产前,必须跑 `node 上线回归测试点.js`**
200
+ - 这是上线前最后一道防线,确保生产环境不会出问题
201
+
202
+ ### 四、测试用例注册规范
203
+
204
+ 在 `scripts/superpowers-regression-runner.js` 中注册新用例时:
205
+
206
+ ```javascript
207
+ // Go 单测用例模板
208
+ "go-xxx": {
209
+ id: "go-xxx",
210
+ name: "功能名称(中文)",
211
+ command: "go test -count=1 -v -run TestXxx ./app/xxx",
212
+ cwd: ROOT_DIR,
213
+ },
214
+
215
+ // API 冒烟用例模板
216
+ "api-xxx": {
217
+ id: "api-xxx",
218
+ name: "接口名称(中文)",
219
+ command: "node scripts/regression-api-smoke.js xxx",
220
+ cwd: ROOT_DIR,
221
+ },
222
+
223
+ // Admin E2E 用例模板
224
+ "e2e-admin-xxx": {
225
+ id: "e2e-admin-xxx",
226
+ name: "管理端功能名称(中文)",
227
+ command: "pnpm exec playwright test e2e/Xxx.spec.ts",
228
+ cwd: path.join(ROOT_DIR, "admin_web"),
229
+ },
230
+
231
+ // User E2E 用例模板
232
+ "e2e-user-xxx": {
233
+ id: "e2e-user-xxx",
234
+ name: "用户端功能名称(中文)",
235
+ command: "pnpm exec playwright test e2e/Xxx.spec.ts",
236
+ cwd: path.join(ROOT_DIR, "user_web"),
237
+ },
238
+ ```
239
+
240
+ ### 五、留痕机制
241
+
242
+ - 每个需求必须在 `docs/` 下留下需求文档(HTML 格式,中文文件名)
243
+ - 每个需求的测试用例必须在回归中心注册,用例名称包含需求关键词
244
+ - 全量回归报告(HTML)自动生成到 `docs/evidence/visual-acceptance/report.html`,可作为交付证据
245
+ - 如果之前的记录(需求文档、测试用例)与实际情况不符,必须**立即更新**,不留过期文档
246
+ - ⚠️ **每次会话的改动必须有迹可循**:需求文档 → 测试用例 → 回归报告 → 代码改动,四者一一对应
247
+
248
+ ### 六、外部 Coding 的含义
249
+
250
+ 上述流程的本质是**外部化编码(External Coding)**:
251
+
252
+ - 代码的正确性不是靠"我觉得没问题"来判断的,而是靠**外部可观察的测试结果**来验证的
253
+ - 每一次改动,都有一套完整的、可复现的回归用例作为安全网
254
+ - 新增功能的验收标准在写代码之前就以测试用例的形式固化下来
255
+ - 任何人在任何时候跑全量回归,都能立即知道系统当前的健康状态
256
+ - 代码不再是黑盒,而是被测试用例从外部锁定的、可验证的产物
257
+
258
+ ### 七、AI 助手的职责
259
+
260
+ 作为 AI 开发助手,每次接收需求时必须:
261
+
262
+ 1. **第一反应不是写代码,而是确认归属版本 + 写需求文档 + 设计测试用例**
263
+ 2. 在实现代码之前,先在回归中心注册测试用例
264
+ 3. 代码写完后,必须跑全量回归并出示报告
265
+ 4. 交付时必须说明:新增了哪些测试用例、归属于哪个版本/全量测试、全量回归结果
266
+ 5. 如果用户说"直接改就行不用测试",必须提醒用户测试是安全网,建议至少跑新增用例
137
267
 
138
268
  ## 文档格式
139
269
 
@@ -148,14 +278,6 @@ Closes #456
148
278
  - ⚠️ **编写 HTML 报告/文档时,每一段说明文字必须与其对应的截图、图片紧挨着放在一起(同一视觉区域内)**,禁止将说明文字集中放在页面顶部、图片全部堆在底部,导致读者需要上下翻页才能对照阅读。正确做法:每写完一段说明文字后,紧接着就放该段说明对应的图片,形成"说明 → 配图"的紧密组合,然后再写下一段说明和下一张图。
149
279
  - ⚠️ **HTML 报告必须以截图为主、文字为辅**:报告的核心内容是截图,文字仅作为截图的简要说明和补充。页面布局上截图应占主导地位(占据大部分版面),文字说明应精简扼要,禁止出现大段文字配少量截图的情况。读者应能通过翻阅截图快速了解全貌,无需阅读大量文字。
150
280
 
151
- ## 新需求与回归测试准入
152
-
153
- - 每个新需求必须同步新增或更新可自动化回归用例;仅纯文案、纯文档或无可自动化行为的改动可例外,但交付时必须说明无需新增用例的原因与人工验证方式。
154
- - 新增或更新的测试用例必须接入项目回归测试中心的可运行范围:用户明确说明当前版本号或版本名称时,归档到对应版本测试范围;用户未说明版本时,归档到全量测试,确保“全量测试”会执行或展示该用例。
155
- - 使用 Superpowers 或其他代理流程处理需求时,测试设计是交付的一部分;需求文档、实现计划、代码改动与测试接入必须同步考虑,禁止只完成业务代码而遗漏全量或版本回归用例。
156
- - 交付说明必须列出新增或更新的测试用例名称、所在文件、归属范围(版本或全量)以及已执行的测试命令与结果。
157
- - 用户未明确豁免时,默认按 Superpowers 等价流程执行新需求交付;每次需求都必须新增或更新至少一个可自动化回归用例,并接入“全量测试”范围。
158
-
159
281
  ## Superpowers 安装与缺失处理
160
282
 
161
283
  - 团队统一推荐使用 Superpowers 插件或同等技能流程处理新需求、调试、计划、测试驱动开发和完成前验证。
@@ -163,13 +285,6 @@ Closes #456
163
285
  - 用户暂不安装或当前环境无法安装时,不得因此中断任务;必须按本规则中的等价流程继续执行,包括需求文档、实现计划、测试准入、代码实现和完成前验证。
164
286
  - 不得把某一台电脑已安装 Superpowers 当作团队默认事实;交付说明中应明确本次是使用 Superpowers 流程,还是按 AGENTS 规则执行了等价流程。
165
287
 
166
- ## 新需求与回归测试准入
167
-
168
- - 每个新需求必须同步新增或更新可自动化回归用例;仅纯文案、纯文档或无可自动化行为的改动可例外,但交付时必须说明无需新增用例的原因与人工验证方式。
169
- - 新增或更新的测试用例必须接入项目回归测试中心的可运行范围:用户明确说明当前版本号或版本名称时,归档到对应版本测试范围;用户未说明版本时,归档到全量测试,确保“全量测试”会执行或展示该用例。
170
- - 使用 Superpowers 或其他代理流程处理需求时,测试设计是交付的一部分;需求文档、实现计划、代码改动与测试接入必须同步考虑,禁止只完成业务代码而遗漏全量或版本回归用例。
171
- - 交付说明必须列出新增或更新的测试用例名称、所在文件、归属范围(版本或全量)以及已执行的测试命令与结果。
172
-
173
288
  ## 优先级
174
289
 
175
290
  1. 项目私有规则(AGENTS.private.md)
@@ -189,8 +304,8 @@ Closes #456
189
304
  - 涉及配置、官网或其他系统联动时,需同时打开所有相关页面,并按实际操作路径展示联动结果,方便直接验证。
190
305
  - 若客观上无法可视化展示,需说明原因,并补充截图、录屏、日志或请求响应作为替代证据。
191
306
 
192
- ## 外部文档查看(Notion / 需登录页面)
307
+ ## 外部文档查看/浏览器控制(agent-browser)
193
308
 
194
- - 查看 Notion 文档或其他需要登录态的外部页面时,必须使用 Chrome DevTools MCP(`navigate_page` + `take_snapshot` / `evaluate_script`),禁止使用 WebFetch。WebFetch 无法处理需要登录的页面,会直接报错看不到内容;浏览器 MCP 可复用用户已有的登录态。
195
- - 页面 snapshot 太大无法直接读取时,用 `evaluate_script` 执行 `document.body.innerText` 或更精准的选择器提取文本内容,再分段读取。
196
- - 提取到的外部文档内容涉及项目关键规范/数据时,应保存为长期记忆(`memory/` 目录)方便后续引用。
309
+ - ⚠️ **浏览器控制以个人全局 `CLAUDE.md`(`~/.claude/CLAUDE.md`)为准,本文件不再重复定义端口、Profile、启动流程等配置。**
310
+ - 团队开发者在自己的全局 `CLAUDE.md` 中配置 agent-browser + Chrome CDP 环境(端口、Profile 目录等)。
311
+ - 基本约定:所有需要登录态的页面必须使用 `agent-browser --cdp <端口>` 连接已登录 Chrome,禁止 WebFetch / 无状态模式。