本卡屬 FR-111(母卡見建卡後補號),第 3 棒:舊 Drive 線:觸發/job 狀態/Drive 讀寫/正解匯入(jedi-evidence-classification,4 檔 1,781 行)。只掃不修。

這一棒在做什麼(白話)

FR-107 之前的舊路徑:直接掃客戶雲端硬碟(Google Drive)某個資料夾裡的證據檔、把分類結果與紀錄寫回硬碟。觸發端點已標 legacy(CM-1868)但仍掛在路由表上,加上查 job 狀態、讀 Drive 檔預覽、匯入正解四條線。

為什麼切這一塊

舊線沒拆,就是攻擊面。它拿的是租戶授權的 Drive token(能讀到什麼取決於授權範圍)、job 登記簿是整個程序共用的 dict、容器紀錄會上傳到客戶硬碟。FR-110 剛把 Drive 憑證改成畫面設定,token 取得路徑變了但套件側的用法沒變。

重點看什麼(工具不照清單走,掃完逐項回頭核,沒碰的自己開檔查並標「(工具未報,人工查證)」)

已知背景(未經本輪面板驗證,只是參照)

本套件從未掃過。 觸發端點 POST /projects/<uid>/evidence/classify 已標 legacy(CM-1868 3835bdb)、FR-110 記「離線 Drive 分類腳本已停用待 FR-107 舊線一併刪」——但路由仍掛著(api/routing.py:40-56),掃它是為了知道「留著會怎樣」,結論可以是「刪掉就好」。Drive token 由主專案 google_drive_token_manager 供(di_containers/evidence_classification/evidence_classification_containers.py:86-94),授權範圍(scope)在主專案 Drive 整合那邊決定,不在本棒;runner 查一下主專案 grep -rn 'drive.file\|auth/drive' app/cloud_integration 記在報告即可,不深追。正解表 evidence_classification_ground_truth DEV 實查已開 RLS 4 條(002 檔頭「刻意不掛」已過時,別被說服)。

怎麼做

第一步:驗 scope 檔數與行數,對上 4 檔/約 1,781 行才啟動(scope 以套件 HEAD 955e409 為準;git log -1 --format=%h 不是它就先回報,不自行改 scope):

cd /Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/jedi-evidence-classification && git ls-files -- jedi_evidence_classification/app/service/evidence_classification_service.py jedi_evidence_classification/api/routes/evidence_classification_route.py jedi_evidence_classification/infra/evidence_drive_ops.py jedi_evidence_classification/app/service/job_registry.py | wc -l   # 要 = 4
cat jedi_evidence_classification/app/service/evidence_classification_service.py jedi_evidence_classification/api/routes/evidence_classification_route.py jedi_evidence_classification/infra/evidence_drive_ops.py jedi_evidence_classification/app/service/job_registry.py | wc -l   # 要 ≈ 1781

第二步:把啟動指令交給決策者(你不能自己啟動)。/claude-security 這個 skill 帶 disable-model-invocation: true,模型用 Skill tool 叫會被擋;也不可以自己叫 Workflow 或自己派研究員/verifier 代替它——面板票數是工具算的、報告的驗證章蓋在那個數字上。這是刻意設計不是故障,撞到不要 debug、不要找繞路。

檔數對上後停下回報:說「檔數 4 已對上,可啟動」,並把下面兩行原樣附在回報裡交還給決策者,由決策者在本 session 親手打(單次送出、第二行不能省、每個新 session 都要重打):