# 冻结路径审计（每日追加）

本文件由 `~/.hermes/scripts/zt_daily_job.sh` 在每交易日日循环末尾自动追加：把 pipeline 日志里的
「模型冻结校验 / 冻结态审计 / 候选固化 / 拒扫告警」关键行原样落盘，随当日产物一并提交推送（Mac → origin/main）。
跨机对账可直接 `git show origin/main:patches/scan_freeze_audit.md` 取用，无需等待人工转述。

字段含义（`🧾 冻结态审计` 行）：
- `load` = 扫描 process 起手 load 模型时算出的 sha256[:16]（= 候选 JSON 里的 `model_sha256`）
- `disk` = 扫描结束时从磁盘重算的 sha256[:16]
- `manifest` = `model_manifest.json` 登记的 `model_sha256`[:16]
- `model_unchanged` = (`load` == `disk`)，即「扫描全程未改动 model」的**单行判据**
  （研究侧已实证：rebuild 未移除时，当日有新行 ⇒ load 与 disk 必然不同）
- `候选(固化JSON)` = `backtest_zt_full/scan_today_candidates.json` 的 `n`
- `补记后清单` = 扫描内存中 `all_sig` 最终长度（含「昨日 buy_pending、今日确认」的补记项，晚于固化时点，**属设计差异非丢数**）

沙盒样本（0916 验证，`/tmp/smoke_audit916.py`，两向：稳态 + 制造新增行；生产文件指纹零改动）：

```
🔒 模型冻结校验通过: version=v1-record sha256=8f1a792279842bb9… effective_from=2026-09-16
🗂 今日候选已固化: …/scan_today_candidates.json（12 条 / 11 唯一代码 / ≥85 共 1）
(模型已冻结: 跳过 rebuild —— 滚动更新后 6034笔)
🧾 冻结态审计: load=8f1a792279842bb9 disk=8f1a792279842bb9 manifest=8f1a792279842bb9 version=v1-record baseline=6034行 候选(固化JSON)=12 补记后清单=33只 | model_unchanged=True
```

生产首跑（0916 17:05）起，每日真实关键行追加于下方。

## 2026-09-16 17:40 冻结路径审计
```
🔒 模型冻结校验通过: version=v1-record sha256=8f1a792279842bb9… effective_from=2026-09-16
🗂 今日候选已固化: /Users/xpresso/zt_app/backtest_zt_full/scan_today_candidates.json（38 条 / 37 唯一代码 / ≥85 共 2）
🧾 冻结态审计: load=8f1a792279842bb9 disk=8f1a792279842bb9 manifest=8f1a792279842bb9 version=v1-record baseline=6044行 候选(固化JSON)=38 补记后清单=48只 | model_unchanged=True
```

## 2026-09-17 17:38 冻结路径审计
```
🔒 模型冻结校验通过: version=v1-record sha256=8f1a792279842bb9… effective_from=2026-09-16
🗂 今日候选已固化: /Users/xpresso/zt_app/backtest_zt_full/scan_today_candidates.json（28 条 / 28 唯一代码 / ≥85 共 4）
🧾 冻结态审计: load=8f1a792279842bb9 disk=8f1a792279842bb9 manifest=8f1a792279842bb9 version=v1-record baseline=6079行 候选(固化JSON)=28 补记后清单=63只 | model_unchanged=True
```

## 2026-09-18 17:38 冻结路径审计
```
🔒 模型冻结校验通过: version=v1-record sha256=8f1a792279842bb9… effective_from=2026-09-16
🗂 今日候选已固化: /Users/xpresso/zt_app/backtest_zt_full/scan_today_candidates.json（33 条 / 32 唯一代码 / ≥85 共 9）
🧾 冻结态审计: load=8f1a792279842bb9 disk=8f1a792279842bb9 manifest=8f1a792279842bb9 version=v1-record baseline=6106行 候选(固化JSON)=33 补记后清单=60只 | model_unchanged=True
```
