# 质量契约 (Quality Contract)

## 概述
本文档定义 eskin-model-player 项目的质量标准和交付要求。

## 门控检查

### Pre-commit（提交前）
| 检查项 | 命令 | 必须通过 |
|--------|------|----------|
| 类型检查 | `cargo check` | ✅ |
| Lint | `cargo clippy -- -D warnings` | ✅ |
| 单元测试 | `cargo test` | ✅ |

### Pre-push（推送前）
| 检查项 | 命令 | 必须通过 |
|--------|------|----------|
| Release 构建 | `cargo build --release` | ✅ |
| 完整测试 | `cargo test --all` | ✅ |

### 代码审查规则
- ❌ 禁止裸 `unwrap()` — 使用 `expect("原因")` 或 `?` 运算符
- ❌ 禁止 `todo!()` / `unimplemented!()` — 生产代码必须完整实现

## 质量指标
| 指标 | 标准 |
|------|------|
| 圈复杂度 | ≤ 15 |
| 文件行数 | ≤ 500 行 |
| 函数行数 | ≤ 80 行 |

## 交付承诺
1. **诚实交付**：所有验证必须真实运行，未验证项必须明确列出
2. **逐步验证**：每完成一步，运行相关验证命令
3. **知识沉淀**：将经验写入 AGENTS.md 和 TOOLS.md
