FR-143 交接紀錄(LOG,append-only)

每棒收工追加一個 block,既有 block 不改;更正寫在新 block 的「推翻了什麼」。現況看 FR-143-STATE.md。

§1

第一棒 — 2026-10-16 深夜~10-17 15:40 — 首腦(討論稿、雛形、設計、開卡、七棒派工與復核)

本 block 由第二棒事後從 git log、README 討論紀錄、母卡回寫還原——第一棒 session 在開第 8 棒卡前 crash,沒留交接。

commits(BE feature/FR-139,未 push): 66faca3fd 討論稿+雛形 v1 → 10-17 上午 15 筆 docs commit 逐輪改雛形(側邊入口、改對原任務排計畫、里程碑=任務到期日、入口叫「改善計畫」、正式用語、執行人員多人、Excel 一列一任務合併儲存格、D10 退第一站)→ a9af74904 D1~D12 定案 → 8ee6cb4df design.md+開卡 → 實作:341d45ee9(棒 1 BE 側)、32906a899(棒 4)、63abd2dfe(棒 5)、bfec5fbb4(棒 2)、2522dd602/78949762a(棒 3 BE)、8b0f015eb/0ed65b396(棒 6)→ 文件:3cf471ccc、9253fc3cd、95c21bbab(v1.1)、0abf16e9b、a8597cd53、35f260807(分組雛形)、bbacfa1a5(v1.2)、899ca80fa(到期日→改善期限)。套件 76d6b243(棒 1)。FE 94bc5597、b452b7b3、49adb748、c7593673、140f58d5、0f0ce577。 Notion: CM-2840 母卡;CM-2841~2846 一次建完;CM-2851 後加。七張全部 Done(首腦逐張復核)。 做了什麼: 探脈(舊 POA&M 頁三層巢狀、not_met_job_redo_service 只重開最新站、jedi-oscal-v2 匯出四處不合規)→ 討論稿+雛形三畫面十幾輪 → D1~D12 定案 → design.md → 六張卡 → 棒 1 先跑,2/4/5 平行,3/6 接著,棒 7 後加 → 逐張復核(開檔、查 DEV、瀏覽器實走)。 決策:

  • 決定對原任務設執行人員/改善期限/改善措施、不新增任務(D3)。理由:里程碑就是原任務到期時間,另開任務退回去的人不知道真實期限;被排除:沿用 milestone 另開任務卡(原設計,使用者看不懂)。
  • 決定送出即推進、不追蹤完成。理由:決策者「只需要提供計畫就好,不需要等他改完」;改好沒有由下一次稽核判定。
  • 決定退卡每個任務退回第一站整條重跑、期限寫進每一站 due_at 不加欄(D10/D12)。被排除:只重開最新站(現行,多站退錯人)、加 POA&M 期限欄(與站層期限漂移)。
  • v1.1 決定退卡只換第一站指派人、後續檢核站不換(棒 5 runner 提出,DEV 實查各站各有其人,全換等於自己檢核自己;決策者裁 A)。被排除:全站換成執行人員。
  • 決定匯出只有 Excel 與 OSCAL JSON、不做 Word/PDF(D7)。理由:POA&M 標準沒有正文欄位,交付物就是 Excel。
  • v1.2 決定清單依專案分組展開、小字「共 N 份改善計畫」(A 案)。被排除:平列一稽核次一列(第一版)、小字「共 N 次稽核」(B,子列只列有改善計畫的那幾次,數字對不上)、卡片式、進度條。
  • 決定 OSCAL 四處修正一起做(期限與負責人匯出、related-findings 剝 finding-id、內嵌被引用的 finding/risk/observation、task 自創 status 不匯出)。 教訓:
  • 雛形假資料把三站畫成三塊,規格跟著寫錯(「任務」與「站」混用)——design.md 坑 12 固定:「任務」一律指流程,站只唯讀顯示。
  • 清單「待規劃」只看 POA&M 未送出不夠,要同時看輪次仍在 remediation,否則舊結案稽核次會被列成待規劃但頁面唯讀(棒 6 退回一條)。
  • 棒 3 併入棒 4 的 route/DI 與 assignee_user_uids 鍵名對齊,三棒平行時 job_uid 約定要先寫進卡。 推翻了什麼: design.md v1 的「一站一塊」(v1.1 改一條流程一塊);v1 清單平列(v1.2 改分組)。 留給下一棒: 開第 8 棒(FR-144 首腦轉達每頁筆數下拉)——session 在這一步 crash。

