mf Template Defaults Phase 2 — FIXED SUMMARY

✅ FIXED — 2026-05-26 結案

§1

Metadata

項目 內容
Branch feature/mf-template-defaults-phase2
結案日期 2026-05-26
Spec docs/features/FR-018.2-2605-module-frame-template-defaults-phase2/design.md
Design docs/features/FR-028-2605-ssp-oscal-alignment/design.md §11.40
Changelog docs/changelog/2026-05-26-feat-mf-template-defaults-phase2.md
§2

完成的 Phase

Phase 內容 狀態
1 DB migration — 4 張 mf-scoped default 表
2 BE entity/repo/service × 4 套 + DI wire + 21 unit tests
3 ModuleFrameTemplateCopyService 加 Step 4-7
4 BE endpoint 改寫 (leveraged/SC) + 新增 (components/inventory)
5 FE 新建 mf-side tab 元件 + service methods + view 改 import
6 docx import mf source 改走 _run_mf_default_confirm
7 mf 343 資料遷移 + orphan SSP 280-285 清理
8 E2E verify (pytest 1268 pass, FE build pass, user 手測通過)
§3

過程中修的 follow-up bugs

  1. SC name 空白system_name vs name key 不一致
  2. diff 現值不正確_load_current_v3_lists 走舊 SSP 路徑
  3. la_uid_to_title KeyError — return dict shape 不完整
  4. SC not cloned to new project — Step 7 純 UPDATE,SC shell row 不存在時 0 rows
  5. responsible_parties 只 clone 2/6 — NULL role_id 多筆 idempotency check 誤 skip
§4

主要 commits(BE feature/mf-template-defaults-phase2

Hash 說明
f18561a3 SQL migration — 4 張 mf-scoped default 表
7a9e2727 4 套 entity/repo/service + DI + 單元測試
0402a8a2 copy_service 加 Step 4-7
93645fb1 BE endpoint 改寫 + 新增
cc80952d mf 343 資料遷移 + orphan SSP 清理
a0cadb74 docx import mf source 改寫 mf-default
a2db006b Bug 1+2 — SC name key + diff 現值來源
dbfe161b la_uid_to_title KeyError fix
657a9b7f SC not cloned + responsible_parties fix
§5

Follow-up(不在本期 scope)

  • 其他 mf (276/313/338/349/356) 的 orphan SSP cleanup — 需要個別 data migration
  • 既有 OSCAL project SSP 補 4 個 tab default backfill — 需要一次性 SQL
  • FE 兩個元件(Ssp* + ModuleFrame* tab)長期抽共用 base
  • ssp_versioning_service shell contract gap — launch_new_round 不建 sys_impl