Pomofocus 的 repo 裡有一個檔案叫 HANDOVER.md,623 行。
它是這個專案最重要的東西,因為它是唯一活下來的紀錄。
前十一節是規劃:產品概念、需求決議表、技術決策、專案結構、五個核心模組的設計、資料層、統計圖表、六個里程碑、風險清單、驗證方式、下一步。
第十二節是開發紀錄,從 12.1 到 12.31,每一節都有日期和標題:
12.2 本機 Godot 環境(重要,容易踩雷)
12.3 冒煙測試重跑方式
12.5 M1 完成紀錄(2026-06-12)
12.11 M6 後打磨與修正(2026-06-16)
12.18 放大迷你倒數窗按鈕點擊區(2026-06-18)
12.19 統計頁「產生 AI 用眼分析 prompt」(2026-06-29)
12.22 邊緣貓跨螢幕巡邏 + 停靠時間縮短(2026-07-17)
12.24 長休走動結束後休息視窗消失 + 走動期間全螢幕遮罩(2026-08-05)
12.29 「自動開始下一段」拆成自動休息 / 自動番茄兩段(2026-08-10)
12.31 柔性小窗放大到 400x300(修文字疊字破圖,2026-08-10)
每一節的結構大同小異:使用者回報了什麼、訪談決議是什麼、改了哪些檔案、怎麼驗證、還有什麼沒驗到。
有了這份文件之後,我開新對話的第一句話通常是:
/goal 請閱讀 HANDOVER.md 並實作第十一節下一步
不用解釋專案在做什麼、不用說明架構、不用重講環境的坑。它自己讀。
這件事在 Sproutimer 完全不存在。那時候每開一個新對話,我就得重新講一次背景,或者乾脆不講——直接說「幫我改 HUD.gd」,然後它在沒有上下文的情況下猜我要什麼。
文件裡有一節叫「風險與注意事項」,十條,全部是 Windows 加 Godot 4 的具體坑。有一節叫「驗證方式」,寫明每個里程碑要怎麼確認。還有 12.2 那節環境說明,救了我很多次。
但最有用的是那些**「還沒做完」的紀錄**。例如 12.28 最後一段:
未處理(同類但不在這次範圍):
WORK_OVERRUN時主要按鈕一樣是無效的「暫停」⋯若之後覺得逾時狀態下的迷你窗也該能一鍵進休息,可比照本節同樣方式補。
八月我停下來之後,這份文件讓我隨時可以接回去。我現在要繼續做,不用重新讀程式碼,只要看這一節。
49 個 commit 裡,有 16 個帶著 AI 共同作者的標記。有意思的是版本不只一個:
Claude Opus 4.8 13 個
Claude Opus 5 2 個
Claude Fable 5 1 個
這個專案從 6 月做到 8 月,中間換過模型。而每次換,它讀的都是同一份 HANDOVER.md。
文件比模型活得久,這是我從這件事學到最實際的一課。
開發時依賴的不是「這個對話記得我們討論過什麼」,而是「這個專案的狀態寫在檔案裡」。
7 月 10 日,我請它寫了一個 README.md(docs: add README.md as feature index linking into HANDOVER.md sections),當作功能索引。
因為 623 行已經到了「我自己找不到東西」的長度。README 變成目錄:
我在準備這個系列時才發現,Claude Code 的對話紀錄預設只保留 30 天。Pomofocus 六月到八月的所有對話,現在一則都不剩。
連我當初用 plan mode 產出的規劃檔也被刪了——交接文件第 5 行還引用著它的檔名 godot-4-x-majestic-quill.md,但那個檔案已經不存在。
活下來的是什麼?是進了 git 的東西。程式碼、commit 訊息,還有這 623 行。
如果當初沒有要求 AI 每完成一段就把紀錄寫進 repo,這個系列大概只剩下 commit 訊息可以寫。
不用一開始就 623 行。這四塊先有,就足夠讓任何新對話接上:
一、需求決議表 誰確認了什麼,尤其是「不做什麼」
二、本機環境 路徑、指令怪癖、踩過的坑
三、里程碑 + 驗證方式 什麼算做完
四、改動紀錄(依日期) 改了什麼 / 怎麼驗的 / 什麼還沒驗
第四塊每則的最後一行是重點:「什麼還沒驗」。AI 很擅長寫這個——它知道自己跑了什麼、沒跑什麼,只是不要求,它就只會說「全部通過」。
配套的兩句固定指令:
請閱讀 HANDOVER.md 並實作第 N 節的下一步
請更新 HANDOVER.md
我在收尾這句手打了 6 次之後,把它寫進 CLAUDE.md 變成預設行為,就不用再講了。
最後一個理由,也是我寫這個系列才得到的體悟:**對話紀錄留不住,進了 git 的東西才留得住。**我這 30 天有一半的內容是從那 623 行挖出來的,而同期的所有對話早就被清光了。
明天回到功能面,講一個我問了三次才問對的 bug:那隻貓走到第二個螢幕就會憑空消失。