# OES-WEB 开发流程 ## 开发环境搭建 1. 克隆仓库 2. 运行 `npm install` 3. 运行 `npm run dev` 启动开发服务器 4. 打开 http://localhost:5173 ## 分支策略 - `main` -- 生产就绪代码 - `develop` -- 功能集成分支 - `feature/*` -- 单个功能分支 - `fix/*` -- Bug 修复分支 分支命名: `feature/short-description` 或 `fix/issue-number-description` ## 提交规范 使用 Conventional Commits: - `feat: 添加新敌人类型` - `fix: 修复对角线移动碰撞检测` - `docs: 更新 GDD 新增能力系统` - `refactor: 提取物理计算到独立模块` - `test: 添加存档系统集成测试` ## 代码审查清单 - [ ] 所有测试通过 (`npm test`) - [ ] TypeScript 类型检查通过 (`npx tsc --noEmit`) - [ ] 没有 console.log 留在生产代码中 - [ ] 新功能有对应测试 - [ ] 性能: 游戏循环中无不必要对象分配 - [ ] 组件有 `type` 字段 ## 文件命名 - 组件: PascalCase (`PlayerEntity.ts`) - 工具: camelCase (`collisionDetection.ts`) - 资源: kebab-case (`enemy-sprite-sheet.png`) - 测试: `*.test.ts` 或 `*.spec.ts` ## 测试标准 - 所有游戏逻辑需要单元测试 (物理、技能计算、炼金组合) - 存档/读档需要集成测试 - 视觉/音频功能需要手动测试 - 合并前运行完整测试套件 ## 开发工作流 (AI 辅助) ### 功能开发 1. 在 GDD 中描述功能 2. 创建 feature 分支 3. 让 Claude Code 探索代码库并提出方案 4. 审批后实现并添加测试 5. 审查并迭代 ### Bug 修复 1. 描述症状 2. Claude Code 搜索相关代码 3. 提出修复方案和根因分析 4. 验证后提交 ### 重构 1. 陈述目标 ("让碰撞系统更易测试") 2. Claude Code 分析当前结构 3. 提出方案后再修改 4. 审批后执行