@routerhub/agent-rules 1.5.5 → 1.5.10
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 +7 -1
- package/package.json +1 -1
- package/rules/devops.md +0 -13
- package/rules/frontend.md +0 -58
- package/rules/global.md +0 -26
- package/rules/go-backend.md +0 -15
package/AGENTS.base.md
CHANGED
|
@@ -25,6 +25,12 @@
|
|
|
25
25
|
1. 项目私有规则(AGENTS.private.md)
|
|
26
26
|
2. 基础规则(此文件)
|
|
27
27
|
|
|
28
|
+
## 截图规范
|
|
29
|
+
|
|
30
|
+
- 当用户要求截图时,必须截取整页(full page),不得只截可视区域。
|
|
31
|
+
- 截图结果必须包含当前页面 URL(地址栏可见或在截图说明中明确写出完整 URL)。
|
|
32
|
+
- 在截图上添加箭头、标注、提示文字等注释时,必须放在页面空白区域,不得覆盖页面原有内容(文字、按钮、表格数据等)。
|
|
33
|
+
|
|
28
34
|
<!-- @domain: frontend -->
|
|
29
35
|
|
|
30
36
|
## 文件约束
|
|
@@ -71,7 +77,7 @@
|
|
|
71
77
|
## 测试
|
|
72
78
|
|
|
73
79
|
- 测试描述、断言使用中文,覆盖中文场景;充值类测试默认用充值 1 的数据。
|
|
74
|
-
-
|
|
80
|
+
- 用户明确要求由代理自行执行自动化测试时,允许使用无头浏览器进行测试与验证。
|
|
75
81
|
- 写完业务后执行 `pnpm run test:e2e:ui`,告知开发者对应测试用例名称;通过后打开 UI 供手动验证。
|
|
76
82
|
- 端口被占用时自动切换新端口。
|
|
77
83
|
|
package/package.json
CHANGED
package/rules/devops.md
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "DevOps 部署规则"
|
|
3
|
-
applyTo: ["**/Dockerfile","**/Dockerfile.*","**/docker-compose*.yml","**/docker-compose*.yaml","**/*.sh","**/.gitlab-ci.yml","**/.github/workflows/*.yml","**/.github/workflows/*.yaml"]
|
|
4
|
-
outputName: "devops"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Docker 与部署
|
|
8
|
-
|
|
9
|
-
- 默认本地 `docker build`,构建后 `docker push` 到 `ghcr.io`,推送前确保正确 tag。
|
|
10
|
-
- 部署时打镜像 tag 必须对项目内所有服务/镜像统一打 tag,无论该镜像是否有代码改动;确保所有镜像版本号一致后再发版。
|
|
11
|
-
- 部署通过 Portainer 管理界面操作,禁止 SSH 手动执行 docker 命令;地址和账号配置在 `AGENTS.private.md` 或环境变量中,禁止硬编码。
|
|
12
|
-
- 始终通过 Portainer API 更新 Stack 环境变量触发重新部署,不要 SSH 手动操作 Portainer 管理的容器。
|
|
13
|
-
- 测试环境和生产环境都通过 Portainer 部署,严禁 SSH 手动操作。测试环境是 Edge Agent(endpoint 7, stack 31),tunnel 按需建立、空闲自动断开,调 API 前必须先请求 `/endpoints/7/docker/info` 预热 tunnel;推荐直接用 `python3 portainer-update-stack.py <VERSION>` 部署(内置 tunnel 预热 + 重试)。生产环境是 Docker API(endpoint 8, stack 26),`APP_VERSION` 三服务共用。
|
package/rules/frontend.md
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "前端规则"
|
|
3
|
-
applyTo: ["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.vue","**/*.css","**/*.scss"]
|
|
4
|
-
outputName: "frontend"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 文件约束
|
|
8
|
-
|
|
9
|
-
- 不随意修改核心业务文件和 API 相关代码,不编写或修改 `README.md`。
|
|
10
|
-
- TypeScript 类型优先复用 `typings.d.ts`,不存在时再自定义。
|
|
11
|
-
|
|
12
|
-
## 命名与类型
|
|
13
|
-
|
|
14
|
-
- 驼峰命名(小驼峰/大驼峰),禁止下划线;变量至少两个单词。
|
|
15
|
-
- 禁止 `as` 和 `any`;`props` 类型优先复用,不重复定义。
|
|
16
|
-
|
|
17
|
-
## 代码风格
|
|
18
|
-
|
|
19
|
-
- 函数式编程,不写 `class`,不写 `try/catch`。
|
|
20
|
-
- 禁止重复实现:复用现有函数/组件/配置,发现重复必须提取封装为公共方法。
|
|
21
|
-
- 同一数据/配置只在一处维护,其余通过引用获取,改一处全局生效。
|
|
22
|
-
- 禁止硬编码数字;常量/枚举定义在 `Const.ts` 或 `constants.ts`,`tab` 索引统一使用常量,时间用 `dayjs`。
|
|
23
|
-
- 遵循 SOLID 原则,避免过度设计;数据回显优先用展开运算符(`...`)。
|
|
24
|
-
- 复用组件通过 `fromType`(值为当前页面名)区分来源,内部差异逻辑基于 `fromType` 分支。
|
|
25
|
-
|
|
26
|
-
## 样式(Tailwind CSS)
|
|
27
|
-
|
|
28
|
-
- 统一 Tailwind CSS,禁止新增 `*.module.scss`、`*.module.css`、`.css` 文件(历史文件可保留)。
|
|
29
|
-
- 项目未集成 Tailwind 时,先完成安装配置再开发。
|
|
30
|
-
- 新增样式通过 utility classes 在 JSX/TSX 中编写;不满足时优先 `tailwind.config` extend → `@apply` 封装 → 行内 `style`。
|
|
31
|
-
- 复杂/重复样式提取为 Tailwind 组件类或 React 组件,避免工具类堆砌。
|
|
32
|
-
- 类名小驼峰,禁止 `span` 标签选择器。
|
|
33
|
-
|
|
34
|
-
## 组件复用
|
|
35
|
-
|
|
36
|
-
- 优先复用已有组件,能通过 `props` 定制就不建新组件;新功能尽量封装为可复用组件。
|
|
37
|
-
|
|
38
|
-
## 前端 API 规范
|
|
39
|
-
|
|
40
|
-
- API 请求严格使用 OpenAPI 生成的方法,禁止手写请求或直接拼接路径。
|
|
41
|
-
- 接口变更后先更新 OpenAPI 定义并重新生成 API 代码,再进行业务开发。
|
|
42
|
-
|
|
43
|
-
## 依赖与构建
|
|
44
|
-
|
|
45
|
-
- 依赖安装统一 `pnpm`,禁止 `npm install`/`yarn install`。
|
|
46
|
-
- 写完代码先 `npm run format`,再 `npm run build`,构建通过才可发版。
|
|
47
|
-
|
|
48
|
-
## 测试
|
|
49
|
-
|
|
50
|
-
- 测试描述、断言使用中文,覆盖中文场景;充值类测试默认用充值 1 的数据。
|
|
51
|
-
- 默认使用真实接口数据,禁止 mock;仅明确同意时允许模拟数据。
|
|
52
|
-
- 写完业务后执行 `pnpm run test:e2e:ui`,告知开发者对应测试用例名称;通过后打开 UI 供手动验证。
|
|
53
|
-
- 端口被占用时自动切换新端口。
|
|
54
|
-
|
|
55
|
-
## 错误日志
|
|
56
|
-
|
|
57
|
-
- 用 `console.error` 记录错误(含函数名/模块名上下文),禁止 `console.log` 输出错误。
|
|
58
|
-
- 提交前移除调试日志和临时代码。
|
package/rules/global.md
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "通用规则"
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## 语言与内容
|
|
6
|
-
|
|
7
|
-
- 始终使用中文回答,代码注释使用中文,每行代码配中文注释。
|
|
8
|
-
- 页面 UI 内容(按钮、字段名、提示等)全部英文;如需中文在 `AGENTS.private.md` 中声明。
|
|
9
|
-
|
|
10
|
-
## Git 规范
|
|
11
|
-
|
|
12
|
-
- 分支用 Git Flow(`feature/`、`bugfix/`、`hotfix/`、`refactor/`、`chore/`、`docs/`、`test/`),英文小写中划线分隔。
|
|
13
|
-
- commit 信息必须中文,禁止 `git push --force`。
|
|
14
|
-
|
|
15
|
-
## 安全
|
|
16
|
-
|
|
17
|
-
- 未明确授权不操作生产环境(指令需含"生产"/"线上"/"prod"/"production"),操作前二次确认。
|
|
18
|
-
|
|
19
|
-
## 需求文档
|
|
20
|
-
|
|
21
|
-
- 新需求先在 `docs/` 写 MD 文档,含:目标、范围、功能要求、验收标准。
|
|
22
|
-
|
|
23
|
-
## 优先级
|
|
24
|
-
|
|
25
|
-
1. 项目私有规则(AGENTS.private.md)
|
|
26
|
-
2. 基础规则(此文件)
|
package/rules/go-backend.md
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Go 后端规则"
|
|
3
|
-
applyTo: ["**/*.go"]
|
|
4
|
-
outputName: "go-backend"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Go 语言规则
|
|
8
|
-
|
|
9
|
-
- 优先值传递与局部变量生命周期控制,避免内存逃逸;无必要不返回局部变量指针。
|
|
10
|
-
- 所有删除操作必须使用软删除机制;`DeletedAt` 字段类型必须用 `gorm.DeletedAt`,禁止用 `*time.Time`(后者不实现 `DeleteClausesInterface`,会导致硬删除)。
|
|
11
|
-
|
|
12
|
-
## GORM Model 规范
|
|
13
|
-
|
|
14
|
-
- `DeletedAt` 字段必须使用 `gorm.DeletedAt` 类型,严禁使用 `*time.Time`。`*time.Time` 不会触发 GORM v2 的软删除机制,会导致 `Delete()` 执行物理删除(DELETE FROM)而非软删除(UPDATE SET deleted_at)。
|
|
15
|
-
- 新建 Model 时,优先嵌入已有的公共基础结构体(如包含 ID、CreatedAt、UpdatedAt、DeletedAt 的 BaseModel),避免各 Model 独立定义这些字段导致类型不一致。
|