# ghb-base — AI 开发总纲 > coverage: 聚合版,可直接粘贴到 Kimi / DeepSeek / GPT 等无自动加载的 AI 对话中。自动加载工具(Claude Code / Cursor / Codex / Copilot / Windsurf)会从对应入口文件读取。 > > 所有 AI 编码助手首先读本文件。读完本文件后,必须继续读取 `.claude/` 目录下的全部规则文件,再开始编写代码。 ## 项目信息 - **名称**:ghb-base(基于 JeecgBoot 3.9.2 精简) - **技术栈**:Spring Boot 3.5.5 / Java 17 / MyBatis-Plus / Shiro+JWT / MySQL / Redis - **包名**:`com.ghb.base` | 数据库:`ghb_base` | 上下文路径:`/ghb` - **前端**:Vue 3 + Vite + Ant Design Vue + TypeScript ## 模块 ``` ghb-base-parent/ ├── ghb-base-core/ # 核心框架(不改) ├── ghb-module-system/ # 租户/用户/角色/菜单/字典/日志(不改) ├── ghb-module-business/ # 业务代码 ← 写这里 └── ghb-server-cloud/ # 微服务(网关/Nacos/监控) ``` ## 必读规则(全部读完再写代码) 1. `.claude/contract.md` — 返回格式 · 分页 · 状态值 · 契约生命周期 · 同步铁律 2. `.claude/backend.md` — 分层 · 命名 · 注释 · CRUD 模板 · 禁止清单 · 检查表 3. `.claude/frontend.md` — 样式 · 命名 · 注释 · 组件铁律 · 页面模板 · 检查表 4. `.claude/database.md` — 表设计 · 字段类型 · 索引 · 必有字段 · 检查表 5. `.claude/git.md` — 分支命名 · commit 格式 · AI 提交标注 · 禁止操作 6. `.claude/security.md` — 认证 · 数据权限 · 敏感信息 · 文件上传 · 日志 7. `.claude/testing.md` — 测试要求 · 错误码 · 全局异常处理 · 检查表 8. `.claude/encoding.md` — 字符编码(UTF-8 无 BOM · 禁 GBK · 批量改写须 UTF-8 感知) ## 接口契约 契约文件在 `contract/` 目录(独立 git 仓库,前后端 submodule 引用)。修改接口前必须先更新契约。 ## 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ - Node.js 18+ / pnpm ```bash # 后端启动 cd test-module-system/test-system-start mvn spring-boot:run -Pdev # 前端启动 cd ghb-frontend pnpm install pnpm dev ``` ## 多工具兼容 | 工具 | 入口文件 | 操作 | |------|----------|------| | Claude Code | `CLAUDE.md` | 自动加载,无需操作 | | Cursor | `.cursorrules` | 自动加载,无需操作 | | Codex / OpenCode | `AGENTS.md` | 自动加载,无需操作 | | GitHub Copilot | `.github/copilot-instructions.md` | 自动加载,无需操作 | | Windsurf | `.windsurfrules` | 自动加载(把 CLAUDE.md 复制一份改名为 .windsurfrules) | | **Kimi / DeepSeek / GPT** | 无自动 | **手动粘贴**:把本文件 + `.claude/` 全部内容一次性贴到对话开头 | | **人工开发** | 无自动 | 阅读 `开发规范-人工版.md`(同级目录) | --- ## 审查机制 — 怎么检查代码是否合规 ### 自动化检查(提交前自动跑) ```bash # 后端代码检查 mvn checkstyle:check # Java 代码风格 mvn test # 单元测试 # 前端代码检查 pnpm lint # ESLint pnpm stylelint # 样式检查 # 数据库 SQL 检查 # 人工 review:金额字段是不是 DECIMAL、有没有 COMMENT、有没有 create_time ``` ### AI 产出专项检查 | 检查项 | 怎么查 | 不合格的表现 | |--------|--------|-------------| | 返回值是否包装 | `grep -r "return [^R]" --include="*.java" | grep -v Result` | 出现裸 `return data;` | | 手写 SQL 是否带租户 | `grep -r "@Select" --include="*.java"` | SQL 里没有 `tenant_id` | | Controller 是否写了业务逻辑 | 人工 review Controller 方法体 | 超过 20 行或有 `if/else` 嵌套 | | Commit 是否标注 AI | `git log --oneline -20` | 没有 `[AI: xxx]` 标记 | | 是否包含测试 | `git diff --stat` 看是否有测试文件 | 新功能没测试类 | ### PR Review 必查清单 ``` □ 接口变更 → contract/ 目录有对应更新 □ 返回格式 → 全部用 Result 包装 □ 手写 SQL → 有 tenant_id 条件 □ 新增表 → 有 create_time / update_time / COMMENT □ 金额字段 → 类型是 DECIMAL □ 硬编码 → 无魔法数字、无裸色值、无裸字号 □ Commit → 格式正确,AI 代码有标注 □ 测试 → 新功能有测试代码 ``` ### 常见违规信号 | 信号 | 可能的问题 | |------|-----------| | `return data;`(裸返回) | 没读规则 | | `@Select("SELECT * FROM xxx WHERE ...")` 缺 tenant_id | 数据泄露风险 | | 类名超过 35 字符 | 没缩写 | | `color: #` 硬编码 | 没读前端规则 | | `git commit -m "update"` | 没读 Git 规则 | | Controller 超过 100 行 | 业务逻辑泄漏到接口层 |