# FR-135 CRA 合規框架 — LOG（append-only）

## 2026-10-10 第 1 棒（本 session，Fable）

**commits**：`5bde525e5` 收錄參考 → `227bac52a` 缺口分析初稿 → `959a0c27b` 不嵌 ISO → `9ae4f74bf` §8 順序 → `ed3f1c711` 中性措辭 → `4e2f59d0a` 篩選能力已在 → `82f94e3cd` primer＋原文 → `070540052` §9 第二輪查證。

**做了**：讀 COMPLYD 摘要；兩支 opus 探脈盤點框架接入機制與通知／流程／弱點／文件能力；爬 EUR-Lex 原文抽 Annex I／II；爬 COMPLYD 產品頁與三篇 blog；下載 ENISA 對照報告 69 頁看結構；查 EN 40000 進度與市面工具；實查 FE 審閱頁、BE 更新服務、套件 ap_draft 與 ao_derivation、DEV applicability 分布。

**被推翻的**：
- 初稿把「能不能篩範圍」寫成缺口 → 決策者指出資源庫＋SSP 兩層已在，改為「理由與依據」。
- 再被決策者要求查證 → 發現真正缺口是 status／applicability 不連動 bug，理由欄位已有。
- 初稿假設 CRA catalog 要編 60～90 條 AO → 查到無 AO 控制項系統允許，第一版 30 條即可。
- 參考摘要 Part I 六七點 → 原文 13 項。
- memory 說 iso27002 adapter 已存在 → 現行源碼查無，已過時。

**教訓**：決策者兩度點名「不要順著我的話走，查證後才回」。第一次順著「基準庫進去就能篩」收斂、第二次又順著「那第二步降級」收斂，都沒回頭對探脈結論。之後任何「所以是不是 X」的追問，先查再答。

**未查證**：ENISA SRP 有無機器介面；STG／POC 有無 ISO 資料；`oscal.poams` 與 `compliance.poams` 誰正式；規劃期標 NA 的控制項其準備期任務是否仍顯示。

## 2026-10-11 第 1 棒續（同 session，Fable，context 將滿）

**commits**：`495fa335d` STATE／LOG 建檔 → 本次 導入指南。

**做了**：回答「導入 CRA 幾個大項目」（五大項：框架入庫／產品側寫與風險評估／持續義務／文件產出／版本繼承）；寫 `docs/reference/CRA/cra-implementation-guide.md` 收斂研究結果；建議開 FR 當母卡（切法見指南 §6）。

**修正**：Part I 條目數前文寫「13 項」，精確是條 (1) 一條＋條 (2)(a)～(m) 十三條，catalog 共 **31** 條（非 30）。指南已用 31。

**未做**：沒開 FR、沒開卡、沒改 code。決策者說此棒做完即交接首腦任務。

**續**：`37441cbea` 指南初版（只寫導入段、表格前無空行→HTML 跑版）→ `5c25c2a30` HTML → `50c991484` 重寫為七部自足版並重產 HTML。決策者已發首腦交接 prompt，本棒結束。

## 2026-10-11 第 2 棒（首腦，Fable）

**commits**：本次 指南補第五部（與市面工具對照）。

**做了**：決策者看完指南後表示看不出「我們跟市面工具比差在哪、差的東西補在哪」，派 subagent 在指南第四部後插入新第五部「與市面工具的對照——我們差哪些、補在哪裡」：三句結論、COMPLYD 11 步分三段白話說明、逐步對照表（✅／🟡／❌）、缺口落點表（補在哪個畫面、用什麼既有機制、其他框架會不會受影響）、三份文件（Annex VII／II／V）是什麼與何時出、兩個未查清點。原第五～七部順延為第六～八部，內文引用改號。

**被推翻的**：第 1 棒寫「產品×版本實體全缺」→ 更正為「資訊系統盤點可當產品主檔，缺版本與專案連結」，指南大項 C／E 與順序圖同步改。

**結論**：完全沒有對應功能的只有三件——通報、規劃期風險評估、支援期；其餘是既有畫面加欄位或加文件範本。會動到程式的只有四處：不適用連動 bug、規劃期風險登錄入口、資訊系統版本子清單與專案連結、通報新模組。

## 2026-10-11 第 2 棒續（首腦，Fable）

**commits**：本次 新寫 `cra-implementation-plan.md`（＋html）、STATE／LOG 更新。

**決策者一日討論的結論**：
- 真正要新做的是**三件東西加一個底層機制**：產品主檔加版本與支援期、風險登錄、通報模組；底層是「SSP 表單依資源庫可設定」。其餘全是既有畫面加欄位、加資料、加文件範本。
- **選項 A 定案**：SSP 表單可設定機制要做（最小版），排在框架入庫後、側寫與風險前；理由是下一個大題 GRC 一定需要多框架表單，CRA 當第一個使用者。
- **AO 第一版不寫**：第〇步跑完再針對「一條包多件事」的條目自拆；每條入庫附「建議證據」。EN 40000-1-4 出版後以框架新版本替換。
- **通報只做寄信與紀錄**：建案、三期限倒數、寄信、回填送件、時間軸；不對接 ENISA（只有網頁人工填表、無機器介面）。
- **三份文件去向不是提交**：技術文件自留十年備查、使用者資訊隨產品、符合性聲明自簽附上；官方無範本，以法規必含項目當大綱。
- **稽核階段簡化（Default 類顧問檢查或跳過）列 GRC 待辦**，本期一律走現有流程、顧問擔任稽核員。
- 風險評估第一版手填登錄表，不做自動生威脅。

**重寫規劃稿原因**：研究筆記（指南）內容發散、八部堆砌，PM 讀不出結論與要裁的事；六欄表在 HTML 撐爆版面。新稿第一頁即結論與待裁，表格最多五欄，不出現表名欄位名，257 行。指南保留為研究筆記。

**render 方式**：`render_index.py` 對開 FR 前的暫存資料夾不適用（資料夾名非 `FR-xxx-` 格式，`build_meta` 取 FR 編號時 IndexError），改用 `render_doc.py` 單頁。進 FR 資料夾後再整站 build。

## 2026-10-11 第 2 棒續（首腦，Fable）

**commits**：本次 規劃稿依七項裁示定稿、開 FR-135、搬檔、整站 build。

**決策者裁示七項**：
1. 開 FR-135 母卡，涵蓋第〇步、框架入庫、資源庫表單設定、側寫與風險、文件；通報模組與跨框架對應各另開整數號；連動 bug 獨立小卡。
2. 風險評估第一版做手填登錄表雛形，預留「威脅來源」「元件連結」欄位，下一階段接依 SSP 元件類型建議威脅。
3. 表單設定做成合規資源庫第四件（與控制項選集、SSP 範本、稽核流程範本並列），隨資源庫複製；欄位定義隨資源庫、值存專案 SSP 擴充屬性。SEMI E187 這類產品型框架之後複製 CRA 資源庫微調。
4. AO 第一版不寫，每條附建議證據；第〇步跑完再決定拆哪幾條。
5. 通報第一版只做建案、三期限倒數、寄信、回填送件紀錄、時間軸；不對接 ENISA。
6. 第〇步第一期就開，與 catalog 灌入同一張卡。
7. 稽核階段對 CRA 專案當「檢查」：不跳過，顧問擔任稽核員，判定文件與證據做對了沒；系統不改，寫進資源庫說明與手冊。

