# 开发规范

## 版本信息
| 版本 | 日期 | 描述 | 作者 |
|------|------|------|------|
| 1.0 | 2025-09-28 | 从CLAUDE.md和.roo/rules迁移开发规范 | Claude Code |

## 开发环境说明

### 多八多云端开发容器环境
- **Node.js版本**: 20.19.2
- **数据库**: MySQL 8 (默认数据库: d8dai)
- **缓存**: Redis 7
- **对象存储**: MinIO (默认存储桶: d8dai)
- **连接配置**: 所有服务使用默认参数连接，正式环境参数相同
- **网络访问**: 默认开放8080端口供外网访问

## 项目标准和规范

本项目遵循以下开发规范，所有规范文件位于 `.roo/rules/` 目录中：

### 基础规范
- [通用开发规范](../.roo/rules/01-general.md) - 项目结构、技术栈、目录组织
- [TypeScript规范](../.roo/rules/02-typescript.md) - 严格模式、类型检查
- [模块化规范](../.roo/rules/03-modules.md) - 模块组织原则

### API开发规范
- [API开发规范](../.roo/rules/04-api.md) - DTO定义、API响应格式
- [数据库规范](../.roo/rules/05-database.md) - 迁移管理、实体映射
- [服务与依赖注入规范](../.roo/rules/06-service-di.md) - 依赖注入原则

### 高级开发规范
- [OpenAPI规范](../.roo/rules/07-openapi.md) - Hono OpenAPI集成规范
- [RPC调用规范](../.roo/rules/08-rpc.md) - 类型安全RPC调用
- [日志规范](../.roo/rules/09-logging.md) - 前后端统一日志管理

### 实体和CRUD规范
- [实体定义规范](../.roo/rules/10-entity.md) - 数据库实体规范
- [管理前端规范](../.roo/rules/11-admin-frontend.md) - 管理后台页面开发
- [自定义CRUD规范](../.roo/rules/11-custom-crud.md) - 复杂业务逻辑CRUD
- [实体创建规范](../.roo/rules/11-entity-creation.md) - 新实体创建流程
- [首页前端规范](../.roo/rules/11-home-frontend.md) - 前台页面开发
- [标准CRUD规范](../.roo/rules/11-standard-crud.md) - 简单数据模型CRUD
- [通用CRUD规范](../.roo/rules/12-generic-crud.md) - 通用CRUD实现
- [CRUD筛选规范](../.roo/rules/14-crud-filtering.md) - 增强筛选功能
- [用户追踪规范](../.roo/rules/15-user-tracking.md) - 操作人ID字段配置

## Claude Code开发工具配置

### 包管理器
- 使用 `pnpm` 作为包管理器

### 类型检查
- 检查类型错误直接用 `pnpm typecheck` 检查整个项目，不要单独检查单个文件

### 数据库访问
- 数据库在同一容器组的另一个容器中，需要运行 `mysql -h 127.0.0.1 -u root` 来访问

### 测试相关
- **Vitest配置**: 只有 `console.debug` 会显示，其他的都屏蔽了
- **Mock导入**: 用 `import` 来配合 `vi.mocked`，而不是 `require`
- **E2E测试**: 平常只运行 `pnpm test:e2e:chromium` 就行
- **E2E调试**: 测试失败时先查看页面结构 `test-results/**/error-context.md`

### 前端开发
- 前端使用 `hono/client` 的 `hc` RPC 调用，不是直接 `fetch`

### 项目结构
- BMAD核心目录在 `.bmad-core`
- 必须用中文回答