## 🔴 無人值守決策表（2026-10-30 晚，決策者裁「很多決策其實沒那麼重要，都可以往下跑」；本段蓋過上面「紀律」段與內文裡任何「停下等人」的句子）

半夜單一工作坊從批 12 跑到批 22，任何一次「停下等人」都會讓後面全部排隊到天亮。下列情況**自己決定、寫進回寫、繼續做**，不停：

- **白名單（ALLOWLIST／FROZEN_FILES／全域／SQL／行數）**：把邊或列從舊路徑改成新路徑不算「加」。搬檔後冒出的新邊，若與既有白名單裡的邊**同形**（同一支被 import 的檔、同一類用途，例：三支同步器都 import `_get_stream`），直接加並附註解「同 <既有邊>，P2-5 一起刪」。行數白名單只准數字不變或變小，不准變大。
- **版號撞號**（Nexus 已有同號）：bump 下一個 beta（`b2`、`b3`…）或 patch 號，回寫寫明，不覆蓋、不問。
- **測試紅**：先查是不是自己改壞的——`git stash` 或對照開工 commit 跑同一支，開工前就紅的是既有紅燈：回寫列出、**不修、繼續**；自己改紅的才修。查超過 30 分鐘還查不出，把那支測試的 traceback 貼回寫、該檔的改動 revert 到能綠、其餘照做完，狀態照常改「修正待驗證」並在回寫第一行標「有一支測試被 revert 繞過，首腦要看」。
- **搬檔後 import 邊比卡上預估的多或少**：以 `test_allowlist_has_no_stale_edges` 與 `test_import_direction_between_modules` 的實際輸出為準，照上面白名單規則處理，不回頭核對卡上數字。
- **卡上寫的路徑或檔名與實際不符**（前一張卡搬過了、命名略有不同）：以當下 HEAD 的實際位置為準，回寫註明「卡上寫 X、實際在 Y」，繼續。
- **「只准 import 對方 app／ports」時對方沒有那個方法**：在對方 `app/` 補一支一到三行的薄方法（只轉呼叫），不在自己這邊繞，回寫列出補了哪些。
- **契約（P3）漏鍵或三邊不一致**：補進契約檔（P3-1 之後的卡也可以改契約檔，commit message 寫明），不停。
- **磁碟不足造成的紅**（訊息含「磁碟不足」「No space left」）：回寫列出哪幾支、繼續；不改程式的磁碟門檻。
- **demo 模式起服務失敗**：先看 log 第一個 Traceback，是自己改的就修；是環境（埠被佔、資料目錄）就換埠或換暫存目錄再試一次，再失敗才算卡住。

**真的要停（狀態留 In progress、回寫問題→建議→理由）只剩三種**：①`git status` 看到不是自己的改動；②開工 branch 不對；③要做卡上明寫「不在本卡」「另開卡」的事才能過（例：拆 sonarqube.py）。其餘一律自己判、往下跑。

**首腦驗收也照此表**：小弟依表自行決定的事，首腦只核「有沒有寫進回寫」與「判斷是否符合表」，不因「沒問人」退回。