**被推翻的**：第 2 棒續寫的「稽核簡化列 GRC 待辦、本期一律走現有流程」改為裁示 7 的「檢查」語意（流程不變、語意寫進說明）；「不做自動生威脅」細化為「畫架構圖自動生威脅留下一階段，先做依元件類型建議威脅」。

**開 FR-135**：登記表新增一列；開 FR 前暫存的規劃稿與 STATE／LOG 用 `git mv` 搬進 `docs/features/FR-135-2610-cra-compliance-framework/`（規劃稿當主文件，STATE／LOG 改名 `handoff/FR-135-STATE.md`／`FR-135-LOG.md`），舊單頁 html 刪除改走整站 build。`docs/reference/CRA/` 研究筆記不動，只改指向新路徑的引用。

**第一期三張子卡規劃**：①ENISA 對照底稿＋31 條建議證據草稿；②31 條 catalog 灌入 DEV＋CRA 公版資源庫＋第〇步（掛 FR-126 證據、產掛不上清單）；③連動 bug 獨立小卡。Notion 卡未開，等決策者發令。

## 2026-10-11 第 2 棒續・開卡（首腦，Fable）

**commits**：`38a1468ba` 規劃稿定稿＋開 FR-135＋搬檔 → 本次 開卡回寫。

**做了**：Notion 一次建四張：母卡 CM-2675、第 1 棒 CM-2676（ENISA 對照底稿＋31 條建議證據草稿）、第 2 棒 CM-2677（seed SQL 灌 DEV＋CRA 公版資源庫＋第〇步掛不上清單）、第 3 棒 CM-2678（不適用連動 bug）。母卡 append 子卡清單，子卡 append 母卡號。STATE／README 記卡號。

**開卡前核對的事實**（都進了卡）：框架匯入 adapter 登記表只有 CMMC_2、Excel 匯入也走 CMMC 格式、FE 匯入頁只收 PDF → 第 2 棒走 seed SQL，形狀照套件 `001-cmmc-2-catalog-seed.sql`；DEV part name 慣例 statement／guidance／assessment-objective；bug 的四個錨點行號與 AO 層不同步的判斷；FR-126 證據產物位置。

**未做**：沒派工（等令）。第二期（資源庫第四件、資訊系統版本、側寫欄位、風險登錄頁籤）與第三期（通報、文件範本）未開卡，等第一期清單出來再切。

**branch 切換（2026-10-11 晚）**：決策者自 `feature/FR-134` HEAD（`b9beaea23`）開 `feature/FR-135`，FR-135 之後全在此 branch。四張 Notion 卡已 append branch 更正；runner prompt 同步改。

## 2026-10-11 第 2 棒收棒（首腦，Fable）

**commits**：`0ccea4af7` branch 切 FR-135 → `3ca6884b7`（2678）→ `d9e45053a`（2676）→ `1a7bc04ec`（2677）→ `072031d97` 指南更正無 AO 準備期不開工。

**做了**：三棒派出（2676、2678 平行；2677 等 2678）並逐張驗收：開 diff、自跑 test、自做突變測試、DEV 自查計數與 NA 快照、抽讀文件與抄錄檢查。2676 runner 忘改狀態，首腦代改。

**被推翻的**：指南「無 AO 時準備期同樣開一筆」——第〇步實測 0 個工作，讀碼確認是資源庫預設流程範本全空所致。

**教訓**：runner 的「打折說明」都寫得老實（API 直打未走瀏覽器、SBOM 非自家產品、UI 手測未做），首腦驗收照常以自己查 DB／跑 test 為準，不信自報；瀏覽器層留給決策者。

**交接**：context 用量高，第一期收乾淨是交接點；下一棒從 STATE「下一棒要做的」接，先等決策者瀏覽器複核與三項裁示（seed 是否隨出貨、兩個順帶 bug 是否開卡、何時開 design）。

## 2026-10-11 第 3 棒（首腦，Fable）——第一期補卡八張、發版、裁示三項

**commits**（BE，全部已 push）：`3336f681f` STATE 補段 → `0c90ccf0e` 開四卡 → `848582849`（2679 seed 搬套件）→ `b99a2c719`（2680 部分更新清空狀態）→ `5985a7647`（2681 建庫回應 draft）→ `f8756b608`（2682 公版 CLI）→ `43b4fb938` 開 2683 → `3861b182e`（2683 BE 守門＋can_edit）→ `4679f738b` 開 2684 → `09a6cb08d`（2684 守門上移＋守衛測試）→ `f17bba21b` 開 2685 → `a5a1da7d9` 開 2686 → `7315b6a05`（2685 第一段英文稿）→ `160c145e2` 重 build HTML → `97721fb51` STATE 收不卡審稿 → `8067e38ab`（2685 第二段 DEV UPDATE）→ `30124c320` pin 2.5.2。
FE（已 push）：`87745b0b`（2683 標記唯讀）、`5e183726`（2686 瀏覽對話框三處）。
套件 jedi-python-package（已 push）：`3f2c3d2a`（002／003 CRA seed）、`adc54f5e`（data-access.md 鏡像）、`cc5c515d`（seed 改英文）、`3d7362fb`（bump 2.5.2）。**jedi-oscal-v2 2.5.2 已推 Nexus。**

**Notion**：新開 CM-2679～2686 八張，全部「修正待驗證」；加上原第一期三張 CM-2676～2678，共十一張等決策者瀏覽器複核。母卡 CM-2675 維持 Not started。

**做了什麼**：
- 補卡八張做完並逐張驗收：seed 搬套件、兩個順帶 bug、CRA 公版 SYSTEM 化、資源庫對非自有庫標記唯讀且刪除回 403、守門上移共同入口＋AST 守衛測試、CRA 全英文＋補 ENISA 漏項、瀏覽對話框三處顯示。
- jedi-oscal-v2 發版 2.5.2 並換 pin；BE／FE／套件三 repo push。

**決策**：
- CRA 公版 SYSTEM 化選「裝機時由程式建」（`RUN_MODE=seed-public-libraries`）。被排除：純 SQL 模擬 clone，因為等於第二套建庫邏輯，clone 規則一改就脫鉤；只給平台管理員升格開關，因為開箱即用會變成裝機 SOP 多一步。推理全文見 `docs/analysis/2026-10-11-cra-public-resource-library-seeding.md`。
- 守門根治選「上移到 `verify_module_frame_exists_by_uid(writable=True)`＋AST 守衛」。被排除：維持葉子只補三支，因為這是第五次葉子修補，無守衛仍會再漏。見 `docs/analysis/2026-10-11-module-frame-ownership-guard-centralization.md`。
- CRA 框架全英文，比照 CMMC。被排除：維持中英混，因為不專業、歐洲稽核員看不懂中文證據；做框架翻譯表，因為是新機制、波及七張表，列 GRC 待辦。
- 建議證據不卡審稿，英文稿先回灌，顧問日後確認再改。理由：目前無人能判斷 ENISA 內容，卡住會擋出貨鏈。
- 不對 CRA 版本掛官方 PDF。理由：系統沒有「幫既有版本掛檔」的路徑，且整部法規 400 頁預覽意義低，等客戶要求再做。

