§1
Commits(皆未 push)
57746a5b feat(FR-036): P2a-A 樣板下載填值改讀樣板 SSP
bee8946c feat(FR-036): P2a-B docx 匯入確認 + 控制項/AO strategy 改寫樣板 SSP
49c34073 feat(FR-036): P2a-C excel 匯入確認改寫樣板 SSP
dc39aa45 feat(FR-036): P2b 啟動專案 gate 改查 template_ssp_id + copy service 清理
22b19ee0 feat(FR-036): P2a-E 模板層控制項 Excel 匯入/匯出改源樣板 SSP
14719775 feat(FR-036): P2c DROP 退役 *_defaults 子系統(dev 已套)
538e8524 refactor(FR-036): P2c cleanup — 移除 inert *_defaults 子系統(56 檔)
註:a3f0ccc5 docs(FR-037) 夾在中間是 user 並行的另一 arc commit,非本期。
§3
行為差異(對 user)
- 資源庫所有讀寫(編輯 / 匯出 / docx+excel 匯入 / 模板層 Excel 批次 / 啟動專案帶入)底層 storage 從
compliance.module_frame_*_defaults 換成樣板 SSP 的 oscal.ssp_* 子表 —— FE / API 形狀不變,使用者無感。
- 唯一語意變化:模板層 Excel control 匯入由「整份覆蓋」改為「upsert」(不再清掉人工維護的內容 + 程序書掛勾)。
- dev 上 8 張舊表已不存在。
§4
規範文件齊全度
- ✅ changelog:
docs/changelog/2026-06-10-feat-fr036-phase2-template-ssp-merge.md
- ✅ design.md:補 §9 Phase 2 + P2c 完工 reconciliation
- ✅ memory:
feedback_drop_table_find_all_live_consumers_and_orphan_audit.md(+ MEMORY.md 索引)
- ✅ 本 SUMMARY
- ✅ 對話紀錄歸檔 →
docs/conversation-history/2026-06-10/fr036-phase2-template-ssp-merge/
- ✅ Notion 任務(GuidantAI Issue 任務清單)
- analysis:本期決策(template-SSP 收斂 / Excel upsert / dev-only DROP)已涵蓋於 design §9 + changelog,未另開 analysis
§5
已知 follow-up
- stg / poc 遷移 + FR-036 上線(最重要):兩環境連
oscal.ssps 都沒有,*_defaults 是未遷移 live 資料。須 FR-035(ssps 改名)+ FR-036 M1(欄位)+ M3(資料遷移)+ 三方驗零丟失 + 備份,才能 上 FR-036 code / 套 DROP migration。未排程,需 user 規劃。
- excel service
__init__ 殘留少數 inert mf_*_default 參數(None default、無 caller、無 import 依賴)—— 低優先順手清。
- push:7 個 BE commit(+ Phase 1 的 commit + jedi-oscal 3 個)皆未 push,等 user 明示。
§6
部署 handover
- BE:改 service 層,無 hot reload → user 已重啟 dev 並驗過。
- DB:dev migration 已套(
2026-06-10-fr036-drop-defaults.sql)。stg/poc 不要直接套(見 follow-up 1)。
- 套件:jedi-oscal 本期未改,無發版需求;
pyproject.toml dev path-dep 未 commit。