You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
6.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# global-rules
# =========================
# 1. 架构与代码规范(强约束)
# =========================
- 严格分层,不允许跨层调用:
后端Controller → Service → Mapper → Entity
前端pages → components → api → utils → store
- 命名统一:
DBsnake_case
JavacamelCase + PascalCase类
Vue组件PascalCase
权限module:feature:action必须与sys_menu一致
- 代码必须具备可维护性:
- 不允许过度抽象
- 不允许无需求扩展
- 禁止 magic number必须常量化
- 注释规则:
关键类/接口必须说明用途 + 入参出参 + 权限
复杂逻辑必须说明业务规则
# =========================
# 2. 数据与接口契约(强一致)
# =========================
- 所有数据结构必须来源PRD不得擅自修改字段/类型
- 接口必须先定义契约request/response/error code再实现
- 所有接口必须使用统一Response结构
- 所有异常必须标准化处理,不允许裸奔返回
# =========================
# 3. 安全与系统红线(禁止违规)
# =========================
- 禁止修改核心模块(权限/菜单/流程/字典/表单除非明确PRD授权
- 禁止自动修改数据库结构必须先输出SQL + 人工确认)
- 所有权限必须RBAC校验不得存在无权限接口
- 多租户数据必须严格隔离,禁止越权查询
- 高危操作必须包含:
二次确认 + 操作日志 + 事务控制 + 逻辑删除(禁止物理删除)
- 禁止自动执行终端命令rm/drop/git push -f等必须人工确认
- 禁止随意升级依赖或新增未确认依赖
# =========================
# 4. 交付闭环(必须执行)
# =========================
每个任务必须完整闭环:
1. 分析问题 / 明确需求
2. 输出修改方案
3. 代码实现(单文件优先)
4. 给出验证方式test / API / UI
5. 提交gitConventional Commits
- 必须生成测试用例(接口 / UI / 边界)
- 必须更新相关文档API / PRD / README
- 超过100行修改必须分段review
# =========================
# 5. 禁止占位与假功能
# =========================
- 禁止任何“占位UI / 敬请期待 / 未实现入口”
- 未实现功能 = 不渲染入口(菜单/按钮必须真实可执行)
- 所有交互必须可追溯到真实 API / Controller / IPC
# =========================
# 7. 配置与运行时单一真相SSOT
# =========================
- 禁止前后端/运行时双轨配置UI/DB/Runtime必须同源
- 所有可配置项必须具备三件套:
1) 启动参数
2) 注入策略
3) 页面回读验证
- 同一功能面只能有一种实现路径(禁止 JS + Native 双实现并存)
# =========================
# 8. 禁止静默失败P0
# =========================
- 所有 async 必须:
- log error
- 用户可见错误提示
- 可观测指标记录
- 禁止空 catch / 吞异常
- 桌面端与打包态必须分别验证dev ≠ production
# =========================
# 9. 接口与数据库契约优先P0
# =========================
- 必须先定义接口契约request/response/error code再编码
- 数据结构必须来自PRD不得随意新增字段
- JSON字段类型必须统一禁止同字段多类型
- DB变更必须通过 migration不允许代码先行
- 查询必须分页,禁止 findAll 默认全表
# =========================
# 10. 前端交互稳定性规则P1
# =========================
- 弹窗/下拉必须显式控制生命周期禁止纯CSS状态
- 所有操作必须具备:
loading状态 + 防重复提交 + 成功/失败反馈
- 列表操作禁止全量刷新(必须局部更新)
- 编辑/授权类操作必须回显数据
# =========================
# 11. 禁止重复实现与碎片化开发P1
# =========================
- 新功能必须先检查是否已有类似Service/Util
- 相似能力必须合并实现,不允许重复造轮子
- 禁止一个功能拆成多个无意义Step往返开发
# =========================
# 12. 运行时与系统稳定性P1
# =========================
- 所有系统必须具备明确状态机store/lifecycle
- 启动/退出必须避免异步竞态(必须可追踪)
- 探针/重试必须有限制(禁止无限重试/全量扫描)
# =========================
# 13. 环境与依赖显式管理P1
# =========================
- 所有依赖必须显式声明main/renderer/preload分离
- 禁止隐式依赖或运行时报错依赖缺失
- 打包态必须有 fail-fast 检查
# =========================
# 14. 交付闭环P1
# =========================
每个功能必须完成:
1. 实现
2. 冒烟测试
3. 构建验证
4. 至少1条E2E路径
5. commit记录
- 禁止只开发不验证
- 禁止 dev 成功但 prod 未验证
# =========================
# 15. DB与迁移安全P0
# =========================
- 所有结构变更必须 migration
- 必须支持空库双跑验证
- 禁止代码引用未存在字段
- 唯一键变更必须明确 delete → flush → insert
# =========================
# 16. 返工驱动规则(关键)
# =========================
- 同一问题修复 ≥2次 → 必须升级为架构规则
- ≥3次 → 必须进入 global-rules
- 重复bug必须转为设计问题处理而不是补丁修复
# =========================
# 18. Playwright page.evaluateP0
# =========================
- **禁止**向 `page.evaluate` / `waitForFunction` / `locator.evaluate` 传入经 tsx/esbuild 编译的**函数引用**;构建器会注入 `__name` 等 helper浏览器上下文未定义 → `ReferenceError: __name is not defined`
- 浏览器脚本须为**纯字符串**(如 `workers/rpa/kernel/browser-scripts.ts`、`workers/rpa/fix-place/browser-eval-scripts.ts`),写法 `(arg) => { ... }`,调用 `page.evaluate(script, arg)`
- 新增 RPA 浏览器逻辑时先加字符串脚本 + 单测断言不含 `__name`
# =========================
# 17.# 核心响应协议:深度思考优先
在回答任何技术问题、编写代码或调试前,**必须**严格执行以下思维流程,禁止直接给出直觉性答案:
1. **需求解构**:先分析用户真实意图、技术栈约束及潜在边界条件,而非仅看字面问题。
2. **方案推演**在内部评估至少2种可行路径权衡复杂度、性能与可维护性选择最优解。
3. **风险预判**主动识别当前方案可能的坑点如并发安全、内存泄漏、API兼容性并提前规避。
4. **验证闭环**:代码生成后需在逻辑上自洽检查,确保无语法错误、符合最佳实践且能真正解决问题。
> ⚠️ 执行要求:以上思考过程应内化于推理阶段,无需向用户展示冗长的思考标签。最终输出必须是经过验证的、可直接落地的精准答案。若问题模糊,先追问关键信息再作答,绝不猜测。
# =========================