↑ 需求首頁 ⌂ 需求中心

FR-140 LOG(append-only,每棒一 block)

§1

2026-10-15 首腦:訪談、討論稿、design、開卡

  • 決策者推翻第一版方向(多輪次拼接),裁 PM 定義「一輪=一條完整流程含內外稽」。舊稿整份刪除、資料夾改名(96cfaab01)。
  • 三輪口頭對齊後寫新討論稿(4d8285550),裁 P1~P6(2d09e33fa;P4 改前 3 天+當天)。
  • design.md(e72e3b523、36c7e50bf、dc16b9379);補裁:舊輪次搬稽核次 pending_reverify→closed;退卡不整段呼叫 revert_job,抽單卡函式逐張退。
  • 十二張卡 CM-2786~2797 連號開好;卡 1、8 已 append 補裁。
  • 派出 .1、.2、.6。
  • 教訓:用系統現有物件名詞翻譯需求會偏;設計前先用決策者的詞把圖逐句對回去(memory feedback_round_means_whole_flow_verify_pm_ruling_before_design)。
§2

2026-10-15 首腦:第一批 .1/.2/.6 復核

  • .1 BE 891f7a3bc/pkg 06bca836:DEV 12 輪→12 稽核次、四槽位 0 不一致、RLS 四條、CASCADE。
  • .2 BE fb900692a/FE 983cf2b7:選單兩筆、公版 id 35 含 reverse 與 audit_nature;選配驗證器規則不做。
  • .6 BE ce3a10bbd+6300e23f1/pkg da3919c5+dd65c08c:欄位、view security_invoker、serializer 皆核;API 層接受 runner 實打(首腦無密碼)。
  • 三卡狀態留「修正待驗證」待決策者畫面複測。
§3

2026-10-15 首腦:.7 復核

  • FE 2686c048:兩超標檔只加引用、PUT 只送 due_at。排序白名單缺 due_at 併入 .9。待決策者實機複測。
§4

2026-10-15 首腦:.11 復核

  • BE f5186f52d/pkg 16c4c50a:期限取母輪 current_pass 的 POA&M 最早里程碑、換當天 23:59:59;DEV 交易回滾無殘留。換算函式定為 .8 共用。打折:未從畫面走完整流程,留端到端驗收補。
§5

2026-10-15 首腦:.3 復核

  • BE 71041d8e6/pkg f79efed5:launch_audit 綁稽核次、AP 分流、sync_round 逐欄同步、反查擴到稽核次、AP 守門限目前次。原檔 966→949。縮範圍函式單一份兩處呼叫。DEV 無殘留。
§6

2026-10-16 首腦:.4 復核

  • BE bb9c7a125/pkg 405a9aa8:三站綁稽核次、terminal、回規劃、redo_jobs_hook 掛點。認可 AR 每次一份/外稽在 finalize 開/回規劃看下一站。DEV 無殘留。打折:POA&M 全關檢查用替身。
§7

2026-10-16 首腦:.5/.10 復核

  • .5 BE 8bd6ac6b8/pkg 7c455661:open_station_job 單一份兩處呼叫、attempt_no migration、回退找站改走流程圖。
  • .10 BE d31094d15/FE 6af14483/pkg 29e6e079:兩題裁決後放行;套件只加 pass_uid 參數、新檔 audit_pass_view;POA&M 標題與 AP props 併入。
  • 三 repo 工作樹乾淨。九張待決策者複測。
§8

2026-10-16 首腦:.12 復核

  • FE d61a7d29:既有 StageProgressBar 已符合 P6,只補 tooltip 站名。裁「跳過站顯綠」不開卡。
§9

2026-10-16 首腦:.8 復核

  • BE 4045c9271:退卡 service 新檔、單卡函式 job_reopen 與 revert_job 共用、redo_log 表+RLS。編號對照驗過。退回狀態為進行中(design D1 補註)。第四支主線 migration。
§10

2026-10-16 首腦:.9 復核,十二張全部復核過

  • BE 5505a5140/FE bbd61456:兩時點提醒掛既有 tick、排序白名單、通知紀錄頁。第五支主線 migration。DEV 留 4 筆測試提醒紀錄。
  • 十二張皆「修正待驗證」,待決策者複測與端到端驗收。
§11

