建議 model:opus/effort:medium — 跨 test repo 寫 e2e+寫四頁 SPEC+收口交付文件,量大且要判斷寫什麼。

本卡屬 FR-107(母卡 CM-1843)第 .6 棒(子需求卡 CM-1849),子任務 T-6.3:在測試專案補一條走完全流程的自動化測試,並更新功能說明文件。

這張卡做什麼(白話)

整案功能做完之後,補一條端到端自動化測試:模擬使用者上傳一批檔 → 按分類 → 審閱確認 → 歸檔 → 到任務證據頁看到那份檔。這條測試以後每次發版都會跑,確保不會有人改壞。

分類那一步會真的呼叫 AI(很慢、要花錢、結果不穩定),所以用一個 stub image(假的容器,回固定的結果 JSON)取代真的分類容器。測的是流程串得起來,不是 AI 判得準不準。

然後更新功能說明文件(SPEC):專案總覽、審閱頁、框架版本管理、我的任務證據頁這四頁,各加一段說明與檔頭一行變更紀錄。最後寫 FR-107 的 FINAL-SPEC(收口交付文件,寫最後長成什麼樣,不寫演進過程)。

動哪些檔

測試 repo ~/Projects/Billows/Audit-Manager/compliance-manager-test/(branch feature/review)
site-regression/   ← 🔴 正式回歸套件(唯一發版 gate)
  features/  新增 feature 檔:上傳→分類→確認→歸檔→任務看到證據
  steps/     對應 step 實作
  pages/     page object
  fixtures/  stub image 的固定回應 JSON
  🔴 site-regression 與 training 兩套件已分家,只在 site-regression 加

主專案(SPEC,走 writing-feature-specs skill)
docs/spec-site/current/   ← 🔴 canonical,唯一持續更新的工作副本
  專案總覽頁 spec        ← 加「上傳證據批次」段 + 檔頭變更紀錄一行
  審閱頁 spec            ← 改資料來源與新的檢查點代號 + 一行
  框架版本管理頁 spec     ← 加「AI 分類設定」分頁 + 一行
  我的任務證據頁 spec     ← 加「AI 分類」標籤 + 一行
  🔴 舊站 docs/specs/current/ 已退役唯讀,不要往那裡寫

docs/features/FR-107-2609-evidence-classification-v2/FINAL-SPEC.md   ← 新增

e2e 要走的流程

1. manager 登入,進有 living SSP 且輪次已建任務的專案
2. 開新批次、上傳 N 份測試檔
3. 按「完成上傳」→ 狀態「就緒」
4. 按「開始分類」→ stub image 回固定結果 → 狀態「審閱」
5. 審閱頁:確認每檔對到的檢查點,加一個、標一個不適用、儲存
6. 按「歸檔進任務」→ 看到摘要
7. 到「我的任務」對應任務的證據頁 → 看到那份檔,帶「AI 分類」標籤
8. 清理剩餘檔 → 批次狀態「已歸檔」

stub image:
  回固定的 _report-original.json,matches 用測試專案裡真實存在的 part_id
  🔴 part_id 要對得上該輪次真的有任務的檢查點,否則第 7 步永遠看不到東西

怎麼做(逐步)

驗收條件