24 lines
1.3 KiB
Markdown
24 lines
1.3 KiB
Markdown
# ADR-012:逐条结果状态与仲裁结论分离
|
|
|
|
## 状态
|
|
已接受
|
|
|
|
## 决策
|
|
|
|
- `TestResult.execution_status` 只取 `completed` 或 `error`,表示模型与裁判调用是否正常完成。
|
|
- `TestResult.verdict` 可为空;自动仲裁时取 `pass`、`fail`、`needs_human_review` 或 `judge_format_error`,未仲裁和执行错误时为空。
|
|
- Run 使用 `completed_count` 与 `error_count` 统计执行进度;`verdict=fail` 不是执行错误。
|
|
- `(run_id, execution_id)` 使用数据库唯一约束,禁止同一运行的同一执行实例出现多条当前状态。
|
|
- 报告和按交互模式统计分别展示执行状态与仲裁结论,不再使用一个 `status` 字段混合两个维度。
|
|
|
|
## 迁移
|
|
|
|
- 历史 `status=error` 映射为 `execution_status=error, verdict=NULL`。
|
|
- 历史 `status=completed` 映射为 `execution_status=completed, verdict=NULL`。
|
|
- 历史 `pass`、`fail`、`needs_human_review`、`judge_format_error` 映射为 `execution_status=completed` 与同名 `verdict`。
|
|
- 历史 Run 的 `failed_count` 原样迁移为语义明确的 `error_count`。
|
|
|
|
## 边界
|
|
|
|
本模型保存每个执行实例的当前结果,不保存状态变更历史;需要逐次重跑审计时再增加独立 attempt 表,当前不为未提出的历史查询引入该结构。
|