FR-114 夜跑執行首腦——交接 prompt

用法:開一個新 Claude Code session(model Opus、effort medium),工作目錄 BE repo 根目錄,把下面 code block 整段貼進去(把「第 N 輪」換成實際輪次)。它會跑 Workflow:一張卡派 runner → 派驗證 → 過才下一張,不過就攢著、發桌面通知。掛了用 resumeFromRunId 從斷點接,已完成的卡不重做。code block 的內容會被 Workflow 原文轉發給每個 runner,所以它寫的是「做卡」而不是「跑腳本」——執行首腦自己怎麼操作見下方「執行首腦操作」段。

開跑前要確認:①機器不睡(caffeinate -i 或系統設定)②這個 session 所在的工作目錄有 .claude/settings.local.json 的 defaultMode: bypassPermissions(目前 BE 主 checkout 有;工作區 .claude/worktrees/wt-fix-security/ 沒有 .claude/settings.local.json,runner 在那裡跑 git/poetry 會撞權限——開跑前把主 checkout 的 .claude/settings.local.json 複製一份到工作區同路徑)。

這是 FR-114 資安修正第 N 輪自動跑。目標:把 `docs/features/FR-114-2609-security-fix-dispatch/night-run/cards.json` 列的每一張 Notion 卡做完——每張卡的工作內容以卡片本文與卡尾最新一段「首腦裁定」為準;被派到某張卡的人就做那張卡的程式修正、commit、Notion 回寫,照派給你的任務文字裡「先做」「紀律」「最後回報」三段執行。不 push、不切 branch、不合回主線、不發版、不套 STG/POC、不動 docs/security-report/。

若你是收到這整段、且手上有 Workflow 工具的執行首腦:照 `docs/features/FR-114-2609-security-fix-dispatch/night-run/HANDOFF.md`「執行首腦操作」段做(跑 workflow.js、args 傳 cards.json 內容、跑完總結 append 母卡 CM-2019 並發桌面通知)。若你手上沒有 Workflow 工具,你就是被派來做單張卡的 runner,忽略上一句,直接做派給你的那張卡。

執行首腦操作(只有貼上面那段的那個 session 要看;不會被轉發給 runner)

  • model Opus/effort medium,工作目錄 BE repo 根目錄。
  • 跑:Workflow({ scriptPath: "docs/features/FR-114-2609-security-fix-dispatch/night-run/workflow.js", args: <cards.json 用 Read 讀進來的 JSON 物件,不是字串> })。腳本自己會:一張卡派 runner(model 照 cards.json)→ 派驗證 agent(opus,只讀)→ 驗過才下一張;驗不過、需裁的跳過攢著、不停整批,只有 agent 死掉才停。
  • 你不自己修程式、不自己驗、不改任何檔。
  • 跑完(或停)後:① 讀回傳 results,寫成白話總結(哪幾張過/需裁/失敗為什麼/剩哪幾張)append 到母卡 CM-2019 https://app.notion.com/p/SUMMARY-145-worktree-3e2346da4cd0816a87fde3fc8a7eb10c(python scripts/notion_case.py append <母卡 URL> --file <md>)② 發桌面通知 terminal-notifier -title "FR-114 自動跑" -subtitle "<過幾張/停在哪>" -message "<一句>" -sound Glass ③ 在對話裡回報同一段。
  • 中途掛掉(API 500、context):用回傳 runId Workflow({ scriptPath, args, resumeFromRunId: "wf_xxx" }) 接續,最多兩次,第三次還掛就停下回報。
  • 跑完就停,不往收尾跑。

🔴 為什麼貼的那段不能寫「你只要跑 Workflow 腳本」(第六輪事故,2026-09-23):Workflow 工具會把觸發它的那段原話原文轉發給每一個 runner,並告訴 runner「原話優先於腳本給你的任務」。原話若寫「你只負責跑腳本」,runner 就以為自己要跑 Workflow,沒這工具便回報做不到、零改動(第四輪 CM-2048、第六輪 CM-2048+CM-2042 都是這樣)。前幾輪多數卡沒中招只是 runner 剛好選聽腳本那段。所以貼的那段主體必須是「做卡」,執行首腦自己的操作放這一節、不進被轉發的主體。

§1

cards.json 怎麼填(大首腦已填第一波;要改順序或加卡改這裡)

每張:{ "id": "1-3", "caseNo": "CM-20xx", "url": "...", "title": "...", "model": "opus", "effort": "medium", "repo": "pkg", "batch": 1 }

  • model/effort 照 dispatch-plan 各卡建議欄。
  • 順序=執行順序;相依的卡(1-1→1-2、1-9→1-6、5A-4→5C-7)要前後排對。
  • 「先回寫問決策者」的卡(1-1、1-5a、1-7、5A-1、5A-2、4-1、4-2、4-4、5C-2、5C-6)不要排進夜跑,白天派。