FR-030.2 證據分類圖片/PDF 內容辨識 — 收尾 SUMMARY

項目 內容
Feature FR-030.2(↳ FR-030 子,多模態能力補強)
狀態 ✅ 實作完成、12 單元測試通過、端對端實測通過
Branch feature/evidence-classify-image-vision(未 push、未 merge main)
版本 bump 1.2.1 → 1.3.0(功能版號)
收尾日期 2026-05-29

1. 做了什麼

讓 FR-030 證據分類器的 Docker container 用 Claude Vision 辨識圖片(png/jpg/gif/webp)與 PDF 內容並分類。方式:分類管道從「字串進」改成「Anthropic content blocks 進」(方式 A)。原分類 / 歸檔流程一個字不動 —— _state.json 結構、Drive 歸檔、review UI 全沿用,圖片/PDF 出分類器後與文字檔走同一條歸檔路。

全部改動侷限在 scripts/evidence/classify/docker/,不碰主專案 app/domain/infra。

2. 行為差異

檔型 改版前 改版後
docx/csv/txt/log/md 抽文字分類 不變(語意等價)
png/jpg/jpeg/gif/webp [Unsupported] 跳過 base64 → image block → Vision 分類
pdf [Unsupported] 跳過 base64 → document block → 讀全頁分類
超限/不支援 skip → 既有「未處理」清單

3. Commits(branch feature/evidence-classify-image-vision

規劃(本 session 產出)7f931580 spec → 379a28df spec folding → b24bb838 plan → dddbce08+4f42432a handoff

實作(Sonnet 照 plan 執行)c3c1a20b(pypdf+helper)→ f7bd6f59/4e2fb810(helper 修補)→ a5d44229(extract_text 改名)→ 4de056df(build_content_blocks)→ 02a88ada(double-read fix)→ b67ce67a(classify+worker)→ 3f488221(prompt)→ 9da4824e(list_jobs evidence_folder_id)

收尾(本 session):changelog + release note + pyproject bump + design §11 + 本 SUMMARY(同一 commit)

4. 規範文件齊全度

文件 狀態
design.md(含 §8 取捨 / §11 reconciliation)
implementation-plan.md
handoff 執行交接 prompt
changelog 2026-05-29-feat-evidence-classify-image-vision.md ✅ 本次補
release note v1.3.0.md ✅ 本次補
pyproject version bump 1.3.0 ✅ 本次補
README FR 登記表 FR-030.2 列 ✅(規劃時已加)
本 SUMMARY

5. 驗證

  • 單元測試:scripts/evidence/classify/docker/test_container_entrypoint.py12 passed
  • 端對端:真實 Drive + Claude 跨一張截圖 + 一份 PDF,確認分到 AO(user 驗收)

6. 部署 handover

  1. 重 build classifier image(雙 tag;BE 寫死用 :latest,故 :latest 必須一起打):
    docker build \
      -t cmmc-classifier:1.3.0 \
      -t cmmc-classifier:latest \
      -f scripts/evidence/classify/docker/Dockerfile \
      scripts/evidence/classify/docker
  2. 主專案 BE 重啟(list_jobs 新增 evidence_folder_id
  3. evidence-classify 仍屬實驗功能

7. 已知 follow-up

  • .xlsx / .pptx 支援:收尾時 user 提出、討論到抽取預設即暫停 → 未實作。需走本地抽文字(openpyxl / python-pptx),未來可開子任務。
  • 成本控管 / quota:實驗階段不設上限。
  • 區間內零星 fix commit changelog:docx-import / excel-import / template-copy 可能缺獨立 changelog(v1.2.1 收尾遺留),待補。
  • BE/FE 版號對齊:BE 進到 1.3.0,FE 也應對齊到 v1.3.0(不跨 repo 改,建議 FE repo 另開 session)。

8. 尚待 user 決定

  • push / merge:本 branch 未 push、未 merge main。release 是否從本 branch 還是 merge 後再 cut,待 user 指示。
  • working tree 有無關的 drive-sync 死結工作未提交 —— 上版相關 commit 已全程顯式 git add,未掃到這批;該批工作獨立處理。