2026-05-22 finalized — 全 26 題決策完成,design / plan 文件已同步更新。 此份保留作歷史紀錄。
| 編號 | 問題 | 決策 |
|---|---|---|
| C1-D1 | system_menus 加 UNIQUE(group, key)? |
✅ 加(pre-flight verify 無重複後加) |
| C1-D2 | 9 個角色 description 文案? | ✅ 以 OSCAL spec / NIST SP 800-18 慣例為準(design-C1.md §3.2 已寫入 SQL) |
| 編號 | 問題 | 決策 |
|---|---|---|
| C8-D1 | DB 內 broken role_id 跑一次性 SQL 修正? | ✅ 修(pre-flight audit 數量後跑) |
| C8-D2 | prepared-for 算 organization role? |
✅ 看亞航 reference docx 確認(pre-flight) |
| 編號 | 問題 | 決策 |
|---|---|---|
| C7-D1 | TEMPLATE_VERSION v2.0.0 → v2.1.0? | ✅ Bump |
| C7-D2 | C7 是否做? | ✅ 做(兩行修改成本低) |
| 編號 | 問題 | 決策 |
|---|---|---|
| C6-D1 | 列表頁顯示「設備數 / 系統數」column? | ✅ 保留 |
| C6-D2 | 「前往 SSP 編輯」hard navigation vs tab 切換? | ✅ tab 切換(保 context 連貫) |
| C6-D3 | 詳情頁 card 顯示三項? | ✅ devices / info_systems / leveraged 全顯示 |
| 編號 | 問題 | 決策 |
|---|---|---|
| C4-D1 | request 內舊欄位處理 | ✅ unknown=EXCLUDE + log warn(向後相容) |
| C4-D2 | AuditSystemInputSchema / DeviceInputSchema class 留還是刪? |
✅ C 階段尾聲確認無 caller 後刪(C4 本期保留) |
| C4-D3 | ParticipantInputSchema.role 加 validate.OneOf? |
✅ 加 |
| 編號 | 問題 | 決策 |
|---|---|---|
| C2-D1 | Party DELETE cascade or reject? | ✅ 預設 reject,?cascade=true query 強制 |
| C2-D2 | AP closed → SSP 完全 lock or reviewer comment? | ✅ 完全 lock 寫操作(comment 屬另一獨立 feature) |
| C2-D3 | C2 分批 ship? | ✅ 分兩批:C2.1 (basic CRUD) → C2.2 (excel-import + leveraged) |
| C2-D4 | current-ssp-uid URL pattern? |
✅ /projects/<uid>/current-ssp-uid |
| 編號 | 問題 | 決策 |
|---|---|---|
| C3-D1 | Backfill SQL 跑時機? | ✅ 人工跑(PR1 ship 後 DBA 監督執行) |
| C3-D2 | PR1 ~ PR2 觀察期長度? | ✅ 1 週 |
| C3-D3 | 沒 active AP 的 project backfill? | ✅ 跳過(user 啟動 AP 後 SSP 從 MF clone 帶範圍) |
| C3-D4 | 410 response 訊息規範 | ✅ 用 GrcErrorCode pattern (GRC_410001 / GRC_410002),FE 用 error_code 查 i18n,msg 為 zh-tw fallback。對齊專案規範。 |
| C3-D5 | OscalRole ORM 處理方式 |
✅ 保留 OscalRole stack(OSCAL 文件結構用,跟 system_menus 服務不同對象 — UI dropdown vs OSCAL 匯出 metadata.roles[]);C1 同步 seed oscal_roles 9 筆 |
| 編號 | 問題 | 決策 |
|---|---|---|
| C5-D1 | AP selector 預設? | ✅ Latest active |
| C5-D2 | 預展開 accordion? | ✅ 基本資料 + 受評範圍-設備 |
| C5-D3 | 控制項 / 程序書 link 跳新頁? | ✅ 跳新頁(既有 fullpage 設計) |
| C5-D4 | leveraged section 等 C2.2 後再做? | ✅ 是(C5 first ship 不含 leveraged,accordion 顯示 placeholder) |
| C5-D5 | non-manager 編輯按鈕 hide vs disable? | ✅ disable + tooltip(user 知功能存在但無權) |
| 編號 | 我原建議 | User 覆寫 | 為什麼 |
|---|---|---|---|
| C3-D4 | 410 訊息 zh-tw 直接寫死 | 用 GrcErrorCode + FE i18n | 對齊專案規範 — 所有 error 都該走 error code 結構 + FE i18n |
| C3-D5 | OscalRole 留到 C 階段尾聲評估 | 保留 + C1 同步 seed oscal_roles |
釐清 oscal_roles 跟 system_menus 服務不同對象(OSCAL 文件 vs UI),不互相取代 |
✅ 全 26 題決策已完成 ✅ design / plan 文件已同步更新 ✅ open-decisions.md 標示 resolved
user 可切換 model 到 Sonnet,貼 handoff-to-sonnet.md 內的接手 prompt 開工。