交接 prompt — bugfix 後驗收 / debug 接手

此檔給 user 貼到新 session 開頭,讓接手的 Claude 立刻進入 context。


§1

接手 prompt(貼到新 session)

我從昨天 (2026-05-21) 的 SSP Excel Import Phase 2 bugfix session 接過來。

請先讀以下兩份文件理解 context:
1. docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bugfix-SUMMARY.md
   — 完整收尾報告,含 commits 清單 / 架構改動 / 已知 follow-up
2. compliance-manager-fe/CLAUDE.md L185+「Loading / 等待狀態規範」⭐
   — 本期強化過的規範

bugfix session 已 ship 28 個 commits (BE 13 + FE 15),主要做了:
- A5 smoke 後 3 個 issue 修補 (實施狀態 / parties role / 設備資訊系統)
- AO statement_identifier (a)/(b) letter key 對齊
- template-edit 整頁 UX 重構成 TabView (7 tabs)
- 4 個 entity panel UI 統一 DataTable
- Loading 規範強化 + LoadingState 共用元件
- Parties N+1 fix + composable cache

目前狀態:
- 全部 commits 已落地,working tree 乾淨(pyproject.toml path dep dev mode 不 commit)
- BE 需要重啟才生效(path dep 模式不需 poetry update)
- FE 需要重新 build + 瀏覽器 hard refresh

我接下來要:[user 自行填寫,譬如「跑驗收 checklist」/「修我剛測到的 XXX bug」]

§2

驗收 checklist(建議依序測)

A. BE 起來能正常運作

B. template-edit 進入頁面

C. 基本資料 Tab 0

D. 適用控制項 Tab

E. 單位 / 人員 Tab(最需要驗收)

F. 設備 / 資訊系統 Tab

G. AO 實施狀態 / 現況說明(user 報過 bug)

H. UI 統一驗收

I. Loading 規範驗收


§3

已知 incomplete / 可能再做

  1. ssp-resources composable cache 沒做
    • 設備 + 資訊系統 panel 各打一次 /ssp-resources(兩 API call/page enter)
    • 如果 Network tab 看到打 2 次:補 useModuleFrameSspResources composable(pattern 跟 useModuleFrameParties 一樣)
  2. jedi-oscal 發版
    • 整個 phase 結束 + user 明確指示後才做
    • bump 0.0.16 → 0.0.17,主專案 pyproject 改回 pin
  3. dead code cleanup
    • partiesDialogOpen / sspResourcesDialogOpen / basicEditOpen / editMenuRef / editMenuItems / 對應 imports 都已 unreachable
    • 不影響功能,下個 phase 清

§4

⚠️ 注意事項

Working tree 該保持乾淨

git status
# 應該只有:
# - 修改: pyproject.toml         ← jedi-oscal path dep dev only,不 commit
# - 刪除: docs/conversation-history/*.zip  ← 看是否要重新加回
# - 未追蹤: docs/features/ssp-import-export-phase2.zip   ← 不該入版控
# - 未追蹤: ...CMMC_Level_1_blank_xxx.xlsx              ← 測試樣板,不該入版控

如果 git diff pyproject.toml 看到的是 dev-mode path dep 改動,不要 commit

BE 重啟流程

# 1. 找 BE process
lsof -i :8000 | head
# 2. kill -9 (memory: nohup 留 orphan PID 用 kill -9 才殺得乾淨)
kill -9 <pid>
# 3. 重啟
python main_socketio.py
# 4. tail log
tail -f log/app.log

FE rebuild

cd ~/Projects/Billows/Audit-Manager/compliance-manager-fe
npm run build:DEV
# 瀏覽器 Ctrl+Shift+R (hard refresh 清 bundle cache)

§5

重要文件路徑

文件 路徑
Bugfix SUMMARY docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bugfix-SUMMARY.md
Design A5 docs/features/FR-011.2-2605-ssp-import-export-phase2/design-A5.md
A5 SUMMARY (前段) docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-a5-SUMMARY.md
FE Loading 規範 compliance-manager-fe/CLAUDE.md L185+
BE log log/app.log (專案根目錄)
Dev DB 192.168.50.188:25432 / guidant_ai_dev / cmmgr (密碼查 .env)

接手後第一件事:跑上面 A → I checklist,把卡住的項目記下來,再決定下一步。