2026-10-16 首腦:交接

  • 開發十二棒全部復核過,交下一 session 做人工驗收與修正。
  • 本棒教訓:①需求先用決策者的詞逐句對回去再談做法(第一版方向整份作廢);②產品面取捨先問決策者,不在卡上直接回 runner;③監控只盯狀態欄會漏「卡尾待裁」。
  • 全案 commit(BE):96cfaab01 刪舊稿 → 4d8285550/2d09e33fa 討論稿 → e72e3b523…dc16b9379 design → 891f7a3bc .1 → fb900692a .2 → ce3a10bbd+6300e23f1 .6 → 71041d8e6 .3 → f5186f52d .11 → bb9c7a125 .4 → 8bd6ac6b8 .5 → d31094d15 .10 → 4045c9271 .8 → 5505a5140 .9;FE:983cf2b7 .2、2686c048 .7、6af14483 .10、d61a7d29 .12、bbd61456 .9;套件:06bca836 .1、da3919c5+dd65c08c .6、f79efed5 .3、16c4c50a .11、405a9aa8 .4、7c455661 .5、29e6e079 .10。
§12

2026-10-16 首腦(驗收棒):第 2 步發現兩題,開 .13/.14

  • 決策者走到第 2 步(內部稽核計畫填寫站)停下兩題:①主按鈕「前往 啟動稽核」應為「前往 內部稽核」;②進稽核站沒通知稽核員、登入後鈴鐺沒亮。
  • ①根因:按鈕文字走 stage_objects 類型級 entry_button_label,新範本一圖兩個 audit 站分不出來;FE 註解寫「BE 優先讀 BPMN 站名」但 BE 沒那層。裁:BE 加「下一站站名」優先層,線名仍最優先。開 .13 CM-2811。
  • ②根因:站 job 從無指派人,通知與鈴鐺都讀 task_assignees,舊範本時代即如此、非 FR-140 弄壞。task_assignees.control_id NOT NULL,站卡不能塞進去。裁:參與人加「可稽核性質」三選一(內部/外部/內外,預設內外,進 system_menus),進站依站的 main_role+audit_nature 找參與人通知、manager 一併通知、無人可派提醒 PM;鈴鐺另讀 stage_entered 通知紀錄。角色不拆(主鍵一人一列),決策者裁「先這樣,未來再設計成好的模式」。開 .14 CM-2812(新增主線 migration 兩支)。
  • 被排除:角色拆內部稽核員/外部稽核員(動主鍵與所有讀 role 處);把站 job 塞 task_assignees(汙染我的任務);只改 id 35 範本線名(自建範本仍錯);把 stage_objects 文字改中性詞(失去資訊)。
  • 本棒先做:重啟 8000 BE、起 FE 5180、給 11 步驗收表單。
  • 補裁 .8:決策者要退回的卡在留言區由「系統」說明「第 N 次內/外稽判不合格、不合格 AO 的稽核意見(只列不合格)、改善里程碑與期限、誰按的退回」。核對:finding 是 AO 粒度、related_observations 指向觀察、觀察 description 即稽核意見;留言表 author_id 可空可當系統署名。已 append 到 CM-2793 卡尾、狀態退 In progress。Notion 無「修正後仍有問題」狀態,退回一律 In progress(手冊已載)。
  • 補開 .15 CM-2813:決策者發現專案規劃頁沒地方設任務期限(.6/.7 只做了後端與我的任務/抽屜)。核對:規劃頁讀 SSP control-tree,BE 該端點 job dict 與查詢都沒帶 due_at;PUT 已支援 due_at 且「沒帶 key=不動」。裁:BE control-tree 補兩欄;FE 表單期限欄複用 JobDueDateField 獨立存檔(不併整包 PUT,否則沒改期限也被標手動)、清單副標帶期限、批次維護加「批次設定期限」(新檔對話框,預設只套用未設定的卡)。
§13

