FR-107 · 需求索引 · 本頁由 build 掃資料夾生成

FR-107 證據自動分類 2.0

🔄 功能已全線打通,收口中——25 張子卡 22 張驗收通過;SPEC 五頁與定版交付文件已完成。未完成:分類容器 image 進出貨包(CM-1871)、模型碼表換代+思考深度(CM-1885)、端到端回歸測試(CM-1886)。母卡 CM-1843。

狀態:🔄 進行中 文件 5 份 handoff 3 份

FR-107 證據自動分類 2.0

§1

結論

把「證據自動分類」從綁死 Google Drive 改成只認系統自己的儲存後端(本機/MinIO/SeaweedFS/遠端 agent 都行),使用者上傳到暫存批次 → AI 分類 → 使用者確認 → 檔案搬進對應任務成為正式證據,系統的任務證據表終於會真正寫入一筆。同時把寫死在程式裡的 CMMC 框架知識抽成資料(classification_profiles),任何客戶自匯框架都能跑,還加上多供應商 AI(Anthropic/OpenAI)可選。全案拆六棒、23 張子任務卡,新功能一律進既有套件 jedi-evidence-classification,主專案只留宿主接線與前端。落地版客戶沒有 Drive,這是讓分類功能對他們也能用的前提。

§2

📊 總進度

棒 做什麼(一句話) 子卡號範圍 狀態
.1 暫存批次+安全地基:新表存批次檔、upload_files 補租戶/擁有者/RLS、批次 API+FE 上傳頁 CM-1850~1853(+mockup CM-1878) ✅ 四張全數驗收通過
.2 儲存 port+容器改取檔:套件開檔案存取 port,容器不再自己連 Drive/資料庫 CM-1854~1856 ✅ 三張驗收通過
.3 分類跑在批次上:觸發/狀態機/審閱頁改讀批次 CM-1857~1860 ✅ 四張驗收通過
.4 歸檔進任務:搬檔進 job_evidences、前端歸檔對話框 CM-1861~1863 ✅ 三張驗收通過
.5 框架去硬編碼:classification_profiles 表+CRUD、catalog 補 part_id、prompt 三段組裝、多供應商 AI client、三個 AI 功能統一金鑰解析+原廠鑰裝機寫入(D13) CM-1864~1867、1877、1879 ✅ 六張驗收通過;模型碼表換代+思考深度另開 CM-1885 待派
.6 舊線退場+收口:舊入口隱藏、兩套件發版、SPEC/定版文件、e2e、image 進出貨包 CM-1868~1871、1886 🔄 T-6.1/T-6.2 ✅;T-6.3 SPEC 五頁+FINAL-SPEC ✅(e2e 已拆至 CM-1886 待 image 就緒);T-6.4 未開始

與 Notion 母卡 CM-1843 最上面那張表同步。尚未完成的三項:分類容器 image 進出貨包(CM-1871)、模型碼表換代+思考深度(CM-1885)、端到端回歸測試(CM-1886,前置是含本案的 image 進 190 測試機)。細節見 FINAL-SPEC.md 的「這一輪沒做完的」。

§3

