## 通用开发原则

以下原则适用于所有代码变更：

1. **Guard > Memory**: 如果一件事靠"记住规则"维护，它一定会出错。能机械化检测的，必须写 guard。
2. **一个事实一个定义**: 同一信息不得在多处重复定义。其余位置必须自动派生或引用。
3. **验证看最后一公里**: "服务启动了"不等于"功能正常"。验证必须到达用户可观测的终点。
4. **先分层再动手**: 区分 policy / contract / implementation 三层，搞清楚问题在哪层再修。

**行为约束**: 不得引入新的重复定义。如果发现已有重复，应在本次变更中收口为单一来源。
不得跳过测试直接部署。不得用 `--no-verify` 绕过 pre-commit hook。
