本卡屬 FR-166(母卡 CM-母卡號(建完補)),卡 P1-7a,階段 P1 登入、批 1。只改 FE(compliance-manager-fe)。依賴:無。
Agent 主控台前端換殼:左側欄、頂欄、狀態列照主系統,登入頁骨架;選單九項一次寫全,之後各分頁只新開自己的檔。
純 FE 殼,規格=雛形;不等 BE 端點(先接 mock state)
extend:App.vue 的 phase 機制保留,TabView 換 Shell.vue;登入頁從主站 Login.vue 複製版面刪分流。登記型檔集中:Shell.vue 的選單是一份清單常數(九項全寫、view 用 defineAsyncComponent 懶載入、檔不存在先指向佔位),之後各分頁卡只新開自己的 view 檔、不碰 Shell.vue;i18n agent-console.json 各頁的 key 也在這張卡一次佔好(值先放中文占位)
repo:~/Projects/Billows/Audit-Manager/compliance-manager-fe
改既有:console/App.vue 149
改既有:console/main.js 51
改既有:console/console.scss 91
改既有:i18n agent-console.json
新開:console/Shell.vue
新開:console/Login.vue
新開:console/state.js
細節在 design.md 對應段(~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-166-2610-agent-standalone-console/design.md §5,開 design.html 看導覽),本段只列本卡要做到的點:
Shell.vue:側欄 14rem teal、頂欄 4rem、狀態列;選單常數九項(總覽/掃描工具/網路除錯/執行紀錄/檢測工具/LDAP 設定/檔案/服務與重啟)用 defineAsyncComponent,view 不存在先指佔位;未同步反灰規則。Login.vue 從主站 src/views/Login.vue 複製版面刪分流;三態分頁;先接 state.js mock。App.vue 加 phase='login';i18n agent-console.json 各頁 key 一次佔好(中文占位)。npm run build:CONSOLE 過;開 dist 看到側欄 14rem teal、頂欄、狀態列三態切換;登入頁三分頁依 state 變;grep border-left console/ 為 0
對照雛形:~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-166-2610-agent-standalone-console/prototype/index.html(上方「跟著走」)。
docs/claude/domain-capabilities.md 與 FE docs/claude/frontend-overview.md §4。三擇一、預設不新增:reuse → extend 加參數 → 兩邊都確認沒有才新增。既有的是 stub/壞掉 → 修它或回報,不另寫繞過。回寫列出本卡 reuse 了哪些、新增了哪些、為什麼不能 reuse。if source == ... 分支。紅旗:複製一段既有函式改兩行、開 XxxV2/XxxForAgent、同一行為兩條路徑各自演化——出現就停下先抽共用。回寫列出哪些 extend 了既有的、哪些 new 及為什麼不能 extend。