妙麗不是變快,是同時在兩個地方
用時光器、黑板、儲思盆當骨架,記錄我把 solo 工作流改成多 session 平行時真正撞到的坑,包括一次沒被 git 機制擋下的撞車,以及瓶頸怎麼變成我自己的 review。
這篇在談一個人的多 AI session 工作流:怎麼讓好幾個 Claude Code 同時工作,又不把自己搞丟。
先講結論:妙麗的時光器從來不是讓她變快,是讓她同時存在兩個地方。
我會盯上這件事,是因為原本的工作模式一直卡在同一點:開一個 session 跑一件事,坐在旁邊等,等到一半忍不住切去處理別的,回來還要重新想一次「它做到哪了」「我剛剛為什麼那樣決定」。等待變空轉,空轉之後還要暖機一次。這個差別是今天整輪工作流改造的核心:我不需要打字更快的自己,我需要三個同時開工的自己。
以下是我改完之後留下的東西,包含中途踩到的坑。
時光器:多 session 平行
做法很直接:同時開 2–3 個 Claude Code session,每個 session 配一個 git worktree,各自管一條產品線。worktree 把每個 session 的工作目錄分開,各自改各自的檔案,不會互相覆蓋。
但 worktree 只隔開工作目錄,不隔開其他東西。共用的介面(同一支腳本、同一份設定)、git refs(分支、board 用的那條 ref)、外部共用資源(repo 之外的檔案,例如一份發布前用的草稿目錄)都還是共用狀態,多個 session 一樣能撞在一起。這條界線,我下面會用一次真實撞車來說明。
上限不是算力,算力可以再開十個 session。上限是我一個人 review 不完,2–3 個是我自己試下來能撐住的量。這個數字是我自己的門檻,不是誰的定律。
分科筆記本:邊界
妙麗每門課有自己的筆記本,不會把魔藥學寫進符咒學。平行不出事的前提就是這個:
- 每件事有自己的檔案邊界(worktree / 目錄責任區)
- 兩個 session 永遠不改同一批檔案
- 共用底層要動的時候,先停平行、單獨改、先合,再恢復平行
第三條最重要,而且我真的因為沒守住它出過事。
有一次,一個任務已經有 session 在做,另一個 session 因為我直接下的指示,也接手處理同一個任務、同一篇文章。兩邊都是這個任務名正言順的認領者,不是搶認領。
撞車是怎麼發生的
同一篇文章,兩邊都是正當認領者。真正的撞車,發生在 repo 外一份沒人 commit 的發布草稿目錄。
worktree 隔離的是工作目錄,不是所有共享狀態。
我是因為看到那份草稿的內容跟時間戳不對勁,覺得「這不是我剛剛寫成的樣子」,才停下來,廣播問其他 session 現在誰在動這份東西,等到有人回,才知道是哪兩邊同時在寫,才能對出一個合併版本,沒有真的弄丟內容。
worktree 分開的是工作目錄,避免兩邊直接覆寫彼此的工作檔案;push 拒絕保護的是遠端分支的更新順序,不保證同一個任務沒有被重複做兩遍;repo 外面的共用草稿,本來就不在這兩個機制管得到的範圍內,需要另外安排存取跟協調方式。那次我的做法是主動廣播問「現在誰在動這個」,但那只是我當下臨時的處理方式,不代表這類情況本來就沒有別的辦法可以先防。
黑板:任務認領與同步
學院交誼廳有一塊黑板,誰做什麼一目了然。我的版本是 board/ 底下一個任務一個檔案,欄位是狀態(todo/doing,沒有 done)、認領者、分支、更新時間。
認領規則是:認領當下立即 commit + push 到同一條遠端分支。兩個 session 同時認領同一個任務,兩邊都會去搶那條分支的 push,後到的那個會被拒絕,因為不是 fast-forward。但這只解決「誰先手」,沒解決「後手接下來該怎麼辦」:被拒絕的那個 session 得重新讀一次任務狀態、確認認領者是誰,才能決定要放棄還是改認領別的任務。這一步不是自動的,是我自己去看。
任務結案不是把狀態改成 done、留在板上,是把整個檔案刪掉,記錄只留在 git 歷史裡;板子本身後來怎麼從一份長文瘦身成這樣,另外寫了一篇。
板子會說謊,所以配一支「測謊機」腳本:每天對照 git 實況,板上寫 doing 但分支七天沒動,會被標成「待確認」。這不是自動判定沒人在做、直接回收,七天沒提交本身證明不了任務真的沒人在動,可能只是分支還沒推、也可能是我忘了更新板子。標成待確認之後,我還是要去看一眼,才敢真的回收。
儲思盆:journal + RAG
session 結束時,自動把對話蒸餾成一篇 journal,只錄六類:決策、定案、踩坑、未完、lesson learned、可改進處。上限 500 字,存進 RAG。
新 session 啟動時自動檢索「上次做到哪」。斷線、重開機、對話遺失,這套能幫我把背景找回來,但不是自動接手:接手前我還是要核對一次任務板跟實際程式碼狀態,journal 寫的跟現場對不上的情況也遇過,不一定每次都查得出確切原因。
沒有這套地基,每次開新 session 都要重新解釋一遍前情,平行的成本會吃掉平行的收益。
求知慾:好奇心模組
妙麗答不出來會去圖書館。我的版本:agent 回答前先自評信心,低於門檻就先查再答,查了還是答不出的,記進缺口佇列,排程派 agent 補知識進 RAG。這條線我還在跑,但它跟「怎麼平行協作」是兩件事,這篇先不展開,留給另一篇專門寫。
踩過的坑
- token 用量會增加,這是我自己觀察到的,沒有量到精確比例,不敢說是固定幾倍。
- 20 分鐘內能做完的事,我自己的經驗是不值得開 worktree。切邊界的固定成本比任務本身還貴。
- 我怎麼衡量平行有沒有效,不是同時開了幾個 session,是完成、驗收了多少。開得多、review 不完,等於沒產出。
- 最大的變化是角色:我從「做」變成「review」。工具能幫我做語法檢查、跑測試、比對 diff,但最終要不要接受這個結果、收斂成哪一個版本,還是由我判斷、我負責。
妙麗最後把時光器還回去了
原著裡三年級結束,妙麗受不了了,把時光器還給麥教授。人腦扛不住平行,連妙麗都扛不住。
重點從來不是
把自己變成時光器。
是把平行交給 agent,邊界交給 worktree,記憶交給 RAG,分支更新的先後順序交給 git。但這些工具擋得住的撞車有限,擋不住的那部分還是要人去問、去核對。平行工作讓我少了一些親手執行,卻更需要清楚判斷哪些事可以一起做、哪些結果值得接受。
這類東西我常寫: LinkedIn 追蹤/ RSS 訂閱
← 回到所有文章
留言
留言先審後上;email 只用來回覆聯絡,不會公開。
還沒有留言,當第一個。