2.9 KiB
2.9 KiB
项目工程规则
版本:2.0
更新时间:2026-03-25
本规则是当前项目的真实工程约束,不是泛化建议。
1. 基本原则
- 结论必须可验证,不能靠口头“已完成”。
- 优先真实闭环,拒绝 fake success、临时掩盖和只过局部样例。
- 任何上线结论都必须区分:
- 浏览器级真实验证
- OS 级自动化
- 外部交付治理证据
2. 后端规则
2.1 运行时安全
- 非测试代码禁止保留
panic作为常规失败路径。 - 配置不合法时应在启动期失败,不要运行后再暴露风险。
- 外部依赖缺失时必须显式禁用能力或启动失败,不能返回假成功。
2.2 错误处理
- 必须保留真实错误语义,不能吞错。
- 优先使用显式错误分类:
- 例如 rate limit
- validation
- internal failure
- 禁止长期依赖字符串子串判断错误类型。
2.3 分层设计
- service 层依赖接口能力,不依赖具体 repository 类型断言。
- repository 负责持久化细节,service 负责业务编排和错误分级。
- 外部副作用必须 fail closed,并处理回滚。
2.4 安全与配置
- 敏感值不得硬编码到配置模板。
- release 模式必须限制:
- 占位密钥
- localhost OAuth 回调
*CORS 放行- 不安全 JWT 配置
3. 前端规则
3.1 浏览器行为
- 原生弹窗和 popup 不是“可以接受的小问题”,而是验收失败信号。
- 必须阻断并记录:
alertconfirmpromptopen
3.2 主链路要求
- 登录页、后台主导航、路由守卫、认证状态恢复必须进入真实浏览器回归。
- 认证能力展示必须跟随后端
capabilities,不能前端硬编码。
3.3 smoke 边界
smoke只允许存在于测试或诊断层。- 任何产品运行时逻辑都不得依赖
smoke。
4. 验证规则
4.1 后端最低门槛
go test ./... -count=1
go vet ./...
go build ./cmd/server
4.2 前端最低门槛
cd frontend/admin
npm.cmd run lint
npm.cmd run build
4.3 真实浏览器最低门槛
以下改动必须执行:
cd frontend/admin
npm.cmd run e2e:full:win
适用改动:
- 认证
- 会话
- OAuth
- 登录页
- 路由守卫
- 主导航
window防线- 用户主流程
5. 文档规则
- 真实状态变化后必须更新
docs/status/REAL_PROJECT_STATUS.md。 - 团队长期规则变化后必须更新本文件和
docs/team/PRODUCTION_CHECKLIST.md。 - 形成阶段性经验后必须沉淀到
docs/team/PROJECT_EXPERIENCE_SUMMARY.md。
6. 禁止项
- 禁止“只跑单个用例就宣布收口”。
- 禁止“因为环境受限就把诊断脚本包装成主验收路径”。
- 禁止“为了通过测试保留运行时 mock provider”。
- 禁止“服务层通过具体仓储断言完成业务”。
- 禁止“因为终端乱码就把乱码字面量继续扩散到业务逻辑”。