# 交接 Prompt — SSP 匯入匯出 Phase 2（2026-05-21 bugfix session 2 收尾後）

> 貼到下個 session 開頭，讓 Claude 快速接手。

---

## 目前狀態（2026-05-21 收口）

### Track A（Excel 匯入）：全部 shipped ✅

A0 → A0.1 → A1 → A2 → A3 → A4 → A5 全完成。

A5 smoke 驗收後連環 bugfix 兩個 session（2026-05-21）修補 14 個問題，詳見：
- `docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bug-reference.md`（14 bug 根因 + 修法）
- `docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bugfix-session2-SUMMARY.md`（commits 清單）

### Track B（SSP 匯出）：全部 pending

B1（Docx 樣板）→ B6（UI）尚未開始。

---

## 最新 Commits

### BE（`feature/ssp-import-export-phase2`）
```
f072777  docs: bugfix session 2 SUMMARY + bug reference 文件
5adb550  fix(module-frame): template-edit bugfix session 2 — parties/AO/SSP resources/project prefill
5aac0d5  docs: bugfix session 1 SUMMARY + 交接 prompt
ca8842b  perf(module-frame): list_parties 改 batch fetch
```

### FE（`feature/ssp-import-export-phase2`）
```
16faada  fix(module-frame): template-edit bugfix session 2 — parties/devices/info-systems picker UX + project prefill
926dd34  tweak(module-frame): 4 個 entity panel UI 統一
```

---

## 重要規範（避免踩坑）

### `statement_identifier` 雙格式
`module_frame_control_objective_defaults.statement_identifier` 有兩種格式：
- UUID（UI 手動儲存路徑）
- `(a)/(b)` letter key（Excel/docx import 路徑）

**任何 SQL JOIN 或 Python 查詢都要雙格式支援。**
詳見 `app/module_frame/service/module_frame_template_copy_service.py` Step 2 的 CTE `task_map` pattern。

### `ResponsiblePartyEntity` = link record，沒 `uid`
不能用 `BaseRepoImpl.update()`，一律用 idempotent return（查存在 → skip，不存在 → add）。

### PrimeVue 3.53 Dropdown 空 options 不觸發 event
任何依賴 Dropdown `@update:modelValue` 的流程，options 必須在互動前預載（onMounted）。

### `apply=False` marshal_with 需手動 `.dump()`
裝飾器只當文件用，返回前要顯式呼叫 `Schema(...).dump(data)`。

---

## 待辦 Follow-up

| 項目 | 說明 |
|------|------|
| **BE 重啟** | bugfix session 2 的 BE 修補（`5adb550`）需重啟 server 才生效 |
| **新建專案驗收** | 選有 AO 資料的資源庫 → 受評範圍設備/資訊系統 + AO 實施狀態應正確帶入 |
| **Track B 開始** | B1 Docx 樣板 → B2 內容組裝 → B3 Export API → B4 PDF/ODT → B5 OSCAL JSON/XML/YAML → B6 UI |
| **jedi-oscal 發版** | 整個 feature 完工後一次性 bump version + 推 Nexus（目前 dev path dep，pyproject.toml 不 commit）|
| **`pyproject.toml` dev path dep** | jedi-oscal path dep 是 dev-only，不要 commit，feature 完工才還原 pin 版號 |
| cucumber E2E | A1 T7 / A3 follow-up — compliance-manager-test repo，待環境配齊後跑 |

---

## 關鍵文件路徑

| 文件 | 路徑 |
|------|------|
| Phase tracker | `docs/features/FR-011.2-2605-ssp-import-export-phase2/README.md` |
| DB schema 對照 | `docs/claude/database-schema.md` |
| bug 14 個根因參考 | `docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bug-reference.md` |
| Session 1 bugfix SUMMARY | `docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bugfix-SUMMARY.md` |
| Session 2 bugfix SUMMARY | `docs/features/FR-011.2-2605-ssp-import-export-phase2/handoff/2026-05-21-bugfix-session2-SUMMARY.md` |
| BE log | `log/app.log`（行為異常先看這裡）|

---

## 跨 repo 路徑

```
BE:   ~/Projects/Billows/Audit-Manager/compliance-manager-be/
FE:   ~/Projects/Billows/Audit-Manager/compliance-manager-fe/
jedi: ~/Projects/Jedicogy/module/jedi-python-package/jedi-oscal/
test: ~/Projects/Billows/Audit-Manager/compliance-manager-test/
```

所有 repo 目前在 `feature/ssp-import-export-phase2` branch。

---

## 建議下個 session 開工方式

1. 確認 BE 已重啟（`5adb550` 修補生效）
2. 驗收「新建專案 AO 帶入」功能
3. 若驗收通過 → 開始 **Track B B1**（Docx 樣板 + generator 骨架）
4. 開工前先讀 `docs/features/FR-011.2-2605-ssp-import-export-phase2/README.md` tracker 確認 phase 狀態
