跳轉到

規格端待凍結清單 (Spec Freeze Action Items) — 正式發布版

發布日期: 2026-04-21
產出方: 工程端 (ENG) 盤點;本檔由需求倉補登 SSOT 錨點(單一真相來源連結)LIC 契約索引口徑對齊,供 PM/SA/治理直接引用。
前版軌跡: _inbox/規格端待凍結清單_20260419.md(初版)、99_Archives/20260514_Inbox_spec-freeze-tracking/規格端待凍結清單_20260421.md(工程原文入口封存,正文以本 docs/ 檔為準)。
目的: 以下為工程端盤點後,仍尚未凍結或存在歧義的規格項目。需要規格端(PM/SA/治理倉)接手處理並凍結,工程端才能進行後續開發。

工程端結構化回覆(歷史封存)99_Archives/20260514_Inbox_spec-freeze-tracking/規格凍結追蹤_工程端回覆表_20260421.md
分段開工放行(規格端)docs/工程開工放行與後續補件指引_20260421.md(對齊 GitHub Issue #19


更新摘要

  • LIC-NAV(AI 導覽)/Magic Link API:已完成合約對齊(OpenAPI v1.2.1),原 #4 nav_resolve_base_url 工程端已自行實作(見 §六 表列 #13)。
  • LIC310 Draft:新增 NavResolveBaseUrl 欄位支持(待契約主冊欄位名 裁決確認,見 §六 表列 #13)。
  • ⬇️ 原 Inbox 版之 LIC-NAV nav_resolve_base_url 議題降為 🟢 Low(工程端已決議實作鍵名)。
  • 其餘項目狀態不變。

一、LIC 模組(授權管理)

🔴 高優先 (High Priority — 阻斷開發)

PR 關聯:規格端針對 #1~#3 開立之 OpenAPI/CR 需求倉 PR,描述請含 Refs #19凍結追蹤 Issue #19),合併後於該 Issue 留言 PR + SHA。詳見 工程開工放行與後續補件指引_20260421.md §四

# 交付包 缺件項目 現狀說明 規格端需要的動作 影響範圍
1 LIC110 群組 CRUD + Membership + 授權指派 OpenAPI 凍結分冊 API 路徑/Schema 仍 rolling,無凍結版 operationId 產出凍結版 OpenAPI 分冊,定義完整 request/response schema 群組管理前端合約校驗
2 LIC110 bulk-assign 批次指派 API 完全未定義 path 與 body schema 定義批次指派 API 並凍結(或正式排除本輪) 批次授權功能
3 LIC100 Dashboard 4 張統計卡片 stat API 端點 全部 pending,無任何 endpoint 定義 定義 stat card API endpoint + response schema 並凍結 Dashboard 統計區塊

🟡 中優先 (Medium Priority — 影響功能完整度)

# 交付包 缺件項目 現狀說明 規格端需要的動作 影響範圍
4 LIC-NAV APIM/OAuth scopes 正式字串 建議 scope 為 rolling 狀態(OpenAPI x-oauth2-apim-proposed-scopes 與 IAM/資安凍結 audience + scope 字串 生產環境 APIM 授權
5 LIC310 Draft ↔ InReview status 字面值 casing 工程端 enum draft/inreview;契約可能用 draft/in_review 統一 casing 並於契約中宣告 API 互通測試
6 IAM120 display_name vs nickname 收斂 CR 尚未裁決兩者合一或保留兩欄 出 CR 裁決 個人資料頁欄位映射
7 IAM120 Email 變更流程 完整驗證流程(驗證、通知、舊信箱確認)未定稿 定義完整流程並凍結 個人資料修改功能

🟢 低優先 (Low Priority — 不阻斷核心流程)

# 交付包 缺件項目 現狀說明 規格端需要的動作 影響範圍
8 LIC310 LIC320/330 Dictionary API 尚未出 OpenAPI 納入下一版或正式排除 Catalog 進階查詢
9 IAM120 Anti-merge / 敏感資料遮罩策略 規則已敘述但未凍結 凍結遮罩規則 安全合規
10 PCM120 匯出功能 明確標記為「next slice」不在本輪 確認排除或納入 報表匯出
11 PCM110 dispute_meeting_ref 是否必填 產品端待決 出裁決 核准表單驗證
12 PCM130 Sub-program codes 枚舉 待定 定義枚舉值 歷程篩選
13 LIC310 nav_resolve_base_url 正式 key 名稱確認 工程端已實作為 NavResolveBaseUrl,等待契約確認命名 確認正式 key name Draft DTO 命名
14 LIC310 risk_level 欄位 雛型有此欄位但契約無對應 決定是否納入契約或移除 Catalog Review UI

二、跨模組缺件

# 項目 現狀 需要的動作
15 LIC 全模組 OpenAPI 凍結 contracts-index 仍有多項 draft/TODO 將 contracts-index 每列改為 frozenexcluded_from_freeze
16 LIC DDL/Schema 群組、AuditEvent、Catalog schema 未凍結 凍結邏輯實體與欄位語意
17 IAM420 駁回 platform_reject_reason 是否補欄 待產品確認
18 IAM220 status enum SSOT、rejected 原因揭露政策 待定
19 IAM300 BIL 繳費介面 bil_order_id 待 OpenAPI 凍結 BIL 介接 schema

三、建議處理優先順序

  1. 立即處理 (#1, #2, #3): LIC110 全 API + LIC100 Dashboard — 阻斷前端合約校驗與新功能開發
  2. 本週處理 (#4-#7): APIM scope、LIC310 casing、IAM120 欄位收斂 — 影響上線品質
  3. 下輪處理 (#8-#19): 低優先或已明確排除的項目

四、工程端已自行完成的項目(本輪新增)

以下為本輪工程端自行完成的合約對齊修正,不需規格端動作:

項目 修正內容 對齊目標
✅ LIC-NAV Navigate/Resolve Request DTO 新增 intent_text/intent_key/action_key/locale OpenAPI v1.2.1
✅ LIC-NAV Navigate/Resolve Response 新增 authz_allowed(required)/message(required)/reason_code/email_dispatched/candidate.score OpenAPI v1.2.1
✅ LIC-ML MagicLink Redeem Response 移除 token/memberId/displayName;新增 target_program_code/consumption OpenAPI v1.2.1(安全:response 不含 access token)
✅ LIC-ML HTTP Status Code 所有錯誤統一 403(原為 401) OpenAPI v1.2.1 Wave 4 規定
✅ LIC Error Envelope 改為 { code, message, request_id, trace_id } 格式 OpenAPI v1.2.1 ErrorResponse schema
✅ X-Request-Id Header 讀取並回傳 request_id OpenAPI v1.2.1 required header
✅ LIC310 ProgramDraft 新增 NavResolveBaseUrl 欄位 LIC310-F01 規格要求
✅ MagicLink Session 改為 HttpOnly Cookie(BFF pattern) OpenAPI v1.2.1 安全規範
✅ Frontend 合約對齊 更新 TypeScript types + API hooks + pages 與後端 DTO 一致

五、對整體產品的影響評估

風險等級 影響描述
🔴 群組管理 (LIC110) 是最大缺口 — 群組 CRUD、成員管理、授權批次指派雖已實作後端,但無凍結合約可供前端校驗。佔 LIC 模組 ~30% 功能面積。
🔴 Dashboard 統計 (LIC100) — 4 張卡片均無 API 定義,首頁數據區塊空白。
🟡 APIM scope 未凍結會阻斷生產環境部署前的 API 管理設定。
🟢 其餘項目不阻斷核心流程,可排入下一輪。

結論: 所有已凍結規格均已完整對齊實作(含本輪 OpenAPI v1.2.1 合約修正),無工程端遺漏。


六、SSOT 錨點補件

用途:將上表每一項對到「應改哪裡」之既有路徑;取代 PM/SA 之裁決與 OpenAPI 正文撰寫。

# 建議主責 SSOT/交付物(相對 repo 根目錄) 補充
1, 2 LIC/02_Analysis/openapi_lic_internal.yamlLIC110 區段);LIC/99_Delivery/交付開發包_LIC110_群組與授權建檔目錄/LIC/02_Analysis/20260320_Rules_LIC_授權異動稽核事件_AuditEvent.md AuditEvent 寫入語意一致;#2 若納入需新 operationIdErrors 對照
3 LIC/99_Delivery/交付開發包_LIC100_程式授權中樞目錄/LIC/02_Analysis/LIC100 分析稿;openapi_lic_internal.yaml(待增路徑) 建議併入 internal 主冊或宣告 excluded 之獨立分冊策略
4 LIC/02_Analysis/openapi_lic_ai_navigate_magiclink.yamlv1.2.1§1.3 x-oauth2-apim-proposed-scopes);LIC/02_Analysis/20260324_API_LIC_AI導覽與深連結.md IAM/資安 audience 字串聯合凍結
5 LIC/02_Analysis/openapi_lic_internal.yamlLIC310 Program Draft schema 註解/enum);LIC/02_Analysis/20260323_API_LIC_Program_Catalog_External_Draft.md 主冊註解已示例 wiredraftin_reviewsnake_case);若工程 DTOinreviewCR 選邊或 deprecated 別名
6, 7, 9 IAM/99_Delivery/交付開發包_IAM120_會員主檔與登入綁定維護/(含 01_規格/03_附錄/待決策事項清單_IAM120.md #6/#7 建議開 IAM120 專屬 CR 收斂
8 TRK/03_Solution/2B/LIC/contracts-index.md §1.2LIC/02_Analysis/20260419_補登_Inbox規格端待凍結清單_LIC低優先與索引_R2.md R2 已敘述 320/330 唯讀納主冊、寫入排除
10 PCM/99_Delivery/交付開發包_PCM120_平台自申請待審與裁定/README.md 確認 next slice 是否本輪排除
11 PCM/99_Delivery/交付開發包_PCM110_*(核准表單相關交付包)之 01_規格/ 以產品裁決更新驗收條件
12 PCM/99_Delivery/交付開發包_PCM130_審核歷程與歸檔查詢/01_規格/ 枚舉納 SSOT 字典或 OpenAPI
13 LIC/99_Delivery/交付開發包_LIC310_ProgramCatalog草稿與審核目錄/03_附錄/工程師開工指引.mdopenapi_lic_internal.yaml(待補 ProgramDraft 欄位) 工程已用 NavResolveBaseUrl;需 主冊/External Draft 對齊命名
14 LIC/99_Delivery/交付開發包_LIC310_* 雛型與欄位對照;20260323_API_LIC_Program_Catalog_External_Draft.md 擇一:納契約刪雛型欄位
15 TRK/03_Solution/2B/LIC/contracts-index.mdLIC/02_Analysis/20260403_CR_LIC_全模組契約凍結_單一internal_OpenAPI策略.mdLIC/99_Delivery/LIC_契約收口_裁決紀錄.md §七
16 LIC/02_Analysis/20260320_Rules_LIC_授權異動稽核事件_AuditEvent.mdLIC/99_Delivery/交付開發包_LIC110_*/03_附錄/schema_參考.md contracts-index §1.2 已標 DDL 本輪 excluded
17 IAM/99_Delivery/交付開發包_IAM420_關閉公司帳號申請/ 產品確認後更新 OpenAPI/欄位表
18 IAM/99_Delivery/交付開發包_IAM220_我的加入申請/01_規格/雛型欄位與OpenAPI對照表_IAM220.md status enumPCM 對齊單一 SSOT
19 IAM/99_Delivery/交付開發包_IAM300_*(若路徑不同請以 IAM SSOT Map 為準);BIL 契約倉路徑(跨模組) 多 Repo OpenAPI 治理 登錄 BIL 介接版次

LIC-NAV/ML v1.2.1 機器可讀契約(工程已對齊)

  • LIC/02_Analysis/openapi_lic_ai_navigate_magiclink.yaml
  • 人讀敘述:LIC/02_Analysis/20260324_API_LIC_AI導覽與深連結.md
  • CRLIC/02_Analysis/20260417_CR_LIC_Wave4_AI導覽_MagicLink_規格凍結.md

七、contracts-index 與 P0 裁決口徑

議題 說明
#15 與「全列 frozen」 工程盤點期望 contracts-index 每列標示 frozenexcluded_from_freeze。需求倉現行上位裁決為:在 freeze window 完成前,不得以 frozen 宣告「LIC internal 主冊整體最終凍結」,且 P0 收口子集僅含 LIC100GET /authz/menuGET /companies(company context)LIC110~310 等列為 rollingexcluded_from_freeze(見 TRK/03_Solution/2B/LIC/contracts-index.md 開頭註記與 §1.2)。
規格端實務動作 #15 落實為:逐列標示 frozenrollingexcluded_from_freeze 之一並附 CR/版次不得把「索引表上出現 frozen 字樣」等同「全模組契約已最終凍結」。若需擴張 P0 子集,必須走 LIC_契約收口_裁決紀錄 與新 CR
與本清單 #1~#3 的關係 #1~#3 為工程端 功能面 阻塞(缺 operationId/schema);contracts-index治理面 登錄。兩者並行:OpenAPI 正文與 CR(相關 PR 請 Refs #19),回寫索引列狀態。

本文件由工程端盤點起稿,2026-04-21docs/ 補登錨點後發布;請規格端逐項確認後回覆處理結果。補登追溯:LIC/02_Analysis/20260421_補登_Inbox規格端待凍結清單_發布版與SSOT錨點.md
v1.2:增連結至工程端結構化回覆表 99_Archives/20260514_Inbox_spec-freeze-tracking/規格凍結追蹤_工程端回覆表_20260421.md
v1.3:增連結至分段開工放行 docs/工程開工放行與後續補件指引_20260421.md(Issue #19)。
v1.4:高優先 #1~#3 增 PR 須 Refs #19 與 Issue 留言慣例。 v1.5:將 2026-04-21 _inbox 原文與工程回覆表改連至 99_Archives/20260514_Inbox_spec-freeze-tracking/,避免 _inbox 與正式文件雙源。