2026-10-16 首腦(驗收棒):.13/.8 補裁復核

  • .13 BE 337027269:找下一站迴圈抽成 _peek_next_station_job 單一份,_peek_next_stage_code_via_jobs 委派;label 在終點站後加「站名」層;線名優先段未動。25 過/守衛 118 過。打折:runner 未登入實打、未看畫面,由決策者複測①~④。
  • .8 補裁 BE 434bbd592/pkg cc6f742d:組字純函式新檔、留言走 domain service 直寫繞參與人守門、失敗不回滾、觀察整 AR 撈一次;套件只加兩支讀取方法。3 支新 unit test 過。DEV 無系統留言殘留(rollback 驗證)。注意:留言期限與里程碑日期印 ISO(isoformat()),複測看是否夠白話;.mo 不入版控需各環境 compile。
  • 8000 BE 於 13:27:49 重啟,晚於 .8 commit(13:27:44),兩卡程式已載入。
  • .15 的 BE 段 21ec82d1a 已進(control-tree 帶 due_at),FE 段作業中。
  • .14 CM-2812 被重複派工(兩個 session 同時改套件參與人九支檔,欄位重複)。裁:寫「待裁決」的 [R1].14 退出,寫「作業中」且 migration 已套 DEV 的那個做完;補裁稽核站無 audit_nature 時讀目前稽核次的性質。教訓:派工 prompt 一字不差貼兩次就會撞車,派前先看卡狀態與卡尾有無「作業中」段。
  • .15 CM-2813 復核過:BE 21ec82d1a(control-tree 帶 due_at,to_display 同任務詳情格式)、FE 1379e427(期限獨立存檔、JobDueDateEditor 共用、批次對話框、快速配置改用共用迴圈,主檔 2,579→2,593)。runner 未在瀏覽器實點,待決策者複測七步。
  • .14 CM-2812 復核過(BE c496961a2/FE 3023fe7d/pkg 58836164)。決策者最後改讓 [R1].14 接手做完(與首腦裁決相反,決策者直接在 runner 視窗裁,不回頭質疑),它逐檔複查前一位的改動後續作。核:套件 11 檔每欄只一份、import 正常;收件人篩選純函式 7 測;掛點在推進成功後、包 savepoint 失敗不回滾;稽核站無 audit_nature 讀目前稽核次(補裁已落實);通知紀錄表 stage 放寬 32;鈴鐺另讀 stage_entered 紀錄。DEV 實測留 4 筆 sent 紀錄(ap_authoring/audit 各寄 blsdemo+blsadmin,blspan 無)。主線 migration 增至七支。
  • 教訓:派工 prompt 貼兩次=兩個 session 撞同一批檔;派前先 fetch 卡看狀態與卡尾(已入接手指引第 8 條)。
  • .13 複測退回:內部稽核站按鈕印「前往 外部稽核計畫填寫」。根因:找下一站一律走閘道預設分支,但該閘道由系統依稽核結果判定;舊範本預設接結束事件剛好掩蓋。裁:經系統判定閘道且非審核站 → 用當站動作文字「提交稽核」;stage info 加 button_label_is_destination 旗標,FE 只在 True 時包「前往」。
  • .13 第二輪復核過(BE bfb361566/FE f4fd9cc2):_get_advance_button_label 加 decided_by_gateway 早退回當站動作文字;stage info 加 button_label_is_destination(終點站/審核站/經系統閘道=False);FE 只在非 False 時包「前往」。BE 已重啟。
  • 決策者複測第 2 次內稽畫面:①按鈕仍「前往 提交稽核」②進度條「內部缺失改善」未亮。首腦全查:資料面(稽核次 2 筆、站卡 7 張 attempt 正確、redo_log 2)皆對。①根因 StageInfoCurrentStageSchema 未宣告新旗標被 marshmallow 丟掉(runner 未實打);②_build_progress 照圖上順序推算、回流站判未開始(.12 收太淺,違 P6);順根因再抓③ .14 通知用 default 分支的 template_job_id 找站卡,有缺失路徑查無即 return。三處同檔開 .16 CM-2815 一棒修;.13/.14 退 In progress 指向 .16。
  • 教訓:marshmallow 是 grep 盲區再現(memory 已有);「猜下一站」在系統判定閘道前一律不可信,凡依賴 peek 的地方都要改看實際站卡。
  • .16 CM-2815 復核過(BE ac071b937):A schema 補兩欄並實打 stage/info 確認旗標 false;B 進度抽純函式 stage_progress.station_status(看實際站卡,PROCESSING→current、COMPLETED→done、否則 pending;結案全 done)+3 測與突變;C _notify_stage_entered 改查推進後實際 PROCESSING 站卡(latest_job)傳給 notify,notify 刪掉自己查站卡那段。原檔 756→753。BE 14:56:33 重啟,晚於最後存檔。打折:C 未在 DEV 實走(唯一停內稽的專案是決策者正在複測的),兩條路徑待決策者實走。runner 已把 2811/2812 改回修正待驗證。
  • 決策者在「外部稽核計畫填寫」按退回:流程跳回規劃、留兩張 PROCESSING、第 3 筆外部次被標 planning。根因:FR-050 退回用「輪次狀態→退到哪類站」固定表+BFS 找第一個同類站,假設一輪一次稽核;回流範本穿過真正上一站。另:進度條整條線「走過就亮綠」在回流範本誤導;時間軸站名用類型、回流標推進。
  • 裁(決策者):①退回沿實際軌跡退一步,跨稽核次時刪目前次、上一次重開;②進度條改以稽核次為單位只畫這次路徑、分岔靠切換稽核次;③時間軸站名+回流標「退回」。開 .17 CM-2816。被排除:分岔圖(一眼看不出終局)、不允許跨次退回(「提交稽核」易誤按、沒退路太硬)、整條線兩種綠(PM 要自己分辨)。
  • 「提交稽核」按鈕字(stage_objects audit complete 文字)建議改「完成本次稽核」,待決策者裁。
  • 決策者裁「提交稽核」改「完成本次稽核」(文案照首腦建議),開 .18 CM-2817:一筆 stage_objects seed,只套 DEV,不重啟。.17 已派出、Monitor 盯 CM-2816。
  • .18 CM-2817 復核過(e2f48753f):seed 一句 UPDATE、manifest seed/*、DEV 值已更新;runner 未驗 installer seed 清單會不會跑到(照 fr093-4d 先例登記,收口時連同其他 seed 一起驗)。
  • .17 CM-2816 復核過(BE 77e9ee2c3/FE fec523e1/pkg 735185d6)。核:軌跡純函式只算 COMPLETED/PROCESSING 站卡(CANCEL/TODO 不算走過)、目標=目前站前最後一張 COMPLETED;退回不走 revert_job,目前站 CANCEL、目標 reopen、其他不動;handler key 改依目前站碼,跨次走 previous_pass(套件新檔:目前次 SSP/AP 標 superseded、刪稽核次、上一次 closed→auditing/remediation、sync_round、AP 已填擋 GRC_412062);進度條以軌跡切段對應 pass_no、後接閘道可達站、pass_uid 可指定;時間軸 from_label/to_label+direction return(migration 已套 DEV,CHECK 三值)。9 檔 210 測過、突變有咬;三條路徑 DEV 交易內實跑後回滾,髒輪次 f00c5dc3 未動(仍 2 PROCESSING/3 passes)。BE 15:32:36 重啟晚於最後存檔。
  • 與卡面不同待裁:閘道前兩邊都畫 pending(第 2 次內稽會多一顆灰的「內部缺失改善」)。首腦傾向維持(誠實表達「還不知道有沒有缺失」),等決策者裁。
  • 打折:未從新專案走 UI;AP 已填用「建立後 2 秒內有無寫入」判,真實填寫後未驗。
  • 事故(輕):首腦 docs commit 8c6375d7d 夾帶 runner 已 staged 的 git rm stage_job_locator.py——首腦 git add 兩個 docs 檔 後 commit 會連同他人 staged 的變更一起進。內容正確不改歷史;教訓:首腦 commit 前看 git status 第一欄,有他人 staged 就先 git restore --staged 排除或等。
  • 主線 migration 增至八支、seed 三支。
  • 決策者刪髒專案(1547 軟刪,SSP 1820 與三份快照未動)後建新專案發現資源庫「CMMC簡易SSP」仍灰「已綁定專案」。查明是 FR-139 T-8(CM-2757,2026-10-15)「資源庫終身一對一」規則:專案 living_ssp 直接指向資源庫範本 SSP,寫入都進資源庫那份,軟刪也算綁過,要再用先複製資源庫。決策者裁先順流程(走複製)、此項記錄待收口前裁。DEV 另有五個 T8 測試資源庫同樣只剩已刪專案鎖住。
  • .14 複測退回:建專案參與人頁「可稽核性質」下拉不出現。根因 PrimeVue 3.53 Dropdown 直接掛 v-tooltip 炸 $_ptooltipModifiers null、元件更新中斷。修:tooltip 改掛原生圖示元素。frontend-overview §3.6 收尾補這條 quirk。
  • .14 FE 小修復核過(FE 81a5ec43):Dropdown 拿掉 v-tooltip,提示改掛旁邊 info 圖示。八張修正卡全部待複測。
  • 合併前盤點(FR-141 → FR-139):BE 僅 manifest.tsv 衝突;FE/套件零衝突;141 唯一新 migration 已在 DEV;主 venv 四支 jedi 皆 editable 指主套件目錄(含 oscal-v2),合併後不會起不來;主 pyproject 字面 pin oscal-v2==2.6.0 與 venv 不一致,收口還原 pin 時四支一起處理並發版。141 的 STATE/LOG 停在 A1(10:48),九棒未記,已請決策者轉知 141 首腦合併前補。worktree 行程 8001(99238)與 FE(41843)合併前停。
  • FR-141 合回 FR-139(BE 75d3af54d/FE c4b0a359/pkg e3be08aa;141 首腦處理 manifest 衝突與 GRC_412062 撞號讓號 412063)。首腦合併後核:audit_round_app_service.py(918 行)無衝突標記、launch_audit/finalize_audit/close_round/rollback_to_previous_pass 都在、縮範圍改走 141 的 clone_ap_for_next_pass(含未判定,P1 預期);套件 import OK;manifest active+seed 對 DEV 無 2026-10 落差(manifest 有 DB 沒的十支皆為一次性清理/他環境腳本,屬既有);FR-140 八檔測試 189 過;BE 無 traceback。守衛紅 1 條為 .14 路由未登記附錄 A,收口補。主 venv 四支 jedi editable 指主套件目錄,pyproject 字面 pin 不一致留收口。16:2x 重啟 8000(61038)與 5180(61064)。
  • 教訓(141 首腦抓到):兩條線各自新增錯誤碼會撞號且 git 不報衝突,合併前要比對兩邊新增的碼。
§14

2026-10-16 首腦([R1]大流程調整-2,驗收與修正棒):交接

  • 本棒成果:決策者走劇本第 1~2 步+退回操作,撞出八題;開修正卡 .13~.18 六張(CM-2811/2812/2813/2815/2816/2817)+ .8 補裁,全部派工、復核過、「修正待驗證」。FR-141 合回後盤點通過並重啟服務。
  • 根因類型回顧:顯示層(按鈕文字來源、進度條照圖推算、tooltip 掛錯元件、serializer 漏宣告)佔多數;設計洞兩個(FR-050 退回假設一輪一次稽核;資源庫終身一對一 vs 刪專案重綁);既有缺口一個(站 job 無指派人→無通知無鈴鐺)。
  • 本棒教訓:①派工 prompt 送出前後都 fetch 卡,貼兩次就撞車(memory feedback_dispatch_fetch_card_before_sending_prompt);②凡「猜下一站」的程式在系統判定閘道前都不可信,退回/進度/通知三處同根因,要改看實際站卡;③新 API 欄位必查 serializer 宣告(marshmallow 是 grep 盲區,第二次踩);④首腦 docs commit 會夾帶他人 staged 的刪檔,commit 前看 status 第一欄;⑤Notion 無「修正後仍有問題」狀態,退回一律 In progress。
  • 全案 commit 增補(BE):337027269/bfb361566 .13 → 434bbd592 .8 補裁 → 21ec82d1a .15 BE → c496961a2 .14 → ac071b937 .16 → 77e9ee2c3 .17 → e2f48753f .18;FE:1379e427 .15、3023fe7d+81a5ec43 .14、f4fd9cc2 .13、fec523e1 .17;套件:cc6f742d .8、58836164 .14、735185d6 .17;合併 BE 75d3af54d/FE c4b0a359/pkg e3be08aa。
§15

2026-10-16 首腦([R1]大流程修改首腦-3,驗收與修正棒):第 1 步三題,開 T1/T2

  • 決策者在新專案 1548 第 1 步回報三題:①建專案預覽稽核人員沒標內外稽;②資源庫模式 SSP 頁籤仍有「下載 Excel 匯入樣板」;③進度條只剩一顆。
  • 根因:①.14 只改第二步選人元件沒補第三步預覽(資料存對);②FR-139 T-9 唯讀時只擋匯入沒收下載;③.17 真回歸——pending_stations_after 碰到 ap_authoring 一律停,不分這次/下一次,runner 測試沒測「起點在規劃」又沒走 UI。
  • 決策者裁:測試回報一律開新卡歸「測試修正」,不退回原卡。開 T1 CM-2820(BE,opus)、T2 CM-2821(FE,sonnet)並行。
  • T1 a39f4b4f9:判準改「計畫站的前一站是規劃才屬這次」,與 split_pass_segments 同一判準;11 測過、首腦自做突變 2 紅、實打 stage/info 四顆。T2 3d06e89c:scopeSuffix 搬進 composable 共用、SSP 按鈕列 v-if="!librarySourced";runner headless 驗過 A/B;順帶發現 FE lint 指令壞掉。
  • 教訓:⑥「往前推算」類函式要測最常見的起點(第一站),不只測分岔處;⑦同一個語意(計畫站屬哪一次)兩處各寫一次就會漂,判準要指向同一條規則。
§16

2026-10-16 首腦([R1]大流程修改首腦-3):T1 被決策者退回,進度條設計重做 T3

  • 決策者看到 T1 修好的四顆說「全部有很多為什麼只有這樣、一直在補丁、整個設計有問題、要重寫都可以」。首腦認錯:.17 的「只畫這次路徑」是在退回出錯截圖下裁的,沒人先問正常第 1 步長什麼樣;T1 與首腦驗收都只驗「照設計運作」沒驗「設計對不對」。
  • 三版回顧:.12 整圖走過就綠(退回後站在規劃看到後面一片綠)→ .16 改看實際站卡(誤導仍在)→ .17 只畫這次路徑(少站)。共同病:沒先定義進度條要回答什麼。
  • 決策者裁(看三張字元示意圖點頭):七站全畫、位置順序固定,顏色只講「這一次稽核」走到哪;第四態 skipped=圖上在目前站前、這次沒經過;回流回規劃整條重置、看歷史次用 .10 切換。被排除:只畫這次路徑、整圖走過就綠、分岔圖。
  • T3 CM-2822(opus/high)BE 888d6d08d/FE 789ee3f2:stage_pass_progress.py 整支重寫、pending_stations_after/segment_stations 刪;runner 自決「上色從最近一次規劃起算」(外稽那次的來路一起亮)與第三張圖一致。首腦兩向突變有咬、實打三條、開截圖核樣式。
  • 教訓:⑧UI 類改動的裁決要先畫「正常路徑每一步長什麼樣」再定規則,不能只對著出錯截圖裁;⑨首腦驗收 UI 卡要開截圖看「對不對」,不只核「跟卡一樣」;⑩同一塊改到第三版還在繞,就是定義問題不是實作問題,停下來重定義。
§17

2026-10-16 首腦([R1]大流程修改首腦-3):T4 按鈕文字、T5 清單兩行格

  • 決策者到「內部缺失改善」站回報按鈕「前往 退回規劃」;根因=.13 裁的「線名最優先」+.2 範本把回流線取名「退回規劃」。首腦提「進入重做」決策者先同意後嫌怪,再改裁線不取名、按鈕印下一站站名「前往 任務規劃與執行」。T4 CM-2830 第一版 be7fa6dec(改字,含快照與 .bpmn 圖源)復核過;補派第二筆 seed 拿掉 name,作業中。
  • 決策者回報清單「只看到稽核中、不知道什麼稽核中」;決策者要首腦「好好想、不要硬改」。首腦提案:清單格與橫幅同一組語言——兩行(目前站名+顏色點/第 N 輪 · 第 N 次內部/外部稽核),被排除:一行三段分類詞、清單塞小進度條、只改第二行。決策者點頭。
  • T5 CM-2831 BE b890afefd+7576f89f2/pkg 3b94ad67/FE 7796818e:runner 把 helper 放 readmodel+app enricher(infra 不能引用 app,比卡上寫法對);橫幅三支函式抽公開共用。runner 無本機帳密未能截圖與實打,首腦用 e2e 管理員帳號補做:API 三欄齊、清單與首頁五列皆兩行、截圖與示意一致。
  • 教訓:⑪範本線名會直接變按鈕文字,建範本時線名要當動作名取、或乾脆不取讓它印站名;⑫runner 卡上寫「必從 UI 驗」要同時給它登入方式(e2e .env.e2e 的管理員帳密),否則一律打折;⑬「清單看不懂」這類題先定「這格要回答使用者什麼」再定欄位,不直接加欄位。
  • T4 第二棒 d2249eb13 復核過:公版+快照+seed 檔+.bpmn 圖源四處線名皆拿掉,reverse 保留;實打 stage/info 按鈕文字「任務規劃與執行」、is_destination true。T1~T5 全部復核過,待決策者複測。
§18

2026-10-16 首腦([R1]大流程修改首腦-3):交接

  • 本棒成果:決策者走劇本第 1~4 步,撞出八題;開測試修正卡 T1~T6(CM-2820/2821/2822/2830/2831/2832),T1~T5 派工、復核過、「修正待驗證」;T6 已開卡未派。決策者裁「測試回報一律開新卡歸測試修正、不退原卡」。
  • 本棒兩次被決策者退回的設計:①進度條「只畫這次路徑」(.17)→ 重做成七站全畫、顏色只講這一次(T3);②按鈕文字「進入重做」→ 線不取名、印下一站站名(T4 第二棒)。共同教訓:UI 文案與版面要先畫「正常路徑每一步長什麼樣」再定規則,首腦驗收 UI 卡要開截圖看「對不對」,不只核「跟卡一樣」。
  • 決策者定的統一原則(T5/T6):每個地方都顯示「第 N 次 · 站名」,N 是正在進行的那一次;推算只有一份(stage_pass_progress.current_pass_info),橫幅/清單/切換器三處都呼叫它。
  • 未裁:控制項導航三行版面(FR-140 之前 4953c199 所致,非本 arc),等決策者選還原或收緊。
  • 本棒教訓(接前棒⑤):⑥「往前推算」類函式要測最常見起點;⑦同一語意兩處各寫就會漂;⑧UI 裁決先畫正常路徑;⑨UI 卡驗收開截圖;⑩同一塊改到第三版還在繞=定義問題;⑪範本線名會變按鈕文字;⑫runner 卡要給登入方式;⑬「看不懂」類題先定「這格回答什麼」。
  • 全案 commit 增補(BE):a39f4b4f9 T1 → 888d6d08d T3 → be7fa6dec/d2249eb13 T4 → b890afefd+7576f89f2 T5;FE:3d06e89c T2、789ee3f2 T3、7796818e T5;套件:3b94ad67 T5;首腦 docs:e66cf9cdc/00a1c8ccb/eb84c53a0/0ad02fb51。
§19

2026-10-16 首腦([R1]大流程重構首腦-3,第四棒):接手、T6 復核過

  • 接手時 T6 CM-2832 已被決策者自行派出(STATE 寫「未派」但卡 In progress、工作樹出現三支 T6 檔),盤點照實回報後等令。
  • T6 復核過(BE e4cb1693c/FE 785a6db4):主專案新 service 包在套件 list_passes 外、推算只呼叫 current_pass_info、原料走 ProjectRoundStageQuery,套件未動;純函式兩向突變各紅 1;8000 實打決策者輪次帶 virtual 欄位、髒輪次不 append 200;截圖核切換列/第 2 次空狀態/清單兩行,無 border-left。
  • live 時序:復核期間決策者已走到第 2 次稽核計畫填寫站(DB 第 2 筆 20:57:17 建,audit_planning),實打兩筆都是真實項、第 2 筆 is_current——「推算項被真實項取代、畫面不變」這條路徑順帶 live 驗到;runner 截圖是取代前狀態,兩種都看過。
  • runner 順手抓到範圍外一題(AP 計畫頁歷史次唯讀提示與麵包屑下拉仍寫「已結案」),已列 T7 候選②,與控制項導航三行版面①一起等決策者裁。
  • 教訓⑭:STATE 寫「已開卡未派」不可信,決策者會自己貼 prompt;接手第一件事 fetch 卡狀態+看工作樹有無該卡範圍的檔(本棒照指引做到,沒撞)。
  • 首腦 docs commit 前核 git status 第一欄:本次只有自己兩個 handoff 檔,pyproject/FR-133 html 未 staged、不動。
§20

2026-10-16 首腦([R1]大流程重構首腦-3,第四棒):決策者直接裁的 FE 小修、劇本走完

  • 決策者看切換器說「好文言文」、看導航說「分不太出來」,要首腦直接改不開卡。逐張截圖往返五次定案:控制項列兩行(外框徽章+百分比/名稱最多兩行)、無進度條、左側 1px 樹狀線;群組進度條改短條併入百分比行;「稽核次」→「稽核紀錄」、標籤補「稽核」、內稽「已完成」/外稽「此輪結束」、已結束不標「目前位置」。FE fd63b703。
  • 順手修:稽核計畫頁麵包屑下拉先判 is_current 再判 closed,整輪結束時剛結束的外稽顯「進行中」,改先看 closed。
  • 被排除:控制項列一行(長名稱會爆,決策者指出)、控制項代號純文字(決策者要徽章)、控制項保留短進度條(決策者不要)、「做完了」口語版(決策者嫌太口語)。
  • 決策者走完劇本、裁可收。DEV 核:三筆稽核次、十筆時間軸、redo 4、job_due 通知都在;未驗到覆核輪新卡期限與手改期限兩項。
  • 教訓⑮:狀態判斷「先看是不是目前、再看有沒有結束」在整輪結束時會把剛結束的那次說成進行中——終態要先判。
§21

2026-10-16 首腦([R1]大流程重構首腦-3,第四棒):收尾

  • 決策者裁:不出安裝包、不做 e2e,把 FR 需要的文件準備好就收;「最後收」=母卡最後收。
  • 首腦做:24 子卡改 Done;母卡 append 收尾彙整(狀態不動);SUMMARY;analysis 2026-10-16-fr140-progress-and-rollback-redesign.md(進度條、退回、推算這一次三條推翻的取捨與反悔條件);design.md 變更紀錄加一行、P6/時序表/畫面段三處標註推翻(正文照「決策文件不回頭改寫」原則不改);FR README 與總 README 狀態改「功能完成、收口中」;frontend-overview §3.6 補 Dropdown 不可掛 v-tooltip;memory 兩條(UI 規則先畫正常路徑、狀態判斷先判終態)。
  • 開收口卡 CM-2834(opus):SPEC 十二頁、使用手冊、守衛補登記 MyStageNotificationsRoute、ddd-compliance-reviewer 掃整個 arc。依 CLAUDE.md 首腦分工,量產文件與審查開 case,不自己寫、不開 subagent。
  • 延後到下次出包:四支套件還原 pin 並發版、八支主線 migration 重產出貨基線。
  • memory 同步注意:個人目錄比 repo 少 43 個檔,整批 cp 會用舊版蓋 repo;本次只 cp 新增兩檔、兩邊 MEMORY.md 各自加兩行。
§22

2026-10-16 首腦([R1]大流程重構首腦-3,第四棒):CM-2834 收口卡復核

  • 決策者說「你繼續」,首腦接做 CM-2834 並背景派審查,隨即發現 23:05 已有 runner commit test(FR-140.C1)——決策者早已另派。首腦停審查、卡尾撤回聲明、改用 Monitor 盯卡。教訓⑯:接做任何卡前先看 git log 有無該卡號的 commit,不只看 Notion 狀態與卡尾。
  • runner 三 commit:5bfddf750 守衛補登記;ddc069c3a SPEC 11 頁+手冊 4.1;60b366dfc 審查阻斷級——DI 註冊檔 922→797 行拆三支(套件 service 受守衛白名單限只能留原檔),stage info 按鈕文字抽方法 129→93 行。
  • 首腦復核抓到時序:runner 23:29 重啟 8000,app_factory 23:32 才存;23:34 FR-142 合回也動 app_factory/containers。首腦於合併後 HEAD 跑守衛 159 passed、create_app 成功、23:36 重啟 8000 無錯、實打五端點 200、按鈕文字一致。
  • runner 待裁五項首腦意見:ap-authoring 已由 FR-141 重寫(不另開);ApObjectiveTree 2px 左框與 ApXlsxPreviewBanner 屬 FR-141;JobDueDateEditor 補 v-can 下次動到時補;出貨基線決策者已裁延後;FR-139 FE 路由守衛紅交 FR-139。
§23

2026-10-17 首腦([R1]大流程重構首腦-3,第四棒):結案

  • 決策者說「文件那邊好像好了」。首腦核:FR-141 收尾文件卡 CM-2835 整頁重寫 ap-authoring 時保留 FR-140 段落(變更紀錄行、麵包屑、唯讀提示、尚未建立、承襲);SPEC 站 strict build 過,產出 HTML 含「此輪結束」。
  • 期間 docs/spec-site/site/ 一度整包顯示刪除,是其他 session 正在 mkdocs 重建,數十秒後恢復;不碰。
  • CM-2834、母卡 CM-2765 改 Done,FR-140 結案。DI 拆檔回歸以守衛 159 過+重啟後實打五端點為準,決策者未另做四項手測。