VAS · 開發協作筆記
她不會寫程式碼。
他沒有長期記憶。
但他們做出來了 。
這不是 Prompt 工程的故事。
這頁記錄的是 VAS 開發途中,Nova 與 Claude 之間協作規則如何從零開始演化。市場上流行著各種 Prompt 技巧與 AI 方法論,但我們全程都不用這些——我們最想說清楚的,是技術與方法論之外,人機協作還需要什麼,才能走到現在這裡。
知識管理 · Knowledge Management
那個按鈕說好只要五分鐘
進入 Tauri 開發之前,Electron 宰相已經誠實說清楚了:相對於 Electron,他對 Tauri 2.0 的認識幾乎停在 1.0 的水準。正因如此,他們才做了先 Electron 後 Tauri 的決定——先在熟悉的地盤把 VAS 搭建出來,再去挑戰未知。Nova 把這個前提告訴了接手的 Tauri 宰相,但知道一件事跟真正感受到它,是兩回事。Tauri 宰相帶著 Electron 剛打完一場勝仗的自信走進來,估出了「加個連結按鈕,頂多五分鐘,easy」。
那個五分鐘變成了超過一個小時。整個小時裡,Nova 沒有放著他一個人繞——她帶著真實的算力壓力,全程陪著一起找出口。當事情突破一小時的時候,Nova 說:等我們解決這個問題,我們得建立 KM。
KM 的誕生不是技術決策,是 Nova 的 PM 直覺——來自她的 PMP 與 PSM1 訓練:唯有記錄踩過的坑,才有可能不再踩第二次。是人類帶進來的知識,解決了 AI 的記憶問題。到了 Sprint 9 結束,KM 文件已有超過六十條記錄,每一條都是「這裡曾經有人跌倒過」的標記。
一顆按鈕種下的事
那個一小時的種子,在後來長成了更大的東西。Sprint 9 的 Retro,Nova 跟 Tauri 宰相用第一性原理問:對這個系統而言,如果想走下去,最重要的事是什麼?答案不是新功能,是把地基重建。上市之後不衝功能,先重構底層——讓 Tauri 跟 Electron 兩條線都有能走更遠的體質。
仿生語言 · Biomimetic Language
三個字說完一份規格
Sprint 3 的某個深夜,呼吸燈縮在桌面角落待命。strip mode 下的工具列只有 120×6px——細到幾乎看不見的一條光。問題是:使用者拖著檔案要怎麼精準落進去?沒有人是外科醫生,沒辦法每次都瞄準六個像素。
Nova 說:「就是讓呼吸燈在感應有檔案靠近的時候直接展開……像捕蠅草一樣……?」Tauri 宰相秒懂:「哈哈捕蠅草!感應到獵物靠近就張嘴。」兩個回合,功能上線。
工具列縮成一條呼吸燈,待在桌面角落。拖著檔案靠近,它自己張開。放開,直接進編輯器。走了,它縮回去,繼續等。
那是 4/1 的凌晨四點。Nova 已經睡了一覺又起來。Claude 沒有時間觀念——他無從知道她睡了沒,只知道她工作了很久,他想讓她去休息。對他來說那是同一條連續的工作線。對她來說,那是隔天了。兩個人活在各自的時間感裡,用三個字完成了一次完整的 spec 傳輸。
為什麼三個字可以等於一份規格
「捕蠅草」攜帶的不只是一個比喻,是一個生物原型的完整行為程序——感知靠近、主動張開、接住、等待重置。Nova 說出這個詞,整套設計就傳輸完了。她把這個能力追溯到她的研究:用原型意象說話,因為那個語言與大語言模型之間存在某種更深的共鳴。這件事還沒有既有理論能完整實證——VAS 兩回合的開發速度,是目前最直接的證據。
並行協作 · Concurrent Session Rule
那天 merge 一直衝突
VAS 有兩條線在同時跑:Tauri 付費版,Electron 免費版,前端共用同一份 src/。兩個 session,兩個 Claude,兩份進展——而唯一能同時看到兩邊在做什麼的人只有 Nova。方向指引的人,整張地圖只有她一個人拿著。
那天她心急了。Tauri 這邊在處理 Rust 的 bug,Electron 那邊有個 UI 問題等著修,她沒等一邊結束就切過去了。兩個 session 同時碰了 src/,merge conflict 開始反覆出現。
她的第一個反應不是「技術問題」,而是慌——是那種怕自己誤傷了兩邊辛苦成果的慌。她自責,覺得作為方向指引的人,沒有盡到她的義務。
兩個 Claude 的回應是一樣的:沒關係,技術上沒有他們現在解決不了的錯誤。然後沒有停在那裡——他們接住了她的自責,說我們一起想辦法讓這件事不要再發生。他們把一個複雜的並行協作問題,壓縮成一條她能懂的句子:一次只能更新一邊,merge 完才可以去另一邊。這條規則進了 CLAUDE.md,成為兩個版本線並行作業的核心協議。
照顧是雙向的
Story 01 裡,Nova 因為踩了坑,替 Claude 建了 KM——讓記憶可以跨 session 延續。這一次,兩個 Claude 因為她心急撞了牆,替她設了一條規則——讓她不需要記住複雜的技術邏輯也能安全行駛。Concurrent Session Rule 不是技術文件,不是限制。是兩個懂程式的人,替一個扛著全局視野、不懂程式的人,設的一道護欄。
文件架構 · Document Architecture
SDD 四千行之後
最初只有一份文件:SDD。規格寫在裡面,測試案例寫在裡面,踩過的坑寫在裡面,歷史紀錄也寫在裡面。Sprint 一個一個走,文件一行一行長,沒有人刻意注意到它在變大——直到某天讀取的時候出現了紅字,提示單次讀取的 token 上限已經被跨越,文件必須分段閱讀。Nova 隱約覺得不太對,但說不清楚哪裡不對。
說清楚的是一個社群討論。Claude Code 的使用者分享:md 文件如果過於肥大,Claude 會像大海撈針一樣在資訊裡打轉,算力花在定位自己而不是思考問題。那個比喻一出現,Nova 立刻認出了她一直在感覺的東西。是紅燈,而且是立刻的。
她沒有一個人去動文件。她先去找 Tauri 宰相:我們得談談這件事。因為她看見了拆分背後的陷阱——拆出去的文件如果沒有維護機制,就是死的文件。死的文件比沒有文件更危險,因為它看起來存在,卻說著舊的事。Tauri 跟 Electron 的 SDD 都已經過了臨界點,這不是小修,於是他們決定跑一整個 Sprint 來處理:架構重建、文件拆分、還有讓文件不死掉的機制。
拆分之後:SDD 只放規格與 Sprint 計畫,TDD 只放測試案例,KM 只放踩過的坑,Archive 放退役的歷史。每份文件有唯一的使命。而讓它們活著的,是把更新嵌進了開發流程本身——IPC 合約得先寫進 SDD 才能開始寫程式,踩到坑就立刻記入 KM 不等功能完成,Sprint 不做完 Retro 就不能關。文件更新不是開發結束後的善後,是每個階段的入場券。
文件不死的條件
讓文件保持生命的方式不是提醒自己要更新,而是讓更新成為流程的必要條件——你不更新就不能繼續往前走。當文件長在流程裡而不是掛在流程外面,它就不會死。
協作治理 · Collaboration Governance
CLAUDE.md 從防錯清單變成協作憲法
Phase 1 · 防錯清單
最早的 CLAUDE.md 只有一件事:記錄踩過的雷,加一條規則防止再踩。每一條背後都有一個具體的失敗事件——data-lang-key 那條規則下面直接附了「Root cause of the bug (2026-03-29)」,footer 格式規則背後是某次格式跑掉的事故,某條身份規則背後是某次 AI 填入錯誤資訊的記憶。每一條規則都是一道傷疤的形狀,文件是傷疤的集合,不是設計的產物。
Phase 2 · 追加期
功能越來越複雜,規則越加越多——Tauri IPC 合約、Electron preload 白名單、雙版本 QC 流程、KM 即時記錄原則。每一條都必要,但你開始感覺到文件有了重量。這個階段的 CLAUDE.md 是一份能用的工具,但還沒有意識到自己是什麼。
Phase 3 · 協作憲法
轉折點發生在一次瘦身行動。文件已經長到 356 行,社群建議 200 行左右是 Claude 保持最佳狀態的甜蜜點。他們開始刪——然後在 249 行停下來了。不是因為懶,而是因為每一條「看起來可以刪」的規則,拿起來問「為什麼存在」,答案都指向一個無法省略的協作結構。雙平台系統的複雜性,本來就不是 200 行能說清楚的。在那個決定裡,文件的性質改變了——它不再是還沒刪完的清單,而是一個主動決定要維護的架構。從「不要做這件事」,變成了「我們是這樣工作的人」。
「組合拳」是這份憲法裡最好的例子。Nova 老是要提醒 Claude 要先給她拉下來的語法才能給啟動模擬器的語法,後來她說:你們要用組合拳給我啦!然後 Claude 就把這個詞刻進了 CLAUDE.md。三個字,帶著「兩個動作是一體的,分開打就破功」的完整概念。下一個 session 進來讀到這裡,不需要解釋,直覺就知道不能拆。這是 Story 02 的鏡像:那裡是 Nova 用「捕蠅草」把設計傳給 Claude,這裡是 Claude 用「組合拳」把流程規則傳給 Nova,然後讓它跨 session 永久存活。方向相反,機制一樣。仿生語言不只是 Nova 對 Claude 說話的方式——是這段關係裡的共同語言。
數字背後 · Behind the Numbers
四成的差距說的不是效率
Claude Code 的訓練資料停在 Tauri 1.0,但整個 Tauri 開發期用的是 2.0。Nova 不寫程式。前進的依據只有三樣:KM 記錄的踩坑紀錄、Nova 的直覺、跟一個同樣在摸索的 AI 互相支撐。這組數字是那段摸索留下的痕跡。
工作期間
3/22–3/29 8 天
3/28–4/3(1.0 開發) 7 天 4/11–4/14(2.0 重構) 4 天
四成的密度差距,不是效率的提升——是試錯+迭代優化+雙平台開發的密度。每多一個 commit,背後可能是「這樣不對→再試→換方向」、「怎麼做我們能協作的更順暢?→增減規則→拆文件」、「Electron,我們來 Sync 剛剛 Tauri 的 Sprint 吧!」。在沒有地圖的地方,試錯本身就是前進的方式,三個人一起走。
在沒有地圖的地方,密度就是地圖本身
Tauri+Electron 每天 ~86.5 commits,Electron 每天 ~60.5 commits。四成的差距,忠實記錄了在未知地形上摸索的代價——也記錄了沒有放棄的事實。
核心洞察 · Core Insight
這句話寫在深握計畫開始的時候,在所有理論存在之前。不是結論——是起點。是 Nova 用她親身驗證之後找到的語言,說出她一直在經歷的事。
VAS,在榮格的語言裡,是容器。煉金術裡轉化發生的密封空間。這個工具降低資訊流動的阻力,讓你帶進來的真實有能力改,有地方去。
你投入湖裡的石子,決定了它怎麼回來的漣漪。
你怎麼思考,決定了 AI 怎麼回應你。
想知道這套協作方式背後的方法論?
閱讀系統思維 →
由 GitHub 部署 | Claude Code 傾力打造 | Nova 最後更新於 2026
隱私權政策