**教訓**：
- 短卡各自重驗是浪費，接縫（出貨鏈順序、FE 吃 BE 新欄位、守門上移後的舊呼叫點）單卡看不到；改為一條鏈做完在接縫驗一次，重型驗證只留守門那張。已入 memory `feedback_verification_depth_by_task_scale`。
- 平行 runner 共用工作樹，2680 的 commit 吃進 2679 暫存的刪檔；結果正確，但 commit 內容混棒。
- sonnet runner 兩棒（2680、2681）沒回寫 Notion，首腦代補；opus 棒都有回寫。

**推翻了什麼**：
- 「CMMC 公版資源庫比照」→ CMMC 從來沒有 SYSTEM 資源庫（安裝包 seed 零筆、DEV 全 TENANT），有公版先例的是檢測基準庫，改比照它。
- 「Guidance 是法條」→ 是第 1 棒 AI 從 ENISA 子要求推出的詮釋，非官方；抽查 I.2.b 漏一項、自加一項。
- 「守門只是漏三支」→ 根因是守門掛在 35 個葉子而非共同入口、沒有守衛測試，且 CLAUDE.md「RLS 處理隔離」在 oscal 表不成立、無人標例外。
- 「條列不分行是 seed 資料問題」→ DB prose 含換行，是 FE 對話框沒設 pre-wrap。
- 2682 runner 發現 DELETE 公版回 500，首腦先判「刪除沒驗歸屬」→ 實為 RLS 擋下後 ORM 丟 StaleDataError，根因同守門散落。

**留給下一棒**：決策者瀏覽器複核十一張卡後改 Done；第二期從 design.md 開始，輸入是 `step-zero-gap-list.md` 第四節（系統層兩項：規劃頁顯示條文與建議證據、無 AO 時準備期開工；CRA 層四項），design 要把系統層與 CRA 層分開寫。DEV 三個 CMMC 版本原始 PDF 遺失（兩個 MinIO 無 key、一個指向 192.168.50.123 agent）屬測資；瀏覽對話框「有檔案欄位但檔不見」的第三態未處理，不擋出貨，待裁。

## 2026-10-11 第 4 棒（首腦，Fable）——第二期探脈、討論稿、D1～D14 全裁

**commits**：`68d07ff53` 開 CM-2687＋STATE 待裁改版 → `a3446972c` 第二期討論稿 phase2-discussion.md＋重 build。

**做了**：接手盤點後決策者裁三項（第二期範圍合併、design 拆兩份、表單設定最小版邊界）；瀏覽對話框第三態裁修（開 CM-2687，套件 500→404＋FE 第三態，決策者已派）、DEV CMMC PDF 遺失裁不管。四條 opus 探脈平行（規劃頁顯示鏈／無 AO 開工鏈／表單設定與 SSP 擴充／CRA 內容層）→ opus 寫討論稿 → 首腦補查三件（451=SYSTEM 公版掛專案 1398、449=租戶測資掛 1397；STG/POC 無 CRA；舊套程序書掛法 0 筆）→ 決策者逐項裁 D1～D14。

**決策**（全文見 STATE「第二期裁示」）：D9 風險評估走新表、欄位對齊 OSCAL 風險物件、掛專案 SSP、與改善計畫分開；D13 通報窗口與製造商是 SSP Party 角色、政策與通告是 link，不動資訊系統主檔；D6 AO 拆分不等顧問、分析模式自產範本；D5 刪 451 重建；D7 收舊套；D11 刪舊 clone 端點；其餘照討論稿建議。

**被推翻的**：
- 首腦 D9 三輪改口（借 AR 殼→借 POA&M→新表），決策者兩度不接受。教訓：換答案時若理由不是新查到的事實而是換評分標準，就是在猜決策者想聽什麼；應停下承認不確定、列出沒查的事。最後裁新表的理由是產品語意（改善計畫＝結案才有）優先於結構最省。
- 首腦 D13「第二期放 SC.props、第三期搬主檔」→ 決策者點破「只是往後拖、同一筆資料存兩處」，改為 OSCAL Party/link 一次做對。
- 探脈 B 推翻 STATE「無 AO 準備期 0 工作＝退路從沒被走過」的表面說法：退回控制項層骨架已在，根因是預設「收證據」範本是 tenant 102 TENANT scope 且出貨基線強制範本表為空。
- 探脈 C 推翻規劃稿「資源庫四件並列」：第三件 audit_flow_template_uid 無任何寫入者；且系統沒有「複製資源庫」功能。

**教訓**：決策者問「這是什麼、對什麼設風險、COMPLYD 怎麼做」時，要回到法規與競品講清楚物件本質，再談存哪；先講存哪會讓他無從判斷。

**留給下一棒**：design-platform.md／design-cra.md 落地（本棒派中）→ 抽查 → 開 P2-A～D 卡。CM-2687 runner 進行中（pyproject path dependency 是它開的，不碰）。

## 2026-10-11 第 4 棒續（首腦，Fable）——design 兩份、第二期開卡八張、第一波四棒收齊

**commits**（BE）：`304c17dd7` design-platform（session 撰）→ `5b23f2477` design-cra（session 撰）→ `d722e9830` STATE 登記＋D4／D13 落地更正 → `e4b43bf17` 開第一波四卡 → `e31b4a5ee` 開第二波四卡 → 四棒 runner：`d75b6f498`（A1 BE）、`0a915e658`（F1）、`48d037741`（C1 md）、`5e621248f`（B1）。FE `c0eb6418`（A1）。套件 `d91974f1`（C1 seed 004、2.5.3 未發版）。

**做了**：兩份 design 由 user 另開 session 撰寫（subagent 版 50 分鐘零落檔被砍）；首腦抽查通過並記兩處落地更正（D4 走 phase=seed migration 不改 04 檢查；D13 角色掛 party props 不寫 responsible_parties，因建專案 party uuid 重產）。開卡員 subagent 15 分鐘零產出被砍，首腦自建第一波四卡（CM-2688～2691，161 blocks）與第二波四卡（CM-2692～2695，146 blocks）。第一波四棒 user 派出，23:42 全部回寫「修正待驗證」。首腦 DEV 複核：B1 範本 SYSTEM|1|1；F1 欄在、暫名庫 452 軟刪；C1 AO 25 筆冪等；A1 回傳帶兩欄；守衛 372 過 2 紅，**兩紅在基線 e31b4a5ee 已紅**（permission_matrix_three_way、route_guard_inventory），非本波造成。

**決策**：第二期總圖（三期＋收口、四波次）寫進 STATE；D9 風險評估走新表（排除借 AR／POA&M／props）；D13 走 OSCAL Party＋link。

