# Codex OCR／OMR 講師示範腳本（25 分鐘）

## 0–3 分鐘｜先說邊界

- 只用新產生的三頁合成表單與固定 seed 樣本。
- 不連接客戶系統，不讀真實 PDF，不做外部寫入。
- 這是固定版型、印刷 ASCII／數字與 OMR 的教學 baseline；不是繁中、手寫或生產能力證明。

## 3–8 分鐘｜檢查專案

先讀 `README.md`、`AGENTS.md`、`config/form_schema.json`、`config/confidence_policy.json` 與 `docs/DATA_SAFETY.md`。請學員指出四角 fiducial、3-bit page code、ROI、ground truth 與 runtime 的隔離。

## 8–15 分鐘｜重跑

```bash
python -m unittest discover -s tests -v
python -m src.cli run --input data/samples --output outputs --config config --template data/template --seed 20260810 --ocr auto
python scripts/evaluate.py --ground-truth data/ground_truth/fields.jsonl --results outputs/results --output outputs/metrics --fail-on-false-acceptance
```

Windows 可執行 `./scripts/run_demo.ps1`。沒有 Tesseract 時改用 `--ocr none`；OMR、對位、拒絕輸出與 metrics 仍可執行，文字欄位會 abstain。

## 15–20 分鐘｜看三種結果

1. `sample-001`：清晰 OMR 欄位可 accepted；文字欄仍採嚴格門檻。
2. `sample-008`：模糊訊號進 needs_review，正式 value 為 null。
3. `sample-009`：缺定位標記，整頁 abstained，value=null 且 candidates=[]。

## 20–23 分鐘｜讀 metrics

- 30 documents／120 fields。
- 70 個 accepted prediction 中 false acceptance 為 0。
- clear OMR correct-and-accepted coverage 為 100.00%。
- 文件狀態：15 accepted、12 needs_review、3 abstained；registration failure rate 6.67%。

數字只適用 shipped synthetic dataset，不外推。

## 23–25 分鐘｜人工核決

請學員回答：哪個欄位可採用、哪個只可看候選、哪個必須重掃？如果講師環境無法執行，使用 offline fallback pack 展示同一批已驗證結果，不假裝現場重跑。
