---
title: "04 現況與缺口 — 底層都在，缺的是上面 (FR-151)"
brand: "Guidant AI · **FR-151** GRC 延伸"
eyebrow: "FR-151 · 二、分析與決策 · 04 現況與缺口"
h1: "現況與缺口：系統現在有什麼、差什麼"
subtitle: "2026-10-19 查 DEV 與程式碼"
lede: "逐一盤點部門樹、角色權限、OSCAL 責任方、專案風險表、POA&M、結案報告、字典機制的現況，標出本案要動哪些。結論：第一版真正從零開始的只有 RACI 欄位與儀表板，其餘是加欄位、加頁籤、串資料。"
chips: [
  {text: "既有要改：4 處", kind: accent},
  {text: "全新：儀表板 1 頁", kind: ok},
  {text: "Excel 範本九張頁已對照", kind: plain}
]
footer: "FR-151 · 二、分析與決策 · 04 現況與缺口 · 依據：scripts/init/02-schema.sql、jedi-iam org_unit model、FR-132／135／141／145 文件"
---

## 變更紀錄 {#changelog nav="變更紀錄"}

| 日期 | 變更 |
|---|---|
| 2026-10-19 | 本案動作欄的決策點改用 05 新編號（B1、B2、A1～A5、D1），並標第一版已裁 |
| 2026-10-19 | 自 discussion.md v4「現況盤點」「Excel 範本九張頁」搬出；本案動作欄改為第一版口徑；補框架群組實查數字 |

---

## 結論 {#conclusion nav="結論"}

::: {.callout .decided}
**第一版從零開始的只有「RACI 欄位」與「GRC 總覽頁」。其餘四處是改既有：部門表加主管、SSP 控制項加負責部門、SSP 加責任矩陣頁籤、結案報告加責任節。**
:::

---

## 既有元件盤點 {#inventory nav="盤點表"}

| 元件 | 現況（2026-10-19 查） | 本案動作 |
|---|---|---|
| 部門樹 `public.org_units` | jedi-iam 套件實作；欄位 `name／parent_id／path／description／metadata jsonb`；FE `views/org-unit/OrgUnitManage.vue`；人掛部門 `user_org_units`（含主要部門、起訖日）。**沒有主管欄** | **加「主管」**（B1，已裁） |
| 角色與權限 FR-132 | 三段式能力點、角色套用到部門範圍與起訖日、「上層部門涵蓋子部門」已定（D4）、部門資料隔離 RLS 不做（D12） | 不動。儀表板的「主管看自己子樹」用既有 `path` 做範圍過濾，不碰 RLS |
| 框架群組 `oscal.catalog_groups` | OSCAL 格式規定控制項按章節分群；CRA 六群九十六條、CMMC L2 十四群 | 不動。拿來當「整批設部門」的單位 |
| SSP 控制項實作 `oscal.ssp_control_implementations` | 實作說明、狀態、AO 判定、OSCAL `responsible_roles` jsonb（system-owner 等文件角色） | **加負責部門、RACI 四格**（B2、A1～A5，已裁）。OSCAL 責任方保留不混用 |
| SSP 版本機制 | 定版快照 | RACI 掛 SSP 後隨快照凍結，報告印的是當時負責人 |
| 專案參與者 `project_participants.role` | manager／auditor／viewer 單欄 | 不動 |
| 任務指派、FR-148 任務關卡 | 任務有處理人、每關可多人 | 不動；RACI 的 R 預帶任務處理人 |
| 專案層風險 `oscal.ssp_risks`（FR-135 R1） | 綁 SSP；`impact／likelihood`（facets）、`mitigating_factors／remediations／related_control_ids`、狀態五態 | 第一版不動。第二版公司層風險總表另立表，可引用／升級專案風險（D1，第二版再裁） |
| 稽核結果風險 `oscal.assessment_risks`、FR-044 NOT MET 自動建中風險 | 稽核判定層的風險，掛 AR result 與 POA&M | 第二版自動餵入的來源 |
| POA&M `compliance.poams` | `status／due_date／assignee_uid／org_unit_id` | 第一版儀表板直接讀「沒過的控制項與 POA&M 狀態」 |
| 結案報告 FR-145 | 一輪一份 Word／Excel | **加「責任歸屬」一節** |
| SSP Excel 匯出 FR-141 | 多 sheet 結構 | 加「責任矩陣」sheet（可後移） |
| 下拉字典 `system_menus` | 既有機制，FE `API.SYSTEM_MENU` | 第二版 Domain／Category／Risk Tier 進字典；第一版 RACI 四個字母是程式列舉不進字典 |
| 專案儀表板、AI 儀表板 | 圖表元件已有 | GRC 總覽頁複用元件 |
| 資訊系統與設備（jedi-asset） | `information_systems.system_owner／org_unit_id` | 第二版風險總表「資產」欄引用 |
| 法規通報 FR-136 | 縮回 FR-135 第三期 | 事件管理（R 後續來源）的「對外通報」步驟，本案不碰 |

---

## PM 給的 Excel 範本九張頁 {#excel nav="Excel 範本"}

結構是「一本帳、七種看法」：只有 GRC Register 要人填，其餘全是公式。檔案 `~/Desktop/00_Compliance Manager/GRC/GRC Overview Dashboard.xlsx`。**這是第二版的欄位來源，第一版只參考 Business Unit View 那一頁的形狀。**

| 頁 | 是什麼 | 對應我們 | 版 |
|---|---|---|---|
| Instructions | 只填 Register；總分融合剩餘風險、合規狀態、未結議題、審查逾期、控制有效性 | 無 | |
| Lookups | 七組下拉：Domain 八個、Category 九個、Business Unit 九個、Status 七個、Compliance Status 三個、Trend 三個、Risk Tier 四級 | `system_menus`；Business Unit 用我們的部門樹 | 第二版 |
| **GRC Register** | 主帳 33 欄。五群：身分（編號／領域／類型／標題／部門／負責人／狀態／合規狀態）；風險計算（固有 1–25、控制有效性 %、剩餘、等級門檻 15／10／6）；議題（未結數／老化／嚴重度）；審查（審查日／距今／逾期）；指標與分數（KRI、加權分、健康指數、成熟度） | 風險總表；議題群對應 POA&M；指標群屬 KRI 後續來源 | 第二版 |
| Domain Scorecard | 八個領域各一列統計 | 儀表板「領域記分卡」 | 第二版 |
| **Business Unit View** | 九個部門各一列：筆數、未結議題、平均剩餘、不合規數、升級數 | **第一版儀表板的部門統計就是這頁的形狀**，只是數字來源是稽核缺失不是風險總表 | **第一版** |
| Review Queue | 審查欄排成清單 | 儀表板「審查佇列」 | 第二版 |
| Risk Heatmap | 四張 KPI 卡＋五乘五格 | 儀表板「熱圖」；點格列風險與負責人 | 第二版 |
| Trend | 按月趨勢 | 儀表板「月趨勢」 | 第二版 |
| **Dashboard** | 八張 KPI 卡、迷你熱圖、合規狀態分佈、各領域 Critical 數 | PM「做出這種感覺」的目標頁 | 第二版完整；第一版只有件數卡 |

兩個提醒：

- 範本沒存衝擊與可能性，只存乘積。我們要存兩個原始值再算，格子才準。
- 健康指數、加權分、成熟度是範本自己發明的公式，不是 GRC 標準。不做合成分數，避免老闆問「這分數怎麼來」答不出。
