本卡屬 FR-166(母卡 CM-3109 延伸),批 2,evidence-agent repo。與批 2 Agent 登入卡同 repo:改不同檔(scripts/install、config),合回時注意。
白話
Agent 透過心跳向主系統拿 LDAP 帳密、離線操作者名單等設定。主系統位址(CLOUD_ENDPOINT)若是 http,中間人看得到也改得了。決策者裁:正式只接受 https。開發環境(本機、123 連 Mac 的 http://…:8000)要明確設定才允許 http。
怎麼做
- 【extend】scripts/install/install.sh 第 721 行附近 URL 驗證改成只收 https://;compose 版設定驗證同步。
- 【extend】config/config.py 或啟動檢查:AGENT_AUTH_MODE=full 且 CLOUD_ENDPOINT 是 http 時,除非 AGENT_ALLOW_INSECURE_CLOUD=1(新增前先 grep 既有同義變數),否則啟動失敗並說明。打包版(Nuitka)一律不允許這個例外。
- .env.example 與 deploy 文件補一行。
- 本機 ~/guidant-agent-local/start-agent.sh 與 123 ~/guidant-agent-dev/start-agent-dev.sh 加上例外變數(不在 repo 內,回寫註明)。
驗證
- 測試:http+無例外 → 啟動拒絕;http+例外(源碼模式)→ 可;https → 可。install.sh 用 bash 測 URL 驗證函式。
紀律
- 要寫任何新函式/元件/composable/service 方法之前,第一步不是寫,是查:按行為 grep 真實程式碼,再查 docs/claude/domain-capabilities.md 與 FE frontend-overview.md §4。三擇一、預設不新增:reuse → extend → 確認沒有才新增。回寫列出 reuse 了哪些、新增了哪些、為什麼不能 reuse。
- BE 動到 api/app/infra 時 .claude/rules/security/ 自動載入,照著做;FE 規則在 FE repo .claude/rules/security/frontend.md,跨 repo 改 FE 不會自動載入,動手前自己讀。回寫列出本卡對到哪幾條、怎麼滿足。
- 不做義大利麵式程式:「怎麼做」每項已標 reuse/extend/new。extend 就改既有那支,不另開一支;紅旗:複製一段改兩行、開 XxxV2、同一行為兩條路徑。
- 檔案內註解只寫「為什麼」與「陷阱」(一到兩行),做了什麼進 commit message。
- 顯式 git add <檔名>,禁 -am;不切 branch(feature/FR-139);做完立刻 commit +本卡 append 回寫(含 commit hash、手測清單)+狀態改「修正待驗證」;push 等決策者。
建議模型與思考強度(首腦判斷)
Stage 2/Model sonnet/Effort medium/Repo agent。安裝腳本與 config 驗證,規格明確。
狀態先設「暫緩」:決策者 2026-10-28 指示首腦本 session 直接實作,不交工作坊派;做完首腦回寫並改「修正待驗證」。
已完成修正(首腦本 session 實作,2026-10-28)