本卡屬 FR-111(母卡見建卡後補號),第 2 棒:批次分類主幹:上傳/封口/分類/審核/歸檔/清理(jedi-evidence-classification,2 檔 1,900 行)。只掃不修。

這一棒在做什麼(白話)

證據批次的完整生命週期:建批次→上傳檔→封口→按「分類」起背景執行緒跑容器→人工審核結果→歸檔進任務證據→清理剩餘檔/刪整批。十個端點的服務本體與路由。

為什麼切這一塊

這是 FR-107 新做的主線(舊 Drive 線已標 legacy),也是使用者實際在用的路徑。守門形狀是「批次→專案→你是不是 manager/participant」,分類跑在背景執行緒(身分要自己帶過去)、審核結果由前端整包 PUT 回來、歸檔採信那份結果——三個地方各是一種「採信誰」的問題。

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

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

本套件從未掃過。 E1 是本棒的下游(容器),E5 是本棒的資料層(query entity/repo/RLS)——研究員追去讀 domain/service/*(239 行)與 run_state_keys.py(82 行)算預期內,那些檔在 E5 也會掃、重複報由首腦挑掉。🔴 本棒 1,900 行最逼近上限:研究員若被停滯偵測砍(/workflows 看到 retrying),停下回報,預備切法是主幹服務檔上下半各跑一次(同 jedi-detection D3-4a/4b),不重試同一設定。守門 adapter 在主專案 core/plugins/evidence_classification.py:63-121(is_project_manager 查 project_participants.role == 'manager')不在本棒,只看套件有沒有呼叫。

怎麼做

第一步:驗 scope 檔數與行數,對上 2 檔/約 1,900 行才啟動(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_batch_service.py jedi_evidence_classification/api/routes/evidence_batch_route.py | wc -l   # 要 = 2
cat jedi_evidence_classification/app/service/evidence_batch_service.py jedi_evidence_classification/api/routes/evidence_batch_route.py | wc -l   # 要 ≈ 1900

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

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