# 评分指南

评分由**最严重的已确认问题**决定基准区间，再在区间内微调。

## 第一步：确定基准区间

| 最严重问题 | 分值区间 |
|-----------|---------|
| 无问题 | 9.0-10.0 |
| 仅 P2/P3 | 7.5-9.0 |
| P1 | 4.0-7.0 |
| P0（逻辑崩溃、数据损坏、数据竞争、明显 UB） | 2.0-3.5 |
| P0（安全漏洞、权限绕过、密钥泄露） | 1.0-2.5 |

## 第二步：在区间内调整

- **影响广度**：影响全量请求、全局状态或所有调用方取下限；仅局部边界触发取上限，差距约 0.5-1.0 分
- **问题数量**：每多一个独立同级别问题，向下移约 0.3-0.5 分
- **可逆性**：可快速定位、低风险修复的问题可上浮 0.3-0.5 分

> 多个问题时取区间下限附近；单个问题且影响有限时取区间上限附近。

## Rust 语境硬上限

- 有任意 P0 -> 评分上限 3.5
- `unsafe` 或 FFI 引入可证的未定义行为或破坏公开安全契约 -> 评分上限 2.5
- 可证的数据竞争或 `Send`/`Sync` 误用导致跨线程 UB 风险 -> 评分上限 2.5
- 库代码对外 API 主路径新增 `unwrap`/`expect`/`panic!` 且无对应契约 -> 评分上限 3.0
- 公开 crate 的 feature 组合、目标配置或依赖变更导致关键目标不可构建 -> 评分上限 3.0
- 硬编码真实凭证或 secret 泄露 -> 评分上限 2.0
- 纯文件删除（无逻辑变更）-> 评分记为 N/A
- 测试、bench、示例中的问题 -> 最高计为 P2，不纳入 P0/P1 计数

## 评分语义

| 分值 | 提交建议 | 含义 |
|------|---------|------|
| 9.0-10.0 | ✅ 可以提交 | 无明显问题 |
| 7.5-9.0 | ✅ 可以提交，跟进修复 | 有轻微问题，不影响提交 |
| 4.0-7.0 | 🔧 修复后提交 | 存在 P1 问题，影响广取下限，影响窄取上限 |
| 1.0-3.5 | 🚫 禁止提交 | 存在 P0 问题，必须修复 |