需求討論紀錄

  • 2026-09-16 決策者提出需求:現行分類線只支援 Google Drive、只認寫死的 CMMC 2.0 舊版框架,分完的檔只是搬回 Drive 資料夾、系統的任務證據表一筆都沒寫,等於沒有實質效果。要求改成「上傳 → 暫存 → 分類 → 確認 → 歸檔進任務」的完整流程。
  • 2026-09-16 五題拍板:分類線只認系統儲存後端,Google Drive 退為既有的「同步」功能保留;暫存區=批次,掛在稽核輪次,每次新上傳開新批次;歸檔用「搬」(改綁任務,不複製實體檔);一個 AO 在該輪對應一個任務;框架知識去硬編碼,走 catalog 結構+不再寫死程式碼。
  • 2026-09-16 追加:框架設定存資料庫——新表 classification_profiles,AI 角色與指引可依框架版本各自設定,缺省有通用設定。
  • 2026-09-16 追加:新功能一律進既有套件,不放主專案——定為 D11,新功能全進 jedi-evidence-classification,主專案只留宿主 adapter 與前端;這是設計文件與討論稿最大的差異點。
  • 2026-09-16 追加:要支援 OpenAI,依金鑰決定供應商——定為 D12,金鑰存系統設定新群組,容器改抽 LlmClient 介面,可用模型動態算不寫死。
  • 2026-09-16 六項補裁:分類容器 image 要進出貨包(新增 T-6.4);儲存/任務證據兩支 port 切法照 design 定案;classification_profiles 不建 FK 一律軟參照;profile CRUD 只給平台管理員;job_evidences 既存重複列先查不自動合併;舊 route/FE 常數並存期可接受,留到 .6 一起清。全部照建議裁定。
  • 2026-09-16 決策者裁示:upload_files 既有 37 筆舊上傳檔擁有者欄位補不回來(無從追溯),記錄在案、不強行處理。
  • 2026-09-17 追加:原廠 AI 金鑰統一供應——定為 D13,AI 小幫手/AI Dashboard/證據分類三功能統一金鑰解析順序(租戶自己的設定 → ROOT 原廠鑰 → 環境變數),原廠鑰加密存 ROOT 租戶設定、由 install.sh 裝機寫入,不落明文 .env;第一版不開放客戶自填。新增 T-5.5。
§4

🔴 先看哪一份

文件 性質 回答什麼
FINAL-SPEC.md 定版 最後長什麼樣——想知道「這個功能現在怎麼運作」先看這份
design.md 設計 當初為什麼這樣決定、哪些方案被排除(定稿後凍結,不代表現況)
discussion.md 設計 需求怎麼來的、現況盤點原文
handoff/fr107-LOG.md 歷史 哪一棒做了什麼、踩過什麼坑
handoff/fr107-STATE.md 歷史 此刻的交接現況(living)
§5

文件

  • FINAL-SPEC.md — 定版交付規格,只寫現況:使用者流程、兩條線差異、歸檔行為、框架去硬編碼、交付物與未完成項
  • discussion.md — 需求討論稿,含現況盤點與 5 項已定案決策
  • design.md — 設計文件,D1–D13 落地規格、資料表/port/容器契約、六棒 25 張子任務卡拆解
  • handoff/fr107-STATE.md — 交接現況(living),環境座標、已定裁示、卡片狀態、待決策者事項
§6

文件

以下全部由 build 掃資料夾產生,新增檔案重 build 即自動出現。標題連結指向渲染後的 HTML,md 連向源檔。

定版交付

文件 類型 標題 最後更新
FINAL-SPEC / md 定版交付 分類完成之後,檔案真的掛進任務了 2026-09-17

需求與討論

文件 類型 標題 最後更新
discussion / md 需求討論稿 讓證據分類不再綁 Google Drive,分完直接掛進任務 2026-09-16

設計

文件 類型 標題 最後更新
design / md 設計 分類線搬回系統儲存、分完搬進任務、框架不寫死 2026-09-17

mockup/(2 份)

其他文件

文件 類型 標題 最後更新
auto-classify-batch 文件(手刻 HTML) 自動分類證據 — 單一批次流程(頁 B mockup) 2026-09-17
auto-classify-list 文件(手刻 HTML) 自動分類證據 — 歷史清單(頁 A mockup) 2026-09-17

交接與收口時間軸(handoff/,3 份)

由新到舊。每份是某一棒次交接當下的完整現況快照,看某個時間點「當時知道什麼」請從這裡進。

日期 文件 標題
2026-09-17 next-session-prompt / md —
2026-09-17 fr107-STATE / md FR-107 交接現況(living,就地更新)
2026-09-17 fr107-LOG / md FR-107 交接日誌(append-only)
§7

Notion 卡

卡片內容(決策紀錄、驗收條件)以 Notion 為準,本頁只記座標。

關係 卡號 標題 狀態
母案 CM-1843 FR-107 證據自動分類 2.0(母卡,六棒 25 張子任務卡) —