本卡屬 FR-166(母卡 CM-3109 延伸),批 3,evidence-agent repo。前兩批同 repo 卡先合。
白話
救援用的本機管理員密碼設完常被遺忘。Agent 心跳多回報「這組密碼最後設定時間」,主系統超過 180 天就提醒該換。
怎麼做
- 【extend】core/console/heartbeat.py 在 local_admin_set 旁多帶 local_admin_password_set_at(ISO UTC,取 local_credentials 表 local-admin 那列 updated_at;沒設回 null)。
- 確認 reset-admin-password 與安裝時設定都會更新 updated_at。
驗證
- 測試:設密碼後心跳 fields 帶時間、沒設帶 null、重設後時間更新。
紀律
- 要寫任何新函式/元件/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 3/Model sonnet/Effort medium/Repo agent。單一欄位回報,照既有 local_admin_set 寫法。
狀態先設「暫緩」:決策者 2026-10-28 指示首腦本 session 直接實作,不交工作坊派;做完首腦回寫並改「修正待驗證」。
已完成修正(首腦本 session 實作,2026-10-28)
commit:evidence-agent ab1abb0(feature/FR-139,未推)
做了什麼