append-only。每棒一段:commits、決策、教訓、推翻了什麼。
commits:6481c94cf(討論稿+三頁雛形)→ 8f4b417ef(收斂:不做審閱、四類全當附件)→ 02a8e07e0(公司=租戶、附件照大類)→ c3eb83cd0(不多開 tab、大類進系統設定)→ 27905d986(大類表格)→ 47de0e291(拿掉「目前整理」)→ 8a31bdd77(頁首只留公司、同名詢問)→ abcb8b13b(design.md)→ 本次(開卡)。
決策者裁示的順序(每條都推翻了首腦前一版):
探脈中查到、寫進 design 的事實:
common/authz/ssp.py 的 before_template_write 是空的:FR-139 D19 稽核中鎖資源庫沒落地 → 開 CM-3047。resources 表,主專案沒有寫入端 → 開 CM-3048。ssp_diagrams 有表有 repo、主專案沒寫入端;ssp_clone_service 會連 diagrams 一起複製。oscal.pre-engagement.*。教訓:
決策者裁示:oscal.pre-engagement.upload 除了持有資源庫編輯權的系統角色,還要給 IT執行人員;manage-category 不給它。DEV 實查 IT執行人員(id 37)沒有 oscal.resource-library.update。已 append 到 CM-3041 卡尾,當時卡片狀態為 Not started,所以 runner 開工時看得到。design.md 的權限表同步。
推翻了什麼:開卡時的批次規劃。我照 big-feature-workflow skill 裡「同批依卡號一張接一張做」的舊說法排,把有依賴的卡放在同一批(CM-3041/3042、CM-3045/3046)。但 CLAUDE.md 的工作坊規範寫的是「同一批=可以同時做;有先後的放下一批」。之後 Stage 曾被改成 1~8 一張一批,不會出錯,但能平行的卡也被迫排隊。
重排後:五批。批 3 是 CM-3044+CM-3043,批 4 是 CM-3045+CM-3047+CM-3048,批 5 是 CM-3046。判斷依據有兩個:①是否用到別張卡的產出;②是否跟同批的卡改到同一個檔。卡 7 跟卡 3 都改 common/authz/ssp.py,卡 6 跟卡 5 都改 DocumentPoolPanel.vue。
改了哪裡:Notion 七張 Not started 子卡的 Stage 欄位;母卡與子卡卡尾 append 說明,寫明以 Stage 欄位為準;STATE 批次表、README 進度表。另外修正 big-feature-workflow skill 裡 Stage 那條的錯誤說法,讓它跟 CLAUDE.md 一致。
教訓:skill 跟 CLAUDE.md 寫的不一樣時,以 CLAUDE.md 為準,並且當場修正 skill。
規格改動(CM-3047)成立:FR-139 D19「稽核中鎖住資源庫」早就做在 ModuleFrameAuditLock(只放行 planning),我開卡時看到空的 before_template_write 誤判成缺口。runner 刪掉空殼、文件改成現況,正確。
驗收時發現並處理
決策者追加、已做(BE 08729dab7、FE f92fd7b1)
範例資料(DEV 租戶 102):五個大類共 11 份,網路架構圖有 v1→v2,資產清冊日期設為 400 天前以顯示「可能過時」。已同步進 5 個可寫資源庫的程序書池(各 11 列),稽核中的 491 沒有。
未驗:畫面截圖(headless 注入登入被開機檢查清掉),請決策者在瀏覽器看。
推翻了什麼:D6「預設全部帶入,顧問只能反向的『這框架不用』」。這原本是決策者裁的,理由是「要顧問再挑一次就多一道工」。決策者打開專案 1619 的規劃頁,看到程序書管理從 9 份變成 22 份,多出來的 13 份是別家公司(宏碩範例)的檔案,就問:「不是說要用引用的嗎,為什麼變成全部載入?」
為什麼會這樣:DEV 一個租戶(102)底下有好幾家客戶的資源庫,自動帶入讓每一家都被塞滿。我在討論時講「引用」,指的是檔案本體只有一份、各處共用 file_id。決策者理解的「引用」,是「顧問選了哪些,才有哪些」。兩邊用同一個詞,講的卻是不同的事。我在 D9 改成「落列」時,沒有把這個差別講清楚。
新規則(寫在 CM-3050):
is_excluded 只代表「客戶標過時」,顧問手動排除的端點拿掉。也跟決策者說明:專案頁不能上傳,是 FR-139 原本的規則。來自資源庫的專案,SSP 內容一律唯讀,改版前就已經這樣。
同一輪也完成:
教訓:
決策者同意放寬同名比對,跟 CM-3050 一起做;並要求「修正成正確的規格」,不要在卡尾一直補。
c6ad6e264 和 FE ec6b34ac 都已在 feature/FR-139 上。共用的 8000 已經重啟(新 PID 5093),現在跑的是新程式,不會再自動帶入。6f26a58d)。