# 多线程协作规则

## 总原则

这个项目可以多开线程协作，但必须按责任边界工作。

主线程负责：

- 决定路线
- 拆任务
- 分配线程
- 审查结果
- 最终集成

子线程负责：

- 只处理一个明确任务
- 只修改授权范围内的文件
- 保持修改小而可验证
- 完成后清楚汇报

## 必须遵守

1. 不要让多个线程同时改同一个大文件，尤其是 `src/components/GameClient.tsx` 和 `src/game/engine.ts`。
2. 子线程不能顺手重构无关模块。
3. 子线程不能修改 `.env`、密钥、数据库文件或生成音频缓存，除非任务明确要求。
4. 新增规则必须优先补测试。
5. 修改 AI 输出结构时，必须同时检查 schema、fallback 和测试脚本。
6. 修改 UI 后，需要手动跑一局或至少说明没有手动验证的原因。
7. 每次任务结束都要写清楚验证命令。

## 子线程交付格式

每个子线程完成后，用这个格式汇报：

```text
完成内容：
- ...

修改文件：
- ...

验证：
- npm run test
- npm run lint

未解决风险：
- ...
```

## 主线程集成清单

集成任何子线程结果前，主线程检查：

- 是否越界修改了文件
- 是否引入新依赖
- 是否影响持久化状态格式
- 是否新增或更新测试
- 是否能解释用户可感知变化
- 是否需要更新 README 或 docs

## 线程命名建议

- `main`：主线程，负责决策和集成。
- `frontend`：前端拆分和体验。
- `rules-engine`：规则引擎和测试。
- `ai-behavior`：AI 行为、策略和记忆。
- `ai-speech`：LLM、发言、语音和 fallback。
- `verification`：测试、模拟、回归。
- `docs`：文档、验收清单、已知限制。