**教訓**：
- 今日 subagent 三次長時間零產出（design×2、開卡×1），共性是「整份寫在記憶裡最後一次吐」；改派 session 並要求「先落骨架、每兩節 append」後 15 分鐘內落檔。往後 ≥300 行文件產出一律加這條硬規則，或直接開 session。
- 首腦 D9 三輪換答案被決策者兩度退回；換答案時若沒有新事實只是換評分標準，等於在猜決策者想聽什麼。正確做法是承認不確定、列出沒查的事。
- 探脈寫的「兩紅非本卡造成」要以基線 worktree 實跑驗證，不信自報（本次驗證屬實）。

**推翻了什麼**：討論稿 D4「改 04-seed-core 檢查放行」→ design-platform P1 走 phase=seed migration（fr093-4d 先例、README 規範）。討論稿 D13「第二期 props、第三期搬主檔」→ 決策者點破同一筆資料存兩處，改 Party/link 一次做對。C1 卡預估 AO 21 → 實拆 25（I.2.d、I.2.l、II.2 各多一，理由在卡）。

**留給下一棒**：決策者瀏覽器驗第一波四卡；派第二波（B2 依賴 B1 已到位、F2 依賴 F1 已到位、V1／C2 無依賴）；F1 主線 migration 一支「出貨基線待重產」要首腦排；FE `error-code.json` 兩語系補 `MODULE_FRAME_400013`（F2 開端點時一起）；專案 1397 的 SSP 3919 catalog 副本無 guidance 段落（較早建的副本），要 1397 也顯示建議證據需重建或補資料，屬決策者裁示；兩個基線既有紅燈（permission matrix、route guard inventory `GET /survey`）另開小卡。

## 2026-10-12 第 4 棒續・早上（首腦，Fable）——公版機制裁撤、DEV 清 CRA 測資、F4 改法

**commits**：`410e8aada` seed 補頻率 annually（隨後整檔被刪，留作紀錄）→ 本次 拔機制＋STATE／LOG。

**做了**：決策者驗 A1 找不到專案 1398（CM-2682 runner 驗完軟刪）；首腦誤把 status 改回 in_progress 後發現 deleted_at 才是關鍵，撤回。決策者改口「資源庫不該有公版」：DEV 兩個 CRA 專案（1397、1398）與三本 CRA 資源庫（449、451、452）軟刪；拔 `seed-public-libraries` 整條（main.py 入口、CLI 檔、installer/public_libraries.sh、install.sh 兩處呼叫、build_bundle 三行、init README 列、domain-capabilities 改為裁撤註記、analysis 檔頭加裁撤）。守衛測試通過（基線兩紅照舊）。

**決策**：公版資源庫不隨出貨建，顧問自建租戶版；F4 改「`create_resource_library` 建庫時依框架 code 帶預設」（表單設定、Annex II 預設文字、Party 角色空殼、文件範本預掛同機制）；C4 取消；C3 併 F4。

**推翻了什麼**：第一期 CM-2682「CRA 公版 SYSTEM 化、install.sh 跑 seed」（決策者原裁「開箱即用」，今改口「資源庫是顧問的事」）；討論稿 D5；design-cra §6.1 seed 段、§6.8、§6.9、拆分 F4／C3／C4 待改版。CM-2683／2684 的 SYSTEM 唯讀守門與歸屬守門保留（分享庫仍用）。

**教訓**：決策者說「我誤會了」的那一刻，前一期的裁示要主動盤出哪些跟著失效（本次首腦有列表、決策者點頭後才拔），不要只拔眼前那條。順帶小坑：資源庫 `frequency` 沒給會落 `none`，FE 沒這個 i18n key 直接畫 key 字串；`create_resource_library` 的呼叫端都要給頻率，建庫預設機制（F4）要帶。

**留給下一棒**：決策者自建 CRA 資源庫與專案後驗第一波；派第二波（B2／F2／V1／C2 卡內容不受本次影響；C2 卡提到「資源庫範本 449 預掛」那條手測改用新建的資源庫）；開第三波前先派 session 改 design-cra 三段與拆分表；F1 的主線 migration 出貨基線待重產仍在。

## 2026-10-12 第 4 棒續・上午（首腦，Fable）——第一波驗收中冒出的 AO 問題

**commits**：`2be305c0c` 拔公版機制 → 本次 STATE／LOG。Notion：開 CM-2696（C1b）。

**做了**：決策者驗 A1 時三連問：建議證據哪來的（AI 依 ENISA 子要求詮釋，非官方；英文介面標 Guidance 是 OSCAL 段落型別名）；為何從 obj.3 起（DB 排序號副作用，與畫面 [a][b] 對不上）；是否該放 AO 底下（對，做事的人看 AO）→ 開 C1b。再問「交什麼檔」→ 首腦提三段式（Deliverable／Must show／In Guidant AI）→ 決策者點破「很多證據是專案其他頁做完就有的，列出來要人交怪怪的」→ 首腦提「AO 證據來源三類」設計，①類系統帶入不要人上傳；決策者再問 [a][d] 是否官方要求 → 查原文：[a] Annex I Part I (2) 明指 Art.13(2) 風險評估；[d] 依 Art.13(3)(7)，repo 內無一手原文（只抓了 Annex），AO 稿作者有標註。決策者裁「AO 很大機會再調，先掃矛盾＋出中英對照表」→ 派分析員（含抓 Article 13/14 原文進 reference）。C1b 暫緩派。

**決策**：C1b 開卡但等掃描；AO 證據來源機制列待裁設計題；Article 13 原文補進 reference。

**教訓**：第一期「AO 第一版不寫、第〇步後再拆」是對的，但拆的時候只看 ENISA 子要求、沒把「誰產生這個證據」想進去，導致建議證據把系統內已有的資料也寫成要人交。設計 AO 時要先問「這個證據系統知不知道」。另：內部標記（[obj.N]、[beyond ENISA…]）不該進 seed prose，畫面會直接露出。

**留給下一棒**：分析員回來 → 決策者裁 AO 調整 → 改 C1b 卡範圍 → 派；第二波 B2／F2／V1／C2 不受影響可派；AO 證據來源機制排第三波前補 design。

## 2026-10-12 第 4 棒續・中午（首腦，Fable）——第二波四棒收齊

**commits**：runner：`a348d7c92`（B2）、`021911452`（F2）、`7c8ed0f71`＋FE `9dfa9e35`＋套件 `1ae56f9f`（V1）、`ccd5b2eae`＋FE `ac563518`＋套件 `6af7b957`＋test `06d18cb`（C2）；首腦：`fffbb45b4` Article 13/14 原文 → 本次 權限矩陣重產＋STATE／LOG。

**做了**：四棒 11:34～11:55 全回寫。首腦 DEV 複核：B2 專案 1400 控制項層 24 工作對 24 副本；F2 兩 route 註冊、451 還原 NULL；V1 表 14 欄＋RLS FORCE＋4 policy＋cm_app 四權；C2 locator varchar(500)。守衛 3 紅：兩紅基線既有，**第三紅 `test_matrix_matches_vcan_mount_points` 是 V1 新元件的 v-can 掛點沒進權限矩陣**，首腦重跑 `scripts/deliverables/gen_permission_matrix.py` 轉綠（V1 卡沒寫這步，runner 不知道；下次開有 v-can 的 FE 卡要帶）。

