01 / DECIDE
架構決策
當同一任務的多個嘗試必須互不覆蓋,或長時間執行需要在不重啟的情況下追加指示時使用。
Codex CLI 0.163.0 把「工作發生在哪裡」與「哪個 session 擁有它」分開:--worktree 建立受管 Git worktree、codex exec fork 把既有 session 複製成新 session、codex queue 把訊息送進既有 session。 先把 input、output、state 與 side effect 畫成一條可觀察路徑,再決定 讓每個平行嘗試擁有自己的 checkout 與 session 要放在哪一層。
02 / BUILD
三步實作
- 01
框定合約
先寫下 caller、資料分類、成功條件、timeout、取消與 ownership。當同一任務的多個嘗試必須互不覆蓋,或長時間執行需要在不重啟的情況下追加指示時使用。
- 02
建立單一路徑
只實作一條 end-to-end path,保留 request correlation、typed state 與可逆 failure handling。Codex CLI 0.163.0 把「工作發生在哪裡」與「哪個 session 擁有它」分開:--worktree 建立受管 Git worktree、codex exec fork 把既有 session 複製成新 session、codex queue 把訊息送進既有 session。
- 03
證明結果
把驗收寫成可重跑的 fixture、contract test 或 browser test。證據是每個嘗試各有一條 worktree path 與 session identifier、每則排入的訊息都落在預期 thread,且主 checkout 沒有未提交的 agent 修改。
03 / BOUND
Production 邊界
--worktree 需要本機執行,且不能與 resume、review、--ephemeral 或 --ignore-user-config 併用;背景伺服器所用的 app-server 指令仍屬實驗性質,不支援 production workload。
04 / PROVE
驗收證據
證據是每個嘗試各有一條 worktree path 與 session identifier、每則排入的訊息都落在預期 thread,且主 checkout 沒有未提交的 agent 修改。
SOURCE / HTTP
可重現來源探針
curl -fsSI 'https://learn.chatgpt.com/docs/developer-commands?surface=cli' | sed -n '1,5p'