本卡屬 FR-187(母卡 CM-3711),第 2 批 J2:Agent 註冊、通行證與控制授權(套件端)(套件 repo jedi-python-package(jedi-remote-agent),5 檔/約 1079 行)。只掃不修。工作坊會用 .claude/workshop-prompts/dispatch-<本卡號>.md 當開場 prompt 直接啟動掃描,小弟不必自己打指令。

這一棒在做什麼(白話)

用 Claude Code 官方 claude-security plugin 掃「Agent 註冊、通行證與控制授權(套件端)」這一塊,找出資安問題,寫成 PM 與新手工程師都看得懂的報告。只找問題、不修問題,修是另外開卡的事。

掃 jedi-remote-agent 套件裡 Agent 怎麼取得身分:拿註冊碼報到、同一台重新報到怎麼認出是同一台、通行證怎麼驗、FR-171 改成可輪換鑰匙之後怎麼按 kid 找鑰匙。

為什麼切這一塊

這是 Agent 身分的根。報到時認錯台,拿到同租戶註冊碼的人就能接管別台 Agent 的身分;通行證驗法有洞就能自己簽一張。C 棒的金鑰登記簿就是這裡讀的鑰匙來源,兩棒的接縫首腦驗收時會串起來看。

背景:這一輪掃的是 2026-11-01(FR-172 開案)到 11-09 之間主專案與 jedi-remote-agent 新寫或大改的程式(FR-171/172/178/179/180/181/182),這些程式都沒掃過。

掃描範圍(scope,與開場 prompt 的 --scope 一致)

jedi-remote-agent/jedi_remote_agent/app/service/agent_enrollment_service.py
jedi-remote-agent/jedi_remote_agent/app/service/agent_enroll_token_service.py
jedi-remote-agent/jedi_remote_agent/app/service/agent_control_auth_service.py
jedi-remote-agent/jedi_remote_agent/common/agent_auth/trust_keys.py
jedi-remote-agent/jedi_remote_agent/common/agent_auth/jwt_util.py

檔數 5、約 1079 行。驗檔數:git -C <工作目錄> ls-files -- jedi-remote-agent/jedi_remote_agent/app/service/agent_enrollment_service.py jedi-remote-agent/jedi_remote_agent/app/service/agent_enroll_token_service.py jedi-remote-agent/jedi_remote_agent/app/service/agent_control_auth_service.py jedi-remote-agent/jedi_remote_agent/common/agent_auth/trust_keys.py jedi-remote-agent/jedi_remote_agent/common/agent_auth/jwt_util.py | wc -l 應為 5。scope 外的檔不要讀,除非下面「重點看什麼」明寫「只追這幾行」;越界的發現首腦驗收時會挑掉。

重點看什麼

首腦讀過程式碼後認為最容易出事的地方,是思考起點不是檢查清單,行號以 2026-11-09 的主線為準,對不上就以內容為準。工具不會照這份走,掃完後你要自己逐條對一遍:工具沒報的,開檔看一眼,寫「人工查過:成立/不成立/為什麼」。

已知背景

FR-077(2026-09)掃過 jedi-remote-agent 與主系統接線的舊版,FR-086 掃過檔案上傳下載,FR-177(2026-11-05~07)掃過 Agent 本體;結論在主系統 repo docs/features/security-scan-consolidated/README.md,只是參照,沒有經過本棒的三人投票。

怎麼做