這份記錄「怎麼跑掃描、花多少、踩過什麼坑」,讓後續批次不必重新摸索。
Claude Code 官方 plugin claude-security@claude-plugins-official v0.10.2.3。
啟動方式是 /claude-security 開選單,選 Scan codebase。 它實際跑的是 claude-security:scan workflow,會派出一群 subagent 分工。
第一批用的參數:
| 項目 | 值 |
|---|---|
| 掃描根目錄 | ~/Projects/Jedicogy/module/jedi-python-package |
| scope | jedi-common,jedi-iam(453 個 tracked 檔) |
| effort | medium |
| focus | attack-surface(tests/dist/docs 只當背景參考,不當稽核目標) |
這是踩坑重點。四個等級的差別全在研究階段派多少 agent,驗證面板固定三人。
| 等級 | 研究規模 | 實際 agent 數(約) |
|---|---|---|
| low | 單一 researcher 掃完整個 scope | 5 到 6 |
| medium | 每個「元件 × 弱點類別」各一位,再加一輪 breadth sweep | 40 以上 |
| high | 每格兩位、兩輪 sweep、更細的元件切分 | 80 以上 |
| max | high 再加紅隊逐條反駁 | 更多 |
medium 為什麼這麼貴:它先把套件切成 N 個元件,然後展開成矩陣派工。 每個 agent 都從零開始讀檔、沒有共用 context,所以同一支 ldap_adapter.py 被至少 8 個 researcher 各讀了一遍——這也是為什麼 32 筆原始發現去重後只剩 19 條。 重複的發現就是重複的 token。
再加上 researcher 與 verifier 的設定是 effort: xhigh、model: inherit, 等於一百多次前沿模型的高強度推理。
第一輪 medium:跑約 40 分鐘,派出 40 個 agent,研究階段收到 32 筆候選發現。 因為成本明顯失控,在面板驗證開始前手動停掉。 這 32 筆就是 batch1 清單的來源,屬未驗證的原始宣稱。
第二輪 low(只掃 jedi-iam):想驗證 low 是否真的便宜。 確實只派了 2 個 researcher(一個主掃、一個 secrets pass), 但跑了 2 小時 15 分後全部 agent 因 session 額度用盡而失敗,零產出。 工具重試了 4 次都撞同一道牆。
掃描中止時,正式報告不會產生,但每個 agent 的回傳都寫在 workflow 的 journal:
~/.claude/projects/<專案>/<session>/subagents/workflows/<run-id>/journal.jsonl
每行是一個 JSON,{"type":"result", "result":{"findings":[...]}} 就是該 agent 的發現。 用 Python 逐行解析、按 file + title 去重即可還原清單。
第一輪的 run id 是 wf_442f835c-ddf。