# OpenCut 路线评估人工复核表

评估 ID：`请填写`
record_kind：`historical-receipt / evaluation-run`
reviewer：`请填写`
复核日期：`YYYY-MM-DD`
当前状态：`请按直接证据填写`

> 本表评审工具路线，不评审尚不存在的成片。`reported ≠ raw log`，`Ready ≠ UI`，`导入 ≠ 剪辑`，`预览 ≠ 导出`。

## 一、先判定记录类型

- [ ] 历史链接为 `examples/opencut-evaluations/20260727-opencut-local-route.json`，只作为 historical receipt 摘要。
- [ ] generic 下一轮输入来自 `opencut-evaluation-input.template.json`，不宣称与历史样例逐字一致。
- [ ] 历史 dependency-install、production-build、dev-server 都因缺时间戳、退出码和原始日志保持 `evidence-missing`。
- [ ] reported 构建失败仍保留 `isShortcutKey`，没有因证据不足而抹掉已知摘要。
- [ ] summary-only 的 raw_log_sha256 为 null；每项 raw-log 都有 64 位哈希、整数退出码、完整有序时间，且原始文件中的 id、command、result 与 attempt 相符。

## 二、来源、许可证与输入

- [ ] `third_party/sources.lock.json` 为 tracked，且 SHA-256 与输入中的 sources-lock receipt 相同。
- [ ] rewrite/classic Commit、MIT、生命周期逐项来自该 lock；没有用 README 或本地 checkout 代签。
- [ ] `third_party/src/OpenCut*` 只是不提交的本地审计副本，不是课程依赖或交付物。
- [ ] input_asset 的 availability、technical receipt path+sha、media_sha256 已核对。
- [ ] rights 为 owned/licensed，private_data 为 false，时长为 32 秒。
- [ ] allowed_edit 为 `split-right-16-seconds-keep-left`，output_path 是尚不存在的新路径。

## 三、七层能力门

| 层 | 门 | rewrite / classic 分栏证据 | pass/revise/block | 说明 |
|---:|---|---|---|---|
| 1 | `source-license` | tracked sources lock + hash |  |  |
| 2 | `code-capability` | 固定源码与 README 路线图分栏；MCP/headless 子结论 |  |  |
| 3 | `dependency-install` | 本轮时间戳、退出码、raw log；否则 evidence-missing |  |  |
| 4 | `production-build` | 本轮 build raw log；保留 isShortcutKey 历史摘要 |  |  |
| 5 | `dev-server` | 本轮 Ready raw log、本地 URL、停止回执 |  |  |
| 6 | `ui-media-import` | Computer Use 只读/Network 与导入回执 |  |  |
| 7 | `timeline-export` | Split right、刷新恢复、新视频、ffprobe、SHA-256、完整观看 |  |  |

任一门没有直接证据就不能写 `pass`。状态不能倒过来证明能力门。

## 四、四个 exact ordered approval_steps

每一步在动作前都要获得新的明确确认。`approved` boolean 只是状态，不是授权回执，不能单独触发 Computer Use；`approved: true` 也不是余下步骤的通行证。

| 顺序 | approval_step | 新确认必须覆盖 | approved | 直接回执 |
|---:|---|---|---|---|
| 1 | `read-only-ui-network` | localhost、只读范围、Network、异常停止；不导入 | true/false |  |
| 2 | `import-owned-media` | 输入路径/哈希/权利、创建本地状态；不编辑 | true/false |  |
| 3 | `local-edit-and-reload` | 16 秒 Split right、保留左段、刷新恢复；不导出 | true/false |  |
| 4 | `export-new-file` | 新输出路径、规格、技术/人工验收；不覆盖/上传 | true/false |  |

- [ ] 批准顺序严格为 `read-only-ui-network → import-owned-media → local-edit-and-reload → export-new-file`。
- [ ] 没有后一步为 true 而前一步为 false 的越级状态。
- [ ] 每道已推进的门都另存真实 `approved_at`、`approved_by`、`scope`、`risk_ack` 与对应 Computer Use 原始回执。
- [ ] 上述批准字段和回执路径没有预填；缺少任一项的门仍为 false / not-run。

## 五、action_taxonomy

- [ ] `platform_account_actions` 为 `none`；本课不登录、上传或发布。
- [ ] generic preflight 的 `network_actions_observed` 为 `[]`，只逐项追加本轮已经观察到的网络动作，不继承历史 clone/install。
- [ ] `network_actions_possible_not_observed` 保留 OpenCut UI 可能访问第三方资源的未知项。
- [ ] generic preflight 的 `local_mutations` 为 `[]`，只列出本轮真实 checkout、依赖、进程、工程和新输出等变化。
- [ ] `media_actions` 分别记录 status、imports、edits、exports，且与批准和状态一致。
- [ ] 没有再用泛化 `external_actions: none` 隐藏本地与网络行为。

## 六、真实性与安全

- [ ] 没有把 summary-only 写成 raw-log。
- [ ] 没有把 historical 的 0 次导入、0 次剪辑、0 次导出改写成成功。
- [ ] 没有为了通过而修改上游源码、依赖、锁文件或配置。
- [ ] 出现未知网络、登录、云端、付费、覆盖或隐私提示时已停止。
- [ ] 真正导出后才使用 ffprobe、SHA-256 和完整人工观看验收。
- [ ] 没有声称 MCP、headless、批量渲染或商业稳定性已经验证。

## 七、最终决定

- 决定：`adopt / defer / reject`
- 当前允许的最高状态：`请填写`
- evidence-missing 门：`请填写或 none`
- 未批准的下一 approval_step：`请填写`
- 继续投入的单一理由：`请填写`
- 停止投入的单一理由：`请填写`
- reviewer 签名/确认：`请填写`
