@routerhub/agent-rules 1.5.89 → 1.5.91
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 +29 -0
- package/package.json +1 -1
- package/rules/global.md +29 -0
package/AGENTS.base.md
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
## ⚠️ 规则修改入口
|
|
10
10
|
|
|
11
11
|
- **新增、修改、删除规则,必须改 `AGENTS.base.md`(源文件),禁止直接改 `CLAUDE.md` 或 `AGENTS.md`**。改完后必须执行 `node merge.js sync` 重新生成输出文件。
|
|
12
|
+
- ⚠️ **新增行为/指令时,先判断该放规则还是 Skill**:
|
|
13
|
+
- **规则(Rule)**:始终生效的约束,如代码风格、命名规范、行为要求、注释规范。写入 `AGENTS.base.md`。
|
|
14
|
+
- **Skill**:多步骤操作流程,需按需调用,如部署、发 PR、Figma 还原、TDD 流程。新建 `skills/技能名/SKILL.md`。
|
|
15
|
+
- **判断标准**:「这件事每次写代码都要遵守吗?」→ 是 = 规则,否(只有特定场景才触发)= Skill。
|
|
12
16
|
|
|
13
17
|
## 语言与内容
|
|
14
18
|
|
|
@@ -41,12 +45,37 @@
|
|
|
41
45
|
- 禁止重复实现,发现重复必须提取封装。同一数据/配置只在一处维护。禁止硬编码数字。
|
|
42
46
|
- 前端:Tailwind CSS 禁止原生 CSS,尺寸单位必须 `rem` 禁止 `px`(1rem=16px)。
|
|
43
47
|
- 测试描述、断言使用中文。测试用例先主流程再边界情况。
|
|
48
|
+
- ⚠️ 代码中出现晦涩难懂的技术名词(如 X-Request-ID、反向代理、CORS、JWT、CSRF、幂等、熔断、降级等)时,必须附加中文注解。注解分两层:(1)先说明该名词是什么功能、解决什么问题;(2)再解释其中特殊因子/字段的具体作用。目的是让不熟悉该领域的人也能看懂代码逻辑,不要求已有背景知识。
|
|
44
49
|
|
|
45
50
|
## Go 规则
|
|
46
51
|
|
|
47
52
|
- 值传递优先,软删除用 `gorm.DeletedAt`(禁止 `*time.Time`)。
|
|
48
53
|
- 禁止无条件执行 GORM AutoMigrate,必须由开关控制,默认关闭。
|
|
49
54
|
|
|
55
|
+
## ⚠️ 数据库 DELETE 铁律(最高级别,所有写操作前必检)
|
|
56
|
+
|
|
57
|
+
- ⚠️ **DELETE 是数据库中唯一不可逆的写操作**(INSERT 可以删、UPDATE 可以回改,DELETE 执行后数据消失,只有备份能救)。因此 DELETE 的每一条都必须经过严格的「副作用范围检查」:
|
|
58
|
+
|
|
59
|
+
**副作用范围必须 ≤ 用户显式意图范围。**
|
|
60
|
+
|
|
61
|
+
也就是说:如果用户删了 A,代码只能删 A,绝不能顺便把 B、C、D 也删了。
|
|
62
|
+
|
|
63
|
+
- ⚠️ **每写一条 DELETE 语句,必须能在注释中回答以下三个问题**:
|
|
64
|
+
1. **删什么?** 精确到表名和筛选条件
|
|
65
|
+
2. **为什么在这里删?** 业务场景是什么(用户点了哪个按钮/执行了什么操作)
|
|
66
|
+
3. **最多影响多少行?** 如果用户操作 1 条记录,这条 DELETE 最多删几行?答案 ≠ 1 时,逻辑大概率有缺陷
|
|
67
|
+
|
|
68
|
+
- ⚠️ **写路径禁止「全量同步」语义**。典型的错误模式:
|
|
69
|
+
```sql
|
|
70
|
+
-- ❌ 危险:用「当前这次操作的数据」作为基准去删掉所有其他数据
|
|
71
|
+
DELETE FROM t WHERE id NOT IN (本次操作涉及的一条/几条id)
|
|
72
|
+
|
|
73
|
+
-- ✅ 安全:删除用户显式标记为「已删除」的记录
|
|
74
|
+
DELETE FROM t WHERE status = 'deleted' AND deleted_by = 当前用户
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- ⚠️ **清理过期数据/元数据时,DELETE 条件必须精确到「过期标记」字段**(如 `expired_at < NOW()`),不能依赖「不在某个列表中」这种间接条件。
|
|
78
|
+
|
|
50
79
|
## 禁止项
|
|
51
80
|
|
|
52
81
|
- ⚠️ AI 禁止自动执行格式化命令(`npm run format`、`prettier` 等)。
|
package/package.json
CHANGED
package/rules/global.md
CHANGED
|
@@ -9,6 +9,10 @@ name: "通用规则"
|
|
|
9
9
|
## ⚠️ 规则修改入口
|
|
10
10
|
|
|
11
11
|
- **新增、修改、删除规则,必须改 `AGENTS.base.md`(源文件),禁止直接改 `CLAUDE.md` 或 `AGENTS.md`**。改完后必须执行 `node merge.js sync` 重新生成输出文件。
|
|
12
|
+
- ⚠️ **新增行为/指令时,先判断该放规则还是 Skill**:
|
|
13
|
+
- **规则(Rule)**:始终生效的约束,如代码风格、命名规范、行为要求、注释规范。写入 `AGENTS.base.md`。
|
|
14
|
+
- **Skill**:多步骤操作流程,需按需调用,如部署、发 PR、Figma 还原、TDD 流程。新建 `skills/技能名/SKILL.md`。
|
|
15
|
+
- **判断标准**:「这件事每次写代码都要遵守吗?」→ 是 = 规则,否(只有特定场景才触发)= Skill。
|
|
12
16
|
|
|
13
17
|
## 语言与内容
|
|
14
18
|
|
|
@@ -41,12 +45,37 @@ name: "通用规则"
|
|
|
41
45
|
- 禁止重复实现,发现重复必须提取封装。同一数据/配置只在一处维护。禁止硬编码数字。
|
|
42
46
|
- 前端:Tailwind CSS 禁止原生 CSS,尺寸单位必须 `rem` 禁止 `px`(1rem=16px)。
|
|
43
47
|
- 测试描述、断言使用中文。测试用例先主流程再边界情况。
|
|
48
|
+
- ⚠️ 代码中出现晦涩难懂的技术名词(如 X-Request-ID、反向代理、CORS、JWT、CSRF、幂等、熔断、降级等)时,必须附加中文注解。注解分两层:(1)先说明该名词是什么功能、解决什么问题;(2)再解释其中特殊因子/字段的具体作用。目的是让不熟悉该领域的人也能看懂代码逻辑,不要求已有背景知识。
|
|
44
49
|
|
|
45
50
|
## Go 规则
|
|
46
51
|
|
|
47
52
|
- 值传递优先,软删除用 `gorm.DeletedAt`(禁止 `*time.Time`)。
|
|
48
53
|
- 禁止无条件执行 GORM AutoMigrate,必须由开关控制,默认关闭。
|
|
49
54
|
|
|
55
|
+
## ⚠️ 数据库 DELETE 铁律(最高级别,所有写操作前必检)
|
|
56
|
+
|
|
57
|
+
- ⚠️ **DELETE 是数据库中唯一不可逆的写操作**(INSERT 可以删、UPDATE 可以回改,DELETE 执行后数据消失,只有备份能救)。因此 DELETE 的每一条都必须经过严格的「副作用范围检查」:
|
|
58
|
+
|
|
59
|
+
**副作用范围必须 ≤ 用户显式意图范围。**
|
|
60
|
+
|
|
61
|
+
也就是说:如果用户删了 A,代码只能删 A,绝不能顺便把 B、C、D 也删了。
|
|
62
|
+
|
|
63
|
+
- ⚠️ **每写一条 DELETE 语句,必须能在注释中回答以下三个问题**:
|
|
64
|
+
1. **删什么?** 精确到表名和筛选条件
|
|
65
|
+
2. **为什么在这里删?** 业务场景是什么(用户点了哪个按钮/执行了什么操作)
|
|
66
|
+
3. **最多影响多少行?** 如果用户操作 1 条记录,这条 DELETE 最多删几行?答案 ≠ 1 时,逻辑大概率有缺陷
|
|
67
|
+
|
|
68
|
+
- ⚠️ **写路径禁止「全量同步」语义**。典型的错误模式:
|
|
69
|
+
```sql
|
|
70
|
+
-- ❌ 危险:用「当前这次操作的数据」作为基准去删掉所有其他数据
|
|
71
|
+
DELETE FROM t WHERE id NOT IN (本次操作涉及的一条/几条id)
|
|
72
|
+
|
|
73
|
+
-- ✅ 安全:删除用户显式标记为「已删除」的记录
|
|
74
|
+
DELETE FROM t WHERE status = 'deleted' AND deleted_by = 当前用户
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- ⚠️ **清理过期数据/元数据时,DELETE 条件必须精确到「过期标记」字段**(如 `expired_at < NOW()`),不能依赖「不在某个列表中」这种间接条件。
|
|
78
|
+
|
|
50
79
|
## 禁止项
|
|
51
80
|
|
|
52
81
|
- ⚠️ AI 禁止自动执行格式化命令(`npm run format`、`prettier` 等)。
|