§2

第二棒 — 2026-10-17 15:45~傍晚 — 首腦(接手 crash、開棒 8、三次追加、復核、交接)

commits(BE feature/FR-139,未 push): 602051ed7 開 CM-2862 → 182bf6868 追加一(拿掉全部展開鈕、風格對齊六處)→ ec01ecca0 追加二(分頁改內建)→ 010d47d02 棒 8 復核通過 → 5d7a2b190 追加三(拿掉兩個下拉)→ 本交接 commit(STATE/LOG 新建)。runner 側:BE b9f2391d6、FE dfa8a3ba/5bf2c238。 Notion: CM-2862 新開(修正待驗證,追加一、二首腦復核通過,追加三 runner 進行中);母卡 CM-2840 append 第 8 棒登記與追加;CM-2861(FR-144.5)與 FR-145 母卡 CM-2854 各留一行「分頁改內建」。 做了什麼: 接手盤點(README/母卡/七子卡/三 repo git)→ 決策者看清單截圖說分段分類怪 → 建議與 FR-144.5 同套、開 CM-2862 → 決策者看畫面三次追加(拿掉全部展開鈕+風格對齊稽核作業頁、分頁改待辦任務頁的內建模式、拿掉兩個篩選下拉)→ 復核:端點實打四種狀態值、headless 截三頁與三分段。 決策:

  • 決定分段叫「待處理/已完成/全部」、狀態欄叫「待規劃/已完成」。理由:分段是「我要做什麼」三頁共用詞;狀態欄是「這筆怎麼了」用頁內既有詞,進頁後前後一致。被排除:狀態欄也叫「待處理」(進頁變「待規劃」多一個詞對照)、保留已送出/覆核中/已結束(輪次層的事,PM 管不到)。
  • 決定改善計畫頁沒有「未指派」狀態(排計畫的就是 PM 本人),比稽核計畫頁少一種。
  • 決定分頁改 DataTable 內建(與待辦任務頁同)——決策者裁,四頁(稽核計畫/稽核作業/改善計畫/結案報告)都登記。
  • 決定拿掉稽核性質與標準兩個下拉,只動 FE;BE 端點 audit_nature/standard 參數與 meta.standards 屬 API 契約不動。 教訓:
  • 清單端點 request 分頁要包在 pager,裸放 page/page_size 回 400「Unknown field」;登入 body 是 username/password/provider:'password',回 data.access_token,之後請求要帶 X-TENANT-ID/X-ORG-UNIT-ID。
  • vite dev 頁 Playwright networkidle 等不到(HMR 長連線),用 domcontentloaded+waitForSelector。
  • 同一時間有 FR-142.9/144.5/145 三個 runner 在同一 FE 工作樹,開卡要寫「只 add 自己的檔」;別人剛 commit 的分頁寫法可直接對照。
  • 決策者多次點名畫面驗證不要開視窗,卡上紀律段固定寫 headless。 推翻了什麼: 追加一寫「無可展開時藏全部展開鈕」被追加一自己的「整顆拿掉」取代;追加一寫「分頁器照 AuditPlanListView 的外掛 Paginator」被追加二「改內建」取代。 留給下一棒: 復核追加三;之後決策者全流程測試,首腦接測試迴圈(STATE §3)。