**runner 偏離與打折（都老實寫在卡上）**：F2 不做範本 SSP 反查（走資源庫 uid 那支）；C2 `POST /module-frame/clone` 回 400 非 404（路徑落到 `POST /module-frame/<uid>` stub）、資源庫範本頁掛檔對話框沒加出處輸入框、E2E SR-02.5／02.6 改了未實跑；V1 瀏覽器未手測；C2 的 FE api.js 刪常數被 V1 的 commit 帶走（內容對，commit 混棒）。

**教訓**：平行 runner 共用 FE 工作樹，C2 改的 `api.js` 三行被 V1 一起 commit——「只 add 自己的檔」在同一檔多棒改時擋不住，要改成「只 stage 自己的 hunk」（`git add -p`），卡的紀律段要寫明。FE 新增 v-can 掛點必重產權限矩陣，要進卡模板的 FE 紀律段。

**留給下一棒**：決策者瀏覽器驗八張；AO 掃描（決策者 session 跑中）回來裁 AO 調整→改 C1b→派；小卡待開：資源庫範本頁掛檔對話框加出處輸入框、`/survey` 兩支路由登記守門（基線紅）、JobExecutionDrawer 權限名對不上（基線紅）；兩支主線 migration（F1、C2）出貨基線待重產；三支套件待發版（jedi-oscal-v2 2.5.3、jedi-asset 1.2.4、jedi-compliance-audit 1.3.6）與 pin 還原；F4 設計要加「欄位→控制項／AO 對應」（evidence_for）第一層。

## 2026-10-12 第 4 棒續・午後（首腦，Fable）——C2 locator 退回、程序書≠證據鐵則

**commits**：本次 STATE／LOG。Notion：CM-2695 改「修正後仍有問題」＋退回說明；開 CM-2697（C2b）。DEV：專案 1400（B2 runner 以 API 建、首輪未綁稽核流程）軟刪；BE 重啟。

**做了**：決策者驗第二波看到「§章節；SR 編號」輸入框看不懂 → 首腦解釋是程序書對應的出處欄 → 決策者點破：程序書是公司 SOP，掛去控制項證明「有規定」，不需要指章節；證據才是「證明達標的附件」，掛在工作底下；兩者概念差很多，加出處會混掉 → 裁拿掉。首腦查碼確認兩條路（`/ssp/<uid>/document-pool` vs `/job-evidence`）完全分離，C2 動的是程序書那條，第〇步缺口（FR-126 矩陣掛整份指不到節）實際是證據那條的問題，第〇步實測時因規劃頁只有程序書入口能掛檔而記錯層。

**決策**：locator 從程序書對應拔除（C2b）；C2 收舊路部分保留；證據是否加出處另案。

**推翻了什麼**：討論稿 D7「加 locator」與 design-cra §6.6；第〇步 gap list 第 4 項「證據指向檔內某段」的落點（寫在程序書 mappings 是錯的，應在 job evidence）；C2 卡與 C2 實作。

**教訓**：
- 首腦在討論稿與 design 階段都沒分清「程序書 vs 證據」，把第〇步的缺口直接對到 `reference_document_mappings`（因為探脈 D 查的是那張表），沒回頭問「第〇步掛的那份檔在系統語意上是什麼」。**開卡前要確認缺口落在哪個概念層，不是落在哪張表。**
- 第〇步實測的人把測試矩陣掛進程序書入口，是因為規劃期沒有別的地方能掛證據（證據要等啟動稽核開工作才能上傳）。這本身是一個使用體驗問題：規劃期想先把手上的證據放進專案，沒地方放。記為觀察，不開卡。
- B2 runner 以 API 建專案當測資，首輪沒綁稽核流程，決策者一開就報錯。runner 建測資要走與畫面相同的建專案路徑，或在回寫標明「此專案不可從畫面開」。

**留給下一棒**：派 C2b（CM-2697）；決策者驗 B2／V1 用自建新專案；AO 掃描結果回來裁；F3／F4 開卡時把「欄位→控制項／AO 對應」第一層與「規劃期能否先放證據」兩點帶進設計討論。

## 2026-10-12 第 4 棒續・午後 2（首腦，Fable）——第三波四棒收齊、AO 掃描審核、R1-a 依據欄

**commits**：runner：`53155f6c0`＋套件 `e297e3e5`（B3）、`d3b0eaaad`＋FE `7b8cb40e`（F3）、`ae948be1c`＋FE `136d986c`（F4）、`a6cef11f3`＋FE `63c5782b`（R1-a）、`3bcb1fe51`＋FE `ef35c92f`＋套件 `bdabc365`（C2b）。首腦：`9a6b721c0` C2b 複核、`31ab36026` 六卡開齊 → 本次。

**做了**：決策者裁「全開完、先往前衝」→ 六卡一次開（B3／F3／F4／R1-a／R1-b／C3，C4 取消）；派前補抽查發現 F4 卡引用的 design §6.1 仍寫 seed CLI（已刪），append 澄清。五棒派出，C2b 先回（決策者裁不驗直接 Done），其餘四棒 13:00 前收齊，首腦 DEV 複核全過（F4 新庫 454 22 欄 2 party、R1 表 RLS、B3 方法與套件 1.3.7、F3 與 R1-a 的 SspTabPanel 已合流）。守衛 2 紅皆基線。

**AO 掃描（決策者 session 跑，桌面三檔）**：首腦逐條對 Annex I／II 與 Art.13／14 原文審核報告：方向對（I.1 三個 AO 法源在 Art.13；7 條再拆各件事原文可證；支援期 5 年／年月／10 年保存；Annex II 語言與保存）；四處異議（N-1[a] 不該把「預期使用期間」當文件項目；I.2.l[b] 紀錄防竄改建議留 ENISA 依據不刪；II.6 不拆（聯絡地址是分享措施的例子非並列）；N-4 通報先當檢查項功能第三期）；N-3 第三方盡職建議併 II.1／II.2 不獨立。調整後 34 條、約 48 AO。**決策者尚未裁 A（開 Art.13/14 群組）與 B（拆 6 條）**，等裁後改 C1b。

**決策**：R1 風險評估維持純表單不做威脅清單（我們非公信力單位；查證 COMPLYD 也不出清單，只說方法不限）；`threat_ids` 預留欄改為畫面上「依據標準」自由文字欄，顧問自標 ETSI EN 303 645／IEC 62443-4-2／CAPEC 條號（R1-a 已 commit 未吃到，併 R1-b）。COMPLYD 真正自動化的是「風險→推導要求與措施」，列 GRC 待辦。

**決策者點出的設計洞**：Article 13 的風險評估／支援期／通報本來就是我們系統要「幫客戶做出來」的功能，證據全是①系統內產生；新群組若開成普通控制項會變「請上傳你在系統裡填的」。結論：新群組要配「AO 證據來源機制」（AO 屬性指向系統物件、規劃頁與判定頁依屬性切顯示）一起才活得起來；機制做好後 31 條裡 16 點①類證據同樣受益。

**教訓**：首腦開卡後要用首腦抽查標準再過一遍才派（F4 卡引用已失效的 design 段，是決策者問「有檢查過嗎」才補查到）。分析員報告不能只轉述，要對原文逐條核再給建議（這次核出四處異議）。

