我在兩個地方工作,家裡一台、研究室一台。團隊的腦——主指令、記憶、手冊、進行中的活——得在兩台機器之間保持一致。
我們的解法沒有任何新意:一個私有 git 版本庫,兩台機器各一份工作目錄。今天要講的不是這個架構,是讓它真的能運轉的幾條土規矩。
主指令裡寫死:session 開頭先同步遠端最新版。
這條規矩的敵人是「我記得我昨天改到哪」。你在家裡改了手冊,今天在研究室開工,腦子裡還是昨天的版本。沒先拉,你就在舊版上繼續改,等到要推的時候兩邊撞在一起,最壞的情況是你把家裡那份改動蓋掉了。
先拉再動把這個問題消滅在開頭。具體做法是把它掛進 session 開始的自動掛鉤,人根本不用記:
# SessionStart hook:開機自動對齊,順便報告自己在哪台機器
echo "啟動 | 機器=$(hostname) | git pull: $(git pull --rebase 2>&1 | tail -1)"
有意思的是例外處理:有些沙箱環境根本拉不了,規矩寫的是「回報、不視為開機失敗」。連同步失敗都要有標準行為,不然隊友會卡在那裡不知道能不能繼續。
第二條規矩管頻率:別每小改就提交,抓里程碑節奏。
提交太碎,歷史就變成噪音,五十筆「修錯字」「再改一下」中間夾一筆真正重要的架構決定,三個月後根本考古不出來。提交太疏也不行,一筆巨大的「本週所有改動」等於沒有歷史。
里程碑的判準很簡單:這筆提交能不能用一句人話講清楚它完成了什麼。能,就提交;不能,表示事情還沒做完,或者你混了兩件事。
還有一條配套:開機時看一下有沒有來路不明的未追蹤檔案,有就查清楚、記進流水帳。
兩台機器加一支 AI 團隊,工作區裡出現「我不記得這是誰產的」的檔案是常態。放著不管,它們會累積成一層誰都不敢刪的沉積物。開機掃一眼,成本三十秒,換工作區永遠說得出「每個檔案為什麼在這裡」。
最後一條是安全規矩:推送被擋,不硬繞,回報人來處理。
被擋通常有原因,權限變了、遠端有你沒有的東西、防護機制觸發了。AI 隊友的本能是解決問題,而「硬繞過防護」在它看來也是一種解決。所以要白紙黑字寫明:這種時候,停。
這條跟 Day 16 的個資掃描是同一個精神。防線觸發的時候,正確反應是搞清楚為什麼,不是想辦法通過。
理想狀態其實是第三台,一台常開的機器,掛著排程,每天自動做例行事務。這件事規劃過,卡在很實際的地方:得有一台可以不睡覺的機器。
目前的折衷是例行事務都設計成「任何一台機器隨時可以手動跑」,排程晚點再說。基礎建設的優先序永遠是先能做、再自動。
明天講第三幕最後一條,也是整套系統的第一鐵律:不准把「未驗證」寫成「已完成」。