本卡屬 FR-111(母卡見建卡後補號),第 5 棒:邊界層:request schema/查詢預設/repo 過濾/RLS policy(jedi-evidence-classification,12 檔 842 行)。只掃不修。

這一棒在做什麼(白話)

不看服務層、只看邊界:前端送進來的欄位 schema 放行了什麼、查詢條件不填時預設是什麼、資料層過濾帶了哪些條件、批次兩張表的資料庫隔離規則怎麼寫。

為什麼切這一塊

這是 E2 切不進去的資料層(E2 主幹單檔 1,653 行已逼近上限)。「空條件回全表」(總表第 70 項,全站盤點 2026-09-15)、「RLS 規則只取租戶不取部門」、「query entity 非 None 預設變幽靈 WHERE」這三類問題只看邊界就能判,不需要服務層脈絡。

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

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

本套件從未掃過。 本棒是 E2 的接縫檔集合,E2 的研究員可能已經追去讀過其中幾支——重複報由首腦挑掉。002-evidence-classification-grants.sql 檔頭自陳「兩張舊表刻意不掛 RLS」已過時(DEV 實查五張表全開),該檔不在本棒 scope,但若研究員讀到 001/002 報「無 RLS」是假陽性。跨 arc 總表 §5「空條件回全表全站盤點」(2026-09-15)列了 21 支套件掃出 17 支零必填、DEV 實查真正兩層皆空只 3 支——本套件當時算哪一類 runner 對一下寫進報告。

怎麼做

第一步:驗 scope 檔數與行數,對上 12 檔/約 842 行才啟動(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/domain/service/evidence_batch_domain_service.py jedi_evidence_classification/domain/service/evidence_batch_file_domain_service.py jedi_evidence_classification/domain/service/classification_run_domain_service.py jedi_evidence_classification/infra/repository/evidence_batch_repository_impl.py jedi_evidence_classification/infra/repository/evidence_batch_file_repository_impl.py jedi_evidence_classification/infra/repository/classification_run_repository_impl.py jedi_evidence_classification/domain/entity/evidence_batch_query_entity.py jedi_evidence_classification/domain/entity/evidence_batch_file_query_entity.py jedi_evidence_classification/domain/entity/classification_run_query_entity.py jedi_evidence_classification/migrations/003-evidence-batches.sql jedi_evidence_classification/app/service/run_state_keys.py jedi_evidence_classification/api/schemas/evidence_batch_schema.py | wc -l   # 要 = 12
cat jedi_evidence_classification/domain/service/evidence_batch_domain_service.py jedi_evidence_classification/domain/service/evidence_batch_file_domain_service.py jedi_evidence_classification/domain/service/classification_run_domain_service.py jedi_evidence_classification/infra/repository/evidence_batch_repository_impl.py jedi_evidence_classification/infra/repository/evidence_batch_file_repository_impl.py jedi_evidence_classification/infra/repository/classification_run_repository_impl.py jedi_evidence_classification/domain/entity/evidence_batch_query_entity.py jedi_evidence_classification/domain/entity/evidence_batch_file_query_entity.py jedi_evidence_classification/domain/entity/classification_run_query_entity.py jedi_evidence_classification/migrations/003-evidence-batches.sql jedi_evidence_classification/app/service/run_state_keys.py jedi_evidence_classification/api/schemas/evidence_batch_schema.py | wc -l   # 要 ≈ 842

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

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

/claude-security scan codebase at /Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/jedi-evidence-classification --scope jedi_evidence_classification/domain/service/evidence_batch_domain_service.py,jedi_evidence_classification/domain/service/evidence_batch_file_domain_service.py,jedi_evidence_classification/domain/service/classification_run_domain_service.py,jedi_evidence_classification/infra/repository/evidence_batch_repository_impl.py,jedi_evidence_classification/infra/repository/evidence_batch_file_repository_impl.py,jedi_evidence_classification/infra/repository/classification_run_repository_impl.py,jedi_evidence_classification/domain/entity/evidence_batch_query_entity.py,jedi_evidence_classification/domain/entity/evidence_batch_file_query_entity.py,jedi_evidence_classification/domain/entity/classification_run_query_entity.py,jedi_evidence_classification/migrations/003-evidence-batches.sql,jedi_evidence_classification/app/service/run_state_keys.py,jedi_evidence_classification/api/schemas/evidence_batch_schema.py --effort low
I understand this may take a while and use a significant number of tokens.