@routerhub/agent-rules 1.5.91 → 1.5.92

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
@@ -47,6 +47,15 @@
47
47
  - 测试描述、断言使用中文。测试用例先主流程再边界情况。
48
48
  - ⚠️ 代码中出现晦涩难懂的技术名词(如 X-Request-ID、反向代理、CORS、JWT、CSRF、幂等、熔断、降级等)时,必须附加中文注解。注解分两层:(1)先说明该名词是什么功能、解决什么问题;(2)再解释其中特殊因子/字段的具体作用。目的是让不熟悉该领域的人也能看懂代码逻辑,不要求已有背景知识。
49
49
 
50
+ ## ⚠️ E2E 回归测试铁律
51
+
52
+ - ⚠️ **新增测试用例必须同步改两个文件**:Runner 脚本(登记用例 + 验收详情)和报告页面(数据 + 下拉选项 + 映射 + ID 常量),缺一不可。只改一处会导致测试中心看不到新用例。
53
+ - ⚠️ **Playwright 截图必须用 `{ mode: 'on', fullPage: true }`**,禁止用默认的 `'only-on-failure'`。后者意味着测试全过时一张图都没有,报告里全是空白的。
54
+ - ⚠️ **必须从正确的子目录执行测试**,禁止从项目根目录直接跑。根目录跑会导致配置文件中的相对路径(如 `.env`)解析错误,拿到错误的端口号。
55
+ - ⚠️ **终端看到「全部通过」≠ 工作完成**。真正的完成标志是三件事:① 确认测试中心在线;② 通过 API 触发可视化验收;③ 确认报告里有截图。禁止看到终端绿色就告诉用户「做完了」——用户要的是能打开看的报告,不是终端日志。
56
+ - ⚠️ **测试突然全部失败时,先检查外部依赖(数据库/SSH 隧道等)是否断开**,再改测试代码。禁止反复改测试代码去「绕过」基础设施问题。
57
+ - ⚠️ **页面 Loading 状态必须用元素可见性等待,禁止硬编码 `waitForTimeout`**。SPA 页面的正确等待顺序:先等关键元素出现(确认框架已挂载)→ 再等 Loading 状态消失(确认数据已返回)→ 最后才操作目标元素。顺序错了会出现「Loading 还没消失就点按钮 → 找不到 → 超时」。
58
+
50
59
  ## Go 规则
51
60
 
52
61
  - 值传递优先,软删除用 `gorm.DeletedAt`(禁止 `*time.Time`)。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routerhub/agent-rules",
3
- "version": "1.5.91",
3
+ "version": "1.5.92",
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
@@ -47,6 +47,15 @@ name: "通用规则"
47
47
  - 测试描述、断言使用中文。测试用例先主流程再边界情况。
48
48
  - ⚠️ 代码中出现晦涩难懂的技术名词(如 X-Request-ID、反向代理、CORS、JWT、CSRF、幂等、熔断、降级等)时,必须附加中文注解。注解分两层:(1)先说明该名词是什么功能、解决什么问题;(2)再解释其中特殊因子/字段的具体作用。目的是让不熟悉该领域的人也能看懂代码逻辑,不要求已有背景知识。
49
49
 
50
+ ## ⚠️ E2E 回归测试铁律
51
+
52
+ - ⚠️ **新增测试用例必须同步改两个文件**:Runner 脚本(登记用例 + 验收详情)和报告页面(数据 + 下拉选项 + 映射 + ID 常量),缺一不可。只改一处会导致测试中心看不到新用例。
53
+ - ⚠️ **Playwright 截图必须用 `{ mode: 'on', fullPage: true }`**,禁止用默认的 `'only-on-failure'`。后者意味着测试全过时一张图都没有,报告里全是空白的。
54
+ - ⚠️ **必须从正确的子目录执行测试**,禁止从项目根目录直接跑。根目录跑会导致配置文件中的相对路径(如 `.env`)解析错误,拿到错误的端口号。
55
+ - ⚠️ **终端看到「全部通过」≠ 工作完成**。真正的完成标志是三件事:① 确认测试中心在线;② 通过 API 触发可视化验收;③ 确认报告里有截图。禁止看到终端绿色就告诉用户「做完了」——用户要的是能打开看的报告,不是终端日志。
56
+ - ⚠️ **测试突然全部失败时,先检查外部依赖(数据库/SSH 隧道等)是否断开**,再改测试代码。禁止反复改测试代码去「绕过」基础设施问题。
57
+ - ⚠️ **页面 Loading 状态必须用元素可见性等待,禁止硬编码 `waitForTimeout`**。SPA 页面的正确等待顺序:先等关键元素出现(确认框架已挂载)→ 再等 Loading 状态消失(确认数据已返回)→ 最后才操作目标元素。顺序错了会出现「Loading 还没消失就点按钮 → 找不到 → 超时」。
58
+
50
59
  ## Go 规则
51
60
 
52
61
  - 值传递优先,软删除用 `gorm.DeletedAt`(禁止 `*time.Time`)。