**留給下一棒**：決策者裁 A／B → 改 C1b 範圍派出；開「AO 證據來源機制」卡（第二期尾或第三期初）；派 R1-b（含依據欄）、C3；三支主線 migration（F1、C2 已拔、R1-a）出貨基線待重產（F4 是 seed 不需）；四支套件待發版與 pin 還原（jedi-oscal-v2 2.5.3、jedi-asset 1.2.4、jedi-compliance-audit 1.3.7、jedi-file-upload 1.3.6）；design-cra §6.1／6.8／6.9 與拆分表改版（收口派）；DEV 測資：454／455 可刪、1399 受評標的有 F3 測試值、ssp_risks 一筆 API 測試資料。

## 2026-10-12 第 4 棒收棒（首腦，Fable）——第二期程式卡全部收齊、第三期雛形審完、通報定位 MVP

**commits**（首腦，BE）：`0f7cd5d50` R1-b 重做複核 → `99d6f933c` C1b 複核 → `cbdd8402a` skill 雛形規則 → `29230d649` 規範「選單進 system_menus」 → `61e3a7455` 開 E1／D1／P0 → `3d094945a` D1／P0 複核 → `8d49a5404`／`bca8c8c81`／`d233457b1` 第三期雛形審稿與通報裁示 → 本次 E1 複核＋收棒。runner：C1b `16a61ba16`＋FE `089a82df`＋套件 `6ab5c23f`／`c59087e6`；R1-b 重做 `894829e1c`＋FE `1f0a4ade`；D1 `85d80293d`；P0 `202e61871`；E1 `aba1c76e9`＋FE `00793743`＋套件 `a76fd859`。

**做了**：第二期 16 張程式卡（A1 B1 B2 B3 F1 F2 F3 F4 V1 R1-a R1-b C1 C1b C2b C3 E1）＋D1 文件卡全部「修正待驗證」，每張首腦 DEV 複核（計數、RLS、冪等、grep 殘留）。C2 的 locator 退回由 C2b 拔除（Done）。R1-b 第一版退回（三個文字框→下拉＋選項進 `system_menus`）。P0 第三期四畫面雛形決策者審完：通報改「獨立整數號 FR 模組、MVP 先做、多家只預留」，弱點處理／資訊系統盤點／三份文件 OK。

**決策**：AO 調整照掃描報告＋首腦四處修正（開 Articles 13/14 群組三條、拆 6 條、II.6 不拆、I.2.l[b] 留）→ 框架 4 群 34 條 49 AO；風險評估不做威脅清單、依據標準下拉從 `system_menus` 讀；新規範「下拉選項一律進 system_menus」；新流程「討論稿必附雛形、卡排序以何時看得到畫面為準」；通報模組 MVP＝母卡 D5 範圍，多家（多法規×多對象×多租戶）只留資料模型位子。

**推翻了什麼**：C2 locator（程序書≠證據）；R1-b 自由文字依據欄；design-cra §6.1 seed 段／§6.9 重建公版／C4；C3 卡「13 條」實為 15；首腦開 E1 卡時寫「隱藏上傳入口」未考慮準備期任務仍會產（runner 點出，列待裁）。

**教訓**：
- 討論稿與 design 都是文字，決策者審不出「做出來長什麼樣」；兩天看不到畫面是流程問題不是 runner 慢。改法已進 skill。
- 開卡時「證據」「程序書」「上傳」「系統帶入」這些詞要先對概念層，不是對到哪張表；C2 與 E1 兩次都是在這裡繞。
- 首腦對分析員報告要逐條對原文核（這次核出四處），對 runner 回寫要自己查 DB（這次 C3 數目、E1 控制項層 props 落點都是查了才確定）。
- 決策者問「你有檢查過嗎」那一刻，答案是「沒有」就說沒有，然後補；F4 卡引用失效 design 段就是這樣抓到的。

**留給下一棒（建議換 session，拆兩個首腦）**：
- **CRA 收口 session**：決策者驗 17 張卡（用 006 之後新建的 CRA 資源庫建專案，見 STATE 子卡表各卡手測）；E1 待裁「收證據任務區塊」；三支主線 migration 出貨基線重產（F1 form_settings、R1-a ssp_risks、C2 locator 已拔不算）；四支套件發版＋pin 還原（jedi-oscal-v2 2.5.4、jedi-asset 1.2.4、jedi-compliance-audit 1.3.7、jedi-file-upload 1.3.6）；push 三 repo；DEV 測資清理（454～457、1399 測試值、ssp_risks 測試列）；SPEC／手冊／e2e／arc-review 總收口；AO 掃描 Excel 對照表依新框架重產；框架版本瀏覽對話框不列 AO 層建議證據（小卡）。
- **法規通報模組 FR session**：走 big-feature-workflow（含雛形）；MVP 範圍與預留位子見 STATE 總圖與 CM-2706 審稿結論；先盤台灣實際要支援哪幾家當討論稿輸入。
- **CRA 第三期**（弱點處理狀態、三份文件、支援期提醒）等通報 FR 開完再排，雛形已審 OK 可直接進討論稿。

## 2026-10-13 決策者改裁——法規通報縮回 FR-135 第三期（runner，CM-2709）

**改裁**：法規通報不開獨立模組（FR-136），縮回 FR-135 第三期，做成 CRA 專案 SSP 的「通報案件」頁籤（照 R1 風險評估頁籤切法）。範圍見 STATE 總圖第三期「通報案件頁籤（原 FR-136 縮回）」那列，開卡時排第一張。

**理由**：實際需求比 COMPLYD 還小（COMPLYD 的通報只是產品版本下的 Report 陣列，放 Lifecycle 最後一步）；獨立模組的成本八成是為多法規／多對象／多租戶預留付的，現在用不到。

**推翻了什麼**：第 4 棒收棒的「通報改獨立整數號 FR 模組、MVP 先做、多家只預留」與「CRA 第三期等通報 FR 開完再排」。

**FR-136 探脈結論的去處**：寫在 CM-2707 卡上（套件切法、FE 入口登記、寄信與排程、反查專案、E1 加 reporting 型改點），日後真要開獨立模組從那張卡與 `FR-136-2610-regulatory-incident-reporting/draft-requirement.md` 起步。

## 2026-10-12 第 5 棒收棒（CRA 收口首腦，Fable）——第三期落地、繁中版、範例專案、FR-137 起頭到 design 定案

**commits**（BE，首腦）：`45e34b755` E1 裁 B 開 E2 → `b14c542a3` 第三期裁示 → `cba348e82` 功能補齊範圍 → `91a9b64f6` FR-137 母卡 → `df40169a9` X1/S1 複核 → `a8341d371` 繁中版框架（首腦自做：產生器＋SQL＋Excel）→ 本次 STATE/LOG。runner：E2 `d0561e395`；FR-136 縮回紀錄 `1340342c9`；第三期討論稿 `e3ed5ce76` 與縮稿 `65ec44643`；X1 `93308bc44`＋FE `7491f256`；S1 FE `bdf73218`；CM-2718 `57e8a3a9c`＋`26d28402f`＋FE `e49900b3`；CM-2719 `d90b951a8`＋FE `f1126b02`；範例專案 `9d4fba9f5`；FR-137 探脈 `e33570d7f`、討論稿＋雛形 `8f7d3f98c`／`06853e47c`／`1d73da8ea`、design `a27ed7c07`／`daf64804b`／`559843eef`（後三者由另一 session 與決策者直接推進）。FE 導航 UI 六個 commit 首腦自做（`0cee1dfc`～`75257fd5`）。

**做了**：E1 待裁收掉（B）；第三期從五卡縮成 X1／S1 兩卡落地；通報三度改定位（獨立 FR-136 → 縮回第三期頁籤 → 不做、只留掃描門檻通知紀錄）；FR-137 從 PM 一句話到 design 定案與五張實作卡；繁中版框架（同框架第二版本，不另開 code）；Guidant AI 範例專案 1404；受評標的折疊與建議威脅兩張體驗卡；六個導航跑版修正。

**決策**：週期設在任務不在 AO；自動執行只限掃描類；通知預設執行人、掃描類多一個門檻額外對象；門檻只在新出現時發；問卷重開空白；FR-137 沿用 feature/FR-135；弱點處理狀態轉 FR-134；CRA 自跑等功能齊再談；CM-2716 先不修。

**推翻了什麼**：第 4 棒「通報獨立整數號 FR」（兩度改）；第 4 棒 STATE「E1 12 個 AO」實為 8；探脈「SBOM 無沿用上次源碼」（畫面本來就有）；W1 鍵 `match_key`（含版本，應 `fingerprint`）。

**教訓**：
- 決策者兩次點名「這不是你該做的嗎」：首腦把「要裁什麼」也丟給 runner 自訂（CM-2710 原版）、連討論事項都往外推。修正：**分析與決策留本體、只外包產出**；runner 拿到的是定案骨架不是題目。
- 對 runner 報告逐條核：探脈「沒有沿用上次」決策者一張截圖就推翻；STATE 的 AO 計數也是查了才發現寫錯。
- 繁中版露出一整批英文看不出的 UI 問題（`.truncate` 全站空殼、徽章被壓扁），中文測資要早上。
- runner 用 API 建專案全部漏傳流程範本，七個測試專案五個沒階段；卡上「照前端 API 建」要明列必填欄。
- 本 session 已極長；FR-137 後半（design、五卡）是決策者與另一 session 直接推進，首腦事後才從 git log 得知——**兩個 session 同時推同一 FR 時，先寫 STATE 再動**。

**留給下一棒**：見 STATE「下一棒要做的」五項。接手 prompt 的自檢題：①為什麼繁中版做成同框架第二版本而不是新框架 ②E2 為什麼只跳 only=true 不跳混合型 ③FR-137 週期為什麼設在任務不設在 AO ④通報最後為什麼只剩「掃描門檻通知紀錄」。

## 2026-10-12 第 6 棒收棒（首腦，Fable）——FR-137 五卡全落地、FR-135 三張收口小卡收齊、③⑤ 首腦直做

**commits**（BE）：STATE `b5b41d73e`；③ `e985f1a4f`；⑤ `c6539f5be`；本次 STATE/LOG。runner：① `31af6b825`／FE `44c46889`／套件 `343071b5`；② `f7189261f`／FE `bf2ee9d6`；④ `2d21bcc11`／FE `93af9705`／套件 `de7fcfa8`；小卡 2727 `facbf8cde`／套件 `8825fe9a`、2728 `c588043a7`、2729 `b4127dedd`／FE `0e3d2cf0`。首腦 FE：③ `12837d7a`、⑤ `1978ef74`。

**做了**：派 ①→（②＋④ 平行）→ 首腦直做 ③→⑤；開三張 FR-135 收口小卡並派出收齊；每卡回來查 DEV 不信自報。

**決策**（決策者）：runner 無人可派、subagent 不穩 → ③⑤ 由首腦本體直做（特例，不改角色鐵則）；FR-137 ②～⑤ 驗證做基本手測＋守衛即可，細測留母卡收口；`core/scheduler.py` 12 支 job 單函式要重構（FR-137 收口後另開卡）。

**推翻了什麼**：
- 開卡 CM-2728 前提——我在 `workflow_templates` 數到 1177 筆「完整稽核流程」以為是租戶範本，實為每輪快照；真正範本在 `flow_templates` 且公版早是 SYSTEM，runner 把卡縮成「填預設欄」。教訓：開卡前查表要先分清主表與快照表。
- design §6.4／卡 ③「走平台啟動掛鉤」——掛鉤挑任務排除 upload 模式（FR-058.7 D33），SBOM 永遠派不出去，第一輪實測 created=2 零派工後改直呼派工入口。design.md §6.4 要在收口時更正。
- ② runner 推翻卡上 `create_job(ao_uid)`：覆核輪的 AO 仍指第一輪範本，會把下一期生到錯的輪，改從源任務列複製。

**教訓**：
- 派工 prompt 又寫成長篓（第三次），決策者點名；memory 已有條，prompt 標準形三行＋model／effort。
- 平行 runner 共用工作樹，三棒都回報守衛一條紅是 ① 未 commit 的 error code 造成，① commit 後自綠——驗收時先看 git status 再判紅。
- `python -I` 隔離模式會讓 `load_dotenv` 前的 config 讀不到 .env，手動跑 service 腳本要先在 shell 匯出 .env。

**留給下一棒**：決策者驗 FR-137 五卡＋三張小卡＋FR-135 約 33 張；收口清單見 STATE（基線重產 16 支、套件發版六支、push 四 repo、DEV 測資清理、design §6.4 更正、scheduler 重構卡、SPEC／手冊／e2e／arc-review／進版）。

## 2026-10-13 第 7 棒（首腦，白天）——決策者開始試行 CRA 導入，七張小卡收齊、週期任務改始終同一筆

**commits**（未 push）：CM-2730 BE `a33fc429d`；CM-2731 BE `b2c4d1398` FE `cc3b8649`；CM-2732 BE `738ae83fd` FE `b21530d3` 套件 `800d1ec3`；CM-2733 BE `c15090511` FE `42187784`；CM-2734 BE `5b7b5ec94` FE `4cb799b7`；CM-2735 BE `56e34d063` FE `3a910d51`；CM-2736 BE `7fe92338e`＋`c4bd5cd01` FE `1d27bbf6` 套件 `524f95d9`；組改名（無卡）BE `8b3d2d112` FE `53d4d820`。首腦直做：排程每 5 分鐘＋鏈尾修正 BE `051907388`、`purge_projects` BE `d4eb43d13`、任務抽屜 UI FE `1e2c6ab7`～`3f635c35`。
**Notion**：CM-2730～2736 開卡並全部回寫「修正待驗證」；2732、2734 決策者已驗。
**做了什麼**：
- 決策者用資源庫 460「CRA 繁中版 — Guidant AI 自評用」與專案 1404 試行，邊試邊報；首腦每報一項開一張小卡附派工 prompt，回來查 DEV 核。
- 週期任務改成始終同一筆（2732）：拿掉 period_no／source_job_id／唯一鍵，加 run_count／last_run_at，刪 `task_period_clone_service` 與 `job_period_route`。
- 解散「公開資訊網址」組、拿掉 `ext:cra-advisories`（2736），首腦 DEV 實匯六份 docx 核過；1404 SSP 3938 的 advisories link 手動清。
- DEV 用新維運函式硬刪 248 個軟刪專案＋權限測試兩個；BE api＋worker 14:39 重啟在 `8b3d2d112`。
**決策**：
- 「期」＝跑過幾次，不是獨立任務。理由：使用者眼中一個週期任務就是一張卡，複製出來的是廢物任務；被排除的：FR-137 design 的「到期複製成第 N 期」。
- 解散公開資訊網址組。理由：實查法條只有政策位置與聲明位置兩欄是指路，通告頁是放錯位置的證據，CRA.II.4_obj.3 改回控制項上傳（不是程序書）。
- 排程架構優化（排程只入列、worker 執行）另案，本 arc 不動。理由：單 tick 上限 500、自動執行與寄信同步跑在共用 4 執行緒池，現量撐得住，改架構範圍大。
**教訓**：
- 期別複製 bug 根因：第 1 期重新武裝時第 2 期已存在，撞唯一鍵，`next_due_at` 被靜默清空、沒有 log。先補了鏈尾修正（`051907388`），最後整條路刪掉才根治——資料模型錯時修症狀只會一再冒新坑。
- 決策者糾正三件：裁示要「認真想過怎麼處理」（證據該回控制項上傳，不是丟程序書）；每張卡都要附派工 prompt；首腦驗收不信 runner 自報，自己查 DEV、自己匯檔。
**推翻了什麼**：FR-137 design §6.2～6.4 的期別複製（含 D1／D2／D11／D13 相關描述）由 CM-2732 推翻，design.md 待收口時改；設計 C-P6 把 Annex II「在哪可找到」全對到 OSCAL links，實查只有兩欄成立。STATE「第二期裁示 D13」原文保留為當時裁示，現況以 CM-2736 為準。
**留給下一棒**：等決策者手測（清單見 STATE「下一棒要做的」第 1 項），收口全部等令。


## 2026-10-13 決策者陪填 session（非首腦棒）——自評內容定稿、開 FR-138、開 CM-2737

**commits**（未 push）：BE `c4bd5cd01`（繁中 catalog 源頭去 advisories）、`8b3d2d112`（組改名＋組層 help）、`0ce092b42`／`36709597a`／`e2e311017`／`e3d5cbadb`／`d2780861a`（FR-138）；FE `53d4d820`、`82b31a8c`、`c6bf68f3`、`bbd23b89`。
**Notion**：開 CM-2737（範本層風險評估），未派，派工 prompt 已交決策者。
**做了什麼**：陪決策者填 460 範本的受評標的、負責單位、責任人員、系統元件（九容器）、程序書池（五份中文程序書 1.0 定版並掛 16 個控制項）；五份程序書與 SECURITY.md 正本進 `docs/features/FR-138-.../docs/`；FR-138 README 收 18 項填表依據。
**決策**：見 FR-138 README 決策表（default 分級、整包一個版號、只用 email 通報、SECURITY.md／DoC PDF 隨貨、承諾時程寫區間、通告編號 GAI-SA、支援期按主版本系列）。
**回 FR-135 修的**：party 預建空殼名稱改不了（自然鍵鎖）；繁中資源庫帶英文程序書骨架；範本層無風險評估（CM-2737）。
**給 135 首腦**：CM-2737 是這個 session 開的卡，請納入第 7 棒的卡表監看、驗收；FR-138 是內容層 FR，框架缺陷仍回 FR-135。

## 2026-10-14 第 8 棒（首腦，Fable）——CM-2742 第 3 件：出包前收斂，六支套件全發版、基線與 seed 修法等令

**commits**（未 push）：BE `c1af54d69`（五支 pin 升版＋lock）；monorepo `971275ee`（flow-engine 1.4.3、source-scan 0.1.1 bump＋凍結簽名測試補週期七欄）。Nexus 已推：file-upload 1.3.6、asset 1.2.4、compliance-audit 1.3.7、flow-engine 1.4.3、source-scan 0.1.1（oscal-v2 2.5.4 由 FR-138 棒先發）。
**Notion**：CM-2742 兩段回寫（查證＋修法草案；發版結果），狀態未改（修法仍等裁）。CM-2738 派工 prompt 已給決策者。
**做了什麼**：
- 本機 postgres:16 臨時庫跑 init＋migrate 兩輪，實證全新安裝在第一支主線 seed 就失敗（FR-114 09-22 那支），逐支蒐集出 5 支同病；修法草案在臨時庫驗到 rc=0、不跳過任何一支、兩本 CRA 內容正確。
- 盤 v1.26.0 之後四 repo 出貨範圍：BE 289 commit（FR-134／135／137／138）、main 另有 FR-133 43 commit；主線新增 26 支 migration（18 active 其中 8 支未蓋章、8 seed）；FE 55 commit；test 1 commit。
- 六支套件互依核對後發版；BE pin 收攏、venv 驗無 editable 殘留且與原始碼逐檔相同。
**決策（決策者）**：「這版先不出版本，這是先收斂一次」；「套件都要發版、注意互依」；8 支基線重產與 5 支 seed 修法仍等裁。
**教訓**：
- FR-132 能力點改名是「原地改名＋舊名存 legacy_name」，已套環境看不出問題，**只有全新安裝會炸**——凡是查能力點名的 seed migration 寫完都要在乾淨庫跑過，不能只在 DEV 驗。
- 卡上寫 FR-122 兩支「缺 module 欄」是症狀不是病：補了 module 仍會多插舊名重複能力點，要整支改新名。
- 套件發版前跑各自測試：flow-engine 凍結簽名測試紅是本批改 entity 沒同步，file-upload 兩紅是上次發版就紅的過期測試（另記 follow-up）。
**推翻了什麼**：無。
**留給下一棒**：① 等裁 5 支 seed 修法 → 開卡修檔 commit；② 等令 188 基線重產 8 支；③ 用最終產物在臨時庫再跑 init＋migrate 兩輪；④ CM-2738 runner 回寫後驗收；⑤ 包版時版號應為功能版（含 FR-133／134／135／137），FE 對齊。
**收棒補記（同日晚）**：決策者裁「照草案修、188 放行、不出版本」。開 CM-2743（5 支 seed 修法，`311b155e4`）、CM-2744（基線重產 8 支，`00427ac88`，備份 `guidant_ai_baseline_20261014_1754_before_CM-2744.dump`）。首腦驗收：2743 檔案與草案逐行同；2744 188 schema_migrations 多 8、02 零刪除、99 多 8、04 多路由兩列；自起乾淨庫用 HEAD 產物 init＋migrate 兩輪 rc=0、主線待套 33→25、兩本 CRA 各 5／40／65。gate(a) 等價 grep 對 fr031 兩支（底線檔名）誤報，非本棒問題。FR-135 收斂完成，母卡與 SPEC 等令。
