# 證據分類器強化 Arc — 收尾 SUMMARY

| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-30 |
| Branch | `feature/evidence-classify-xlsx`（BE + FE 同名）|
| 範圍 | BE（主專案 + 自包含 container）+ FE，跨 2 repo |
| 起點 | FR-030.3「xlsx/pptx 抽文字」，一路長成「證據分類器全面強化」|
| 狀態 | 全數 commit，working tree 乾淨；**尚未 push、尚未 merge main**（等 user）|

## 一、本 arc 做了什麼（六大塊）

1. **檔型覆蓋**：xlsx/pptx 抽文字 + office 內嵌截圖 LibreOffice→PDF→vision（cost-aware：有圖才轉；順帶解鎖舊格式 doc/ppt + Google 簡報）
2. **trigger 選項**：選模型（sonnet/opus，UI flag 隱藏預設 sonnet）+ analyze-only 歸檔模式
3. **一次歸檔**：`POST /classification-run/<id>/archive` + 審閱頁「立即歸檔」按鈕/橘色提醒（冪等）
4. **可觀測性**：container log 上傳 Drive（憑證遮蔽）+ token/成本統計（UI flag 隱藏預設關）
5. **prompt 調校**：真實證據集三方對照 → 證據提示 + AO-letter 完整性 + 過配收斂（過配 22→8，零錯放）
6. **審閱頁 UI**（早段）：清單欄位排序 + 雲端資料夾連結 + Splitter 可拖拉

## 二、Commits 清單

**BE（`compliance-manager-be`，10 feat/docs commits）**
```
f89e9c2d feat xlsx/pptx 抽文字
ba5c7b79 feat 選模型 + analyze-only 歸檔模式
1a55be04 feat container log 上傳 Drive
ad227b94 feat office 內嵌圖 LibreOffice→PDF→vision
e970415c feat prompt per-AO 證據提示 + 辨識
fa62a46e docs analysis 三方對照
9a65d187 feat prompt AO-letter 完整性
8ebdc2e9 feat token 用量 + 成本統計
e6c9ca71 feat prompt 過配收斂
3acbdf10 feat 一次歸檔 API
+ 本次收尾 commit（changelog ×4 / api-spec / design §11 / SUMMARY / 對話紀錄 / plan / memory）
```

**FE（`compliance-manager-fe`，5 commits）**
```
75ef891 feat 清單欄位排序 + Splitter
f45877a feat 雲端資料夾連結 + icon + 未分類 toggle
28c0069 feat dialog 選模型 + 歸檔方式
ad18d98 feat 審閱頁顯示 token + 粗估費用
6daf7d8 feat 隱藏模型選擇器 + 一次歸檔按鈕/提醒
e18670c tweak 費用顯示 flag 隱藏
```

## 三、行為差異（對 user）

- Excel/PPT/含截圖的 Word 證據**現在分得到類**（之前 skip）
- trigger 可選「僅分析」→ 結果可審閱但不複製檔 → 確認後按「立即歸檔」才正式歸檔
- 審閱頁對未歸檔 run 有明顯提醒
- 分類準度：過配大減、SC.3.13.5 等補回；**IA.3.5.2 等「標準爭議」不變**（需修 User ground truth，非模型）

## 四、規範文件清單（本收尾產出/更新）

| 文件 | 狀態 |
|------|------|
| `docs/changelog/2026-05-30-feat-evidence-classify-{xlsx-pptx-office-vision,model-archive-options,prompt-accuracy,observability}.md` | ✅ 新增 ×4 |
| `docs/analysis/2026-05-30-cmmc-evidence-classification-accuracy-gap.md` | ✅（arc 中已產） |
| `docs/api/evidence-classification/api-spec.md` | ✅ 更新（archive 端點 + trigger 新欄位 + metadata token_usage/archive_files + EC_400001） |
| `docs/features/FR-030.3-.../design.md` §11 | ✅ 實作後對齊 |
| `docs/features/FR-030.3-.../implementation-plan.md` | ✅ 補 commit（原 untracked） |
| `docs/conversation-history/2026-05-30/evidence-classify-arc/` | ✅ 逐輪 dump ×2 |
| memory `feedback_*` | ✅ 新增教訓 |

## 五、部署 handover

| 改動類別 | 動作 |
|---------|------|
| container（xlsx/pptx、內嵌圖、prompt、token） | **rebuild container**：`docker build -t cmmc-classifier:latest -f scripts/evidence/classify/docker/Dockerfile scripts/evidence/classify/docker`（在跑分類的 host） |
| BE（選模型/歸檔/log 上傳/archive API） | **重啟 BE** |
| FE（dialog/審閱頁/flags） | **FE rebuild** |

UI flags（皆預設關）：`SHOW_MODEL_SELECTOR`（dialog 模型選擇器）、`SHOW_RUN_COST`（審閱頁費用）。

## 六、已知 follow-up

1. **修 User ground truth 41 筆標籤錯**（報表已標「應在 XXX」）— 提升分數最大槓桿，非模型問題
2. 試 **Sonnet** 對照 Opus，確認能否用 1/5 成本拿到接近結果
3. 剩餘 8 筆 AI 過配（多為「基地管制規定」單一頑固檔）— 不建議再追（過擬合風險）
4. jedi-* 套件**完全沒動**，無進版需求；主專案 pyproject/FE package.json 皆無新依賴
