@routerhub/agent-rules 1.5.115 → 1.5.117

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
@@ -31,6 +31,7 @@
31
31
  2. 实际 DNS 解析(`dig`/`nslookup`)
32
32
  3. 云平台控制台(Cloud Run 域名映射、GCLB、Ingress 等)
33
33
  - ⚠️ **上述来源都找不到的,就写「待确认」或留空,禁止自行补全。** 错误的推断值比留空危害更大——留空会在运行时报错、立刻暴露;错误的推断值可能静默运行数月后才被发现(如请求打到了错误的环境),排查成本极高。
34
+ - ⚠️ **代码中使用环境变量占位符(如 `process.env.XXX`)时,必须同时确认测试/生产部署脚本(或配置中心)已提供该变量的具体值。** 禁止只写占位符不落地——代码能编译不代表部署后取值非空。具体值的存放规则:敏感值(密钥、Token 等)必须配到 Nacos 配置中心,禁止写进部署脚本;非敏感值(域名、地址、端口、外部服务 URL 等)写入测试/生产各自的部署脚本。部署脚本中找不到的值仍按本规则写「待确认」或留空,禁止自行补全。
34
35
 
35
36
  ## ⚠️ 排查与协作铁律
36
37
 
@@ -161,6 +162,21 @@
161
162
  - 值传递优先,软删除用 `gorm.DeletedAt`(禁止 `*time.Time`)。
162
163
  - 禁止无条件执行 GORM AutoMigrate,必须由开关控制,默认关闭。
163
164
 
165
+ ## ⚠️ 数据存储选型铁律(Redis vs PostgreSQL)
166
+
167
+ - ⚠️ **能交给 Redis 的写入就交给 Redis,避免用 PostgreSQL 硬扛高频写入**(PG 面向持久化与复杂查询,高频写入场景性能差)。但 Redis 与 PG 不是同类存储,**必须区分场景使用,禁止无脑替代**。
168
+ - **Redis 优先的场景**(高频写、可容忍丢失、可重建的数据):
169
+ - 缓存(接口缓存、配置缓存、热点数据)
170
+ - 计数器、排行榜、PV/UV、点赞数等
171
+ - 限流(滑动窗口、令牌桶)、分布式锁
172
+ - 会话/Session、验证码等短时效数据(天然依赖 TTL 过期)
173
+ - **PostgreSQL 保留的场景**(不能丢、要按条件查、要事务):
174
+ - 业务主体数据(订单、用户、商品、账单等需要事务与持久化的数据)
175
+ - 需要复杂 SQL 查询、联表、报表统计的数据
176
+ - 需要长期保留、生命周期远大于缓存时长的数据
177
+ - ⚠️ **判定标准**:落库前先问三个问题——「这份数据丢了行不行?」「需不需要按条件查?」「需不需要事务?」。只要有一个答案是「需要/不行」,就必须用 PostgreSQL;三个都是「可以丢 / 不用查 / 不用事务」,才优先用 Redis。
178
+ - ⚠️ **Redis 只能做加速层,禁止作为唯一数据源承载不可重建的业务数据**——默认未开启持久化时进程重启数据即丢,Redis 中的数据必须能由上游(数据库/消息队列)重建。
179
+
164
180
  ## ⚠️ 数据库 DELETE 铁律(最高级别,所有写操作前必检)
165
181
 
166
182
  - ⚠️ **DELETE 是数据库中唯一不可逆的写操作**(INSERT 可以删、UPDATE 可以回改,DELETE 执行后数据消失,只有备份能救)。因此 DELETE 的每一条都必须经过严格的「副作用范围检查」:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routerhub/agent-rules",
3
- "version": "1.5.115",
3
+ "version": "1.5.117",
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
@@ -31,6 +31,7 @@ name: "通用规则"
31
31
  2. 实际 DNS 解析(`dig`/`nslookup`)
32
32
  3. 云平台控制台(Cloud Run 域名映射、GCLB、Ingress 等)
33
33
  - ⚠️ **上述来源都找不到的,就写「待确认」或留空,禁止自行补全。** 错误的推断值比留空危害更大——留空会在运行时报错、立刻暴露;错误的推断值可能静默运行数月后才被发现(如请求打到了错误的环境),排查成本极高。
34
+ - ⚠️ **代码中使用环境变量占位符(如 `process.env.XXX`)时,必须同时确认测试/生产部署脚本(或配置中心)已提供该变量的具体值。** 禁止只写占位符不落地——代码能编译不代表部署后取值非空。具体值的存放规则:敏感值(密钥、Token 等)必须配到 Nacos 配置中心,禁止写进部署脚本;非敏感值(域名、地址、端口、外部服务 URL 等)写入测试/生产各自的部署脚本。部署脚本中找不到的值仍按本规则写「待确认」或留空,禁止自行补全。
34
35
 
35
36
  ## ⚠️ 排查与协作铁律
36
37
 
@@ -161,6 +162,21 @@ name: "通用规则"
161
162
  - 值传递优先,软删除用 `gorm.DeletedAt`(禁止 `*time.Time`)。
162
163
  - 禁止无条件执行 GORM AutoMigrate,必须由开关控制,默认关闭。
163
164
 
165
+ ## ⚠️ 数据存储选型铁律(Redis vs PostgreSQL)
166
+
167
+ - ⚠️ **能交给 Redis 的写入就交给 Redis,避免用 PostgreSQL 硬扛高频写入**(PG 面向持久化与复杂查询,高频写入场景性能差)。但 Redis 与 PG 不是同类存储,**必须区分场景使用,禁止无脑替代**。
168
+ - **Redis 优先的场景**(高频写、可容忍丢失、可重建的数据):
169
+ - 缓存(接口缓存、配置缓存、热点数据)
170
+ - 计数器、排行榜、PV/UV、点赞数等
171
+ - 限流(滑动窗口、令牌桶)、分布式锁
172
+ - 会话/Session、验证码等短时效数据(天然依赖 TTL 过期)
173
+ - **PostgreSQL 保留的场景**(不能丢、要按条件查、要事务):
174
+ - 业务主体数据(订单、用户、商品、账单等需要事务与持久化的数据)
175
+ - 需要复杂 SQL 查询、联表、报表统计的数据
176
+ - 需要长期保留、生命周期远大于缓存时长的数据
177
+ - ⚠️ **判定标准**:落库前先问三个问题——「这份数据丢了行不行?」「需不需要按条件查?」「需不需要事务?」。只要有一个答案是「需要/不行」,就必须用 PostgreSQL;三个都是「可以丢 / 不用查 / 不用事务」,才优先用 Redis。
178
+ - ⚠️ **Redis 只能做加速层,禁止作为唯一数据源承载不可重建的业务数据**——默认未开启持久化时进程重启数据即丢,Redis 中的数据必须能由上游(数据库/消息队列)重建。
179
+
164
180
  ## ⚠️ 数据库 DELETE 铁律(最高级别,所有写操作前必检)
165
181
 
166
182
  - ⚠️ **DELETE 是数据库中唯一不可逆的写操作**(INSERT 可以删、UPDATE 可以回改,DELETE 执行后数据消失,只有备份能救)。因此 DELETE 的每一条都必须经过严格的「副作用范围检查」: