Files
inquiry_robot/.cursor/rules/coding-standards.mdc

39 lines
2.5 KiB
Plaintext

---
description: 结合 prompt/05 总控的代码规范;实现前必须自己读 00 与 05
alwaysApply: true
---
# 代码规范 = 提示词合同(全程)
本规则与 `prompt/05-总控提示词.md` 一致。用户不会 `@`。动手前助手必须自己打开并遵守:
| 场景 | 打开 |
|---|---|
| 目录 | `prompt/00-INDEX.md` |
| 总控 | `prompt/05-总控提示词.md` |
| Python | `prompt/06` + `14` |
| 主账 | `prompt/07` + `10` |
| 后台 | `prompt/08` |
| 企微 | `prompt/09` |
| 部署/环境 | `prompt/11` `12` `13` |
| 密钥(需要时才读) | `prompt/03`,禁止每次读、禁止写入 Git |
字段合同:新仓库里的 `inquiry-required-fields-v1.json`、`tms-dictionary-projection-v2.json`。没读不准写字段校验。
## 来自 05 的硬约束
- 功能与现网业务合同等价。主账 = JeecgBoot + 低代码(2026-09-12);不要单文件上帝模块。
- 后台与主账:Jeecg Vue + JeecgBoot;允许 Online/cgform 出询价相关生产页/API。库 `inquiry_robot`、并存端口 8180。禁止连现网 `jeecg-boot`/8080。
- 自然语言只交给模型。代码只做身份、Schema、类型、权限、状态、版本、唯一性、证据、幂等。
- 主账是六态/报价版本/权限 Owner。Graph 成功不能冒充主账成功。
- TMS 只经主账。智能体不直连 TMS、不写 MySQL 工单表。
- 企微是通道。发送成功 ≠ 业务成功。只用入站 `sender_id`;无则不入业务。询价应用与正式相同 `1000010`。运维 `1000014`。测试告警加 `[test]`。并存期不改回调、不双连 AIBOT。
- PG 运行账(含 checkpoint);MySQL 主账;Redis 短命协调;对象存储只存字节。
- 每条入站一个 RouteDecision、一个执行 Owner。
- 不许卡顿:回调/H5/健康检查快回;慢活进队列+多线程槽;LibreOffice 仅 1 槽;禁止全局大锁。
- 必须分模块、必须详细中文注释(文件头、公开函数、副作用、线程、为何这样写)。无注释不验收。密钥不准写进注释。
- `YTD_ENV=prod|test`,变量名对齐 `03`,取值对齐 `13`。禁止写死域名/端口/库名。
- 进程:一个主账(Jeecg)、一个智能体 HTTP、一个 Worker、一个 AIBOT 桥、一个后台。不要五个 Worker、四个 uvicorn、Redis 全局单例锁。
- 缺表缺字段:版本化迁移,只动 `inquiry_robot` / `inquiry_robot_runtime`。禁止动现网库(`jeecg-boot` / `ytd_runtime`)。
- 不要真实 TMS LOCK/RELEASE、不要按 userid 伪造 TMS、不要 `.env` 进 Git。