日期:2026-10-21(第 6 棒:⑨ 驗收、準備合回 main) | branch:BE/FE/jedi 皆 feature/FR-139 | 未 push | LOG:FR-151-LOG.md | 母卡:CM-2914
公司要過 ISO 27001 或 CRA,稽核一堆沒過。老闆要在一頁看出「哪個部門幾條沒過、找哪位主管」。PM 定調補 GRC 的 G(責任)與 R(風險),C 平台本來就有。決策者 2026-10-19 結論:第一版先把 GRC 核心產出來,鎖定 Compliance/Cybersecurity 面向;供應商、財務等領域留接口慢慢加。
站 docs/features/FR-151-2610-grc-governance-risk-extension/,SA 式多頁:1-requirement/(01 背景、02 領域知識、03 使用情境)、2-analysis/(04 現況、05 決策紀錄、06 外部對照)、3-plan/(07 第一版、08 第二版含備註、10 總計畫)。PM 看 10 總計畫,決策者的結論在 10 置頂「結論」節。 舊單頁稿在 archive/。側欄分組靠 scripts/deliverables/render_index.py 的 GROUP_STAGE/GROUP_LABELS。改 md 後 python scripts/deliverables/render_index.py <資料夾> 再 commit。
oscal.ssp_risks 升格公司層風險總表(綁專案改可選),顧問只在總表填,SSP 頁籤「風險評估」改唯讀顯示關聯風險,CRA 匯出與評估目標照原路讀;不另立公司層表、不做「升級」。delete_subject。ModuleFrameTemplateEditView.vue 1,395 行)要重構,與專案規劃頁大量重疊——另開 FR,不在 FR-151。prototype/grc-dashboard.html);風險快照與趨勢先不做。e89bdb4ba(Word/PDF 改由程式依報告頁元件順序產生、單一新範本 closing_report_template.docx),首腦第 5 棒交接時代驗:closing report 四支測試 58 過、FR-151 207 過、無殘留引用、build 腳本資料檔斷言不涉舊範本。closing_report_docx_responsibility.py/_risks.py 四支的刪除落在首腦交接 commit 4c70ef1db,不在 e89bdb4ba——那個 session 先 git rm 進了 index,首腦 commit 時把整個 index 一起帶走。HEAD 內容正確、未 push,不改寫歷史;查這四支檔的去向要看 4c70ef1db。顧問今天的風險評估做完就丟還是持續維護/客戶部門分工對得到框架群組嗎/老闆會自己開系統嗎/一家客戶同時幾個專案/客戶有沒有在管供應商、記事件。列在 01 待驗表與 10 待驗節。
任務總表(此刻)
| 卡 | 線 | 內容 | 狀態 |
|---|---|---|---|
| ① CM-2915 | G | 部門加主管欄(jedi-iam)+跨租戶修正 | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ② CM-2916 | G | 控制項負責部門+批次設定(共用對話框) | ✅ 同上 |
| ③ CM-2917 | G | RACI 責任矩陣+R 落到評估目標+批次選單 | ✅ 同上 |
| ④ CM-2918 | G | GRC 總覽頁 | ✅ 同上 |
| ⑤ CM-2919 | G | 階段結案報告責任節+SSP Excel 責任矩陣 sheet | ✅ 同上(退回一次後修好) |
| ⑥ CM-2920 | R | 風險總表本體+表單改版+分頁排序 | ✅ 同上 |
| ⑦ CM-2921 | R | 稽核沒過自動建風險+刪風險清 RACI | ✅ 同上 |
| ⑧ CM-2922 | R | 風險匯出 Excel+階段報告風險節 | ✅ 同上(退回一次後修好) |
| ⑩ CM-2924 | G/R | 專案總報告補責任節與風險節 | ✅ 同上 |
| ⑪ CM-2925 | G | 資源庫編輯頁負責部門/責任矩陣(同一份) | ✅ 同上 |
| ⑫ CM-2926 | G | 部門 RACI 預設+責任分工設定頁+矩陣改總覽/例外(A6) | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑬ CM-2927 | G | RACI 的 R 回填沒指派的任務(A7) | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑭ CM-2928 | R | 風險獨立頁+表單改版(RACI 預覽/四層選控制項跨框架/兩欄/處理計畫改關聯資源庫) | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑮ CM-2929 | R | 總表補欄位(Record ID/Category/合規狀態/改善計畫三欄/複查兩欄/審查日自動帶) | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑯ CM-2930 | G | 責任分工設定 Excel 匯出匯入 | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑰ CM-2931 | G | SSP 端 RACI 入口調整(A6 改判) | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑱ CM-2932 | G/R | GRC 總覽砍掉重練(D7,雛形 prototype/grc-dashboard.html) | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測;DEV 無稽核資料,待決卡與通過率空狀態) |
| ⑲ CM-2933 | R | 單筆風險現況報告(D8,可列印頁)+拿掉編輯頁「系統記錄」卡、關聯專案搬處置段 | ✅ 首腦驗收(Notion 修正待驗證,等決策者複測) |
| ⑳ CM-2934 | R | 風險總表欄位選擇器(D9) | ✅ 首腦驗收(決策者已手測) |
| ㉑ CM-2935 | G | SSP 現況 Excel 負責部門欄+責任矩陣 sheet 匯入(D10) | ✅ 首腦驗收(API 未 HTTP 實打,手測前先重啟 BE) |
| ㉒ CM-2936 | R | 風險總表 Excel 匯入(D11) | ✅ 首腦驗收(同上;待裁匯出三欄見 §3) |
| ⑨ CM-2923 | — | SPEC(四頁新頁+九頁補節+結案報告手冊) | ✅ Done(01a30338c,首腦驗收、決策者確認) |
下一步(每項單獨等令)
決策者 2026-10-21 宣告準備整理後把 feature/FR-139 合回 main。這條 branch 從 2026-10-14(merge-base 24cc72972)起帶了 FR-135/138~151 共十餘個 FR,收尾是跨 FR 的事;FR-151 的部分併在下面「合回 main 前總清單」裡,不再單獨列。
整條 feature/FR-139 合回 main 的收尾(套件發版、還原 pin、出貨基線、SPEC 補齊、收尾修正、權限矩陣、arc-review、進版 1.27.0)已自本節拆出為獨立 arc FR-154:docs/features/FR-154-2610-fr139-branch-merge-closeout/handoff/FR-154-STATE.md,Notion 母卡 CM-2975(子卡 CM-2965~2974)。本節不再更新。FR-151 自己剩下的:21 張子卡等決策者複測、母卡 CM-2914 等收 Done。
DEV 部門 99 已改名「產品研發部」。CMMC 專案 AC.L1-b.1.i 與 GRC測試專案兩條控制項上有決策者自己設的 C/I 例外,首腦沒動。
feedback_big_feature_discussion_needs_use_case_and_verify_pm_claims)。POST /api/1.0/login body 是 {"username","password"}(不是 login_name),帳號 TEST_ADMIN_USERNAME/TEST_PASSWORD 在 test repo .env.e2e;控制樹回應含控制字元,python 解析用 json.loads(..., strict=False)。RACI 寫格 body 要包 {"cells":[...]}。驗完把測試資料還原(RACI 列、部門主管、控制項部門歸零)。python scripts/notion_case.py get CM-xxxx | grep 狀態,只在「修正待驗證」時叫醒;「Not started」是還沒人接手不是回報。zsh 不吃 ${!v} 間接展開。git status,看到不是自己的改動就別碰那支檔;commit 一律顯式 git add <檔>,commit 前 git diff --cached --stat 核對。卡片狀態不可信,以工作樹為準。useTableQuery+lazy DataTable(照機關單位管理頁);Dialog 標題用 #header 放 <h2>;必填用 required-mark+p-error 文字訊息;沒關聯的欄位不並排。test/fixtures_frozen_error_codes.py 並同步 FE error-code.json 兩語系,否則守衛紅。compliance.poams 錯(舊表、0 筆、無人寫入,現行是 oscal.poam_items)。都是 runner 查實後糾正。指名檔案、表、既有功能前 grep 一次。ui_routes 登記表,不登記誰都進不去);⑭⑲ 兩次都漏寫「需 migration」。git worktree add <scratchpad>/wt HEAD,連 .env,用主 repo 的 .venv/bin/python -m pytest,跑完 git worktree remove --force + prune。"$SSP:AC..." 的 :A 會被當修飾符展開成路徑,打出 GOV_400003 假錯誤;變數後接冒號一律寫 ${SSP}:。git add <檔> 只是加,不會把別人已 staged 的改動排除;git commit 帶走整個 index。平行 session 共用工作樹時,commit 前 git diff --cached --stat 逐行看,有不是自己的就先 git restore --staged <檔>(不動工作樹內容),或改用 git commit <檔...> 只提交指定路徑。第 5 棒交接 commit 因此帶走了結案報告 session 的四支刪除。接 Notion CM-xxxx(FR-151 ⑦ <卡名>,母卡 CM-2914)。
前置:CM-yyyy 卡尾已有首腦「✅ 驗收通過」註記。
工作目錄 ~/Projects/Billows/Audit-Manager/compliance-manager-be;FE 在 ~/Projects/Billows/Audit-Manager/compliance-manager-fe。兩 repo 都在 feature/FR-139,不切 branch。
先讀卡,卡上「怎麼做/在哪裡/手測/紀律」已自足,照卡做;只動 DEV。
<本卡關鍵提醒一到三句>
注意:pyproject.toml 的 jedi-iam path dependency 改動不要 stage;平行卡只 git add 自己的檔。
<若有主線 migration:回寫時明講「出貨基線待重產」(決策者已裁:等 FR 結束一起重產,不要自己動)。>
做完:各 repo 顯式 git add 檔名 commit、回寫本卡白話補充(commit hash、手測清單、打折處)、狀態改「修正待驗證」。push 等令。
model opus/effort high。(⑧ 用 sonnet)
| 卡 | 做什麼 | 狀態 |
|---|---|---|
| CM-2954 | 規劃頁「新增任務」靜默失敗 — 根因比預期廣(props 指原範本、每輪各一複製品),改走對照表+當前輪,查無回 404 | ✅ 首腦驗收(BE 8d2af9060);缺口:測試未覆蓋新主路徑,記卡上 |
| CM-2955 | 階段推進按鈕亮著、按了 403 — 裁示走 A:stage-info 一併查能力、FE 灰按鈕附原因;DEV PM 角色補能力、出貨一般成員不加 | ✅ 首腦驗收(BE 6fb34c2e2、FE 95e93a47;畫面待決策者重啟 BE 複測) |
spec 與建卡結果:handoff/notion-cards-bugs-from-fr152(.json|-made.json)。