--- name: memory-checkpoint description: "Externalize detailed memory to Memory Bank before conversation summarization to prevent context loss. Triggers: CP, checkpoint, save, 存檔, 記一下, 保存, sync memory, dump, 先記著." --- # Memory Checkpoint 技能 (記憶檢查點) ## 描述 在對話被 Summarize 壓縮前,主動將詳細記憶外部化到 Memory Bank,避免重要上下文遺失。 ## 觸發條件 - 「記憶檢查點」、「checkpoint」、「存檔」 - 「保存記憶」、「外部化記憶」 - 「sync memory」、「dump context」 - 對話較長時主動觸發(建議每 10-15 輪對話或重大進展後) --- ## ⚠️ 為什麼需要這個 Skill? 當對話過長時,系統會自動 Summarize(摘要)對話歷史,可能導致: - 詳細的程式碼變更記錄被省略 - 決策背後的討論脈絡遺失 - 檔案路徑和具體實作細節模糊化 - 需要花時間重建上下文 **解決方案**:在被 Summarize 前,主動將關鍵記憶寫入 `memory-bank/` 目錄。 --- ## 📋 Checkpoint 內容 ### 1️⃣ activeContext.md - 當前工作焦點 ```markdown ## 當前工作焦點 ## 進行中的變更 ## 待處理事項 ## 關鍵決策 ## 相關檔案 ``` ### 2️⃣ progress.md - 進度追蹤 ```markdown ## Done (已完成) - [x] 具體完成的事項(含檔案路徑) ## Doing (進行中) - [ ] 正在進行的工作 ## Next (下一步) - [ ] 計劃要做的事項 ``` ### 3️⃣ decisionLog.md - 決策日誌 ```markdown ## YYYY-MM-DD ### 決策:[決策標題] - **背景**:為什麼需要這個決定 - **選項**:考慮過的方案 - **決定**:最終選擇 - **原因**:選擇的理由 ``` ### 4️⃣ architect.md - 架構記錄(如有變更) ```markdown ## 架構變更記錄 ### YYYY-MM-DD: [變更標題] - **變更內容**: - **影響範圍**: - **相關檔案**: ``` --- ## 🚀 Checkpoint 執行步驟 ### 自動執行(推薦) 當偵測到以下情況,AI 應主動執行 Checkpoint: 1. **對話長度指標** - 對話超過 10 輪 - 累積修改超過 5 個檔案 - 完成一個重要功能/修復 2. **工作階段轉換** - 從設計階段轉到實作 - 完成一個 PR 或 Commit - 切換到不同的功能區塊 3. **明確指標** - 使用者說「先記一下」、「checkpoint」 - 使用者說「等等繼續」、「我先去忙」 ### 手動執行 使用者可隨時說: - 「記憶檢查點」 - 「同步 memory bank」 - 「存檔目前進度」 --- ## 📝 Checkpoint 範本 ### Quick Checkpoint(快速檢查點) 更新 `activeContext.md`: ```markdown # Active Context > Last checkpoint: 2024-XX-XX HH:MM ## 🎯 當前焦點 [一句話描述當前在做什麼] ## 📝 本次對話摘要 1. [做了什麼 1] 2. [做了什麼 2] 3. [做了什麼 3] ## 📁 變更的檔案 - `path/to/file1.py` - [變更摘要] - `path/to/file2.ts` - [變更摘要] ## ⚠️ 待解決 - [ ] 問題 1 - [ ] 問題 2 ## 💡 重要決定 - 決定 A:[原因] - 決定 B:[原因] ## 🔜 下一步 1. [下一步 1] 2. [下一步 2] ``` ### Full Checkpoint(完整檢查點) 更新所有相關 Memory Bank 檔案: ``` memory-bank/ ├── activeContext.md ← 當前焦點 + 變更檔案 ├── progress.md ← Done/Doing/Next ├── decisionLog.md ← 新決策(如有) ├── architect.md ← 架構變更(如有) ├── productContext.md ← 技術棧變更(如有) └── systemPatterns.md ← 新模式/慣例(如有) ``` --- ## 🔄 與其他 Skills 整合 ### 搭配 git-precommit ``` git commit 前 → 觸發 memory-checkpoint → 同步 Memory Bank → commit ``` ### 搭配 memory-updater ``` memory-checkpoint = 批次更新 memory-updater = 增量更新 ``` --- ## 💬 對話範例 ### 使用者觸發 ``` User: checkpoint AI: 📸 執行記憶檢查點... 已更新 Memory Bank: - ✅ activeContext.md - 記錄當前焦點與 5 個變更檔案 - ✅ progress.md - 新增 3 個已完成項目 - ✅ decisionLog.md - 記錄 2 個決策 下次對話可從此處繼續,即使被 Summarize 也不會遺失關鍵資訊。 ``` ### AI 主動觸發 ``` AI: 💡 偵測到對話較長且有多項進展,建議執行記憶檢查點。 是否要我同步 Memory Bank? User: 好 AI: 📸 執行記憶檢查點... [更新 Memory Bank] ``` --- ## ⚙️ 配置選項 在 `.vscode/settings.json` 中可配置: ```json { "claude.skills.memoryCheckpoint": { "autoTrigger": true, "triggerThreshold": { "conversationTurns": 10, "filesModified": 5 }, "includeFiles": [ "activeContext.md", "progress.md", "decisionLog.md" ] } } ``` --- ## 📊 Checkpoint 品質檢查 好的 Checkpoint 應包含: | 項目 | 必須 | 說明 | |------|:----:|------| | 當前焦點 | ✅ | 一句話描述正在做什麼 | | 變更檔案列表 | ✅ | 完整路徑 + 簡述 | | 待解決事項 | ✅ | 還沒完成的工作 | | 重要決策 | ⚪ | 如有新決策 | | 下一步 | ✅ | 接下來要做什麼 | | 時間戳記 | ✅ | 知道這是什麼時候的狀態 | --- ## 🛠️ 實作提示 ### 對 AI 的指示 在 `CLAUDE.md` 或 `AGENTS.md` 中加入: ```markdown ## Memory Checkpoint 規則 1. **主動觸發時機** - 對話超過 10 輪時,主動建議 checkpoint - 完成重大功能後,主動執行 checkpoint - 使用者說要離開時,主動執行 checkpoint 2. **Checkpoint 內容** - 必須包含:具體檔案路徑、變更摘要、下一步 - 避免:過於籠統的描述、遺漏重要細節 3. **格式要求** - 使用時間戳記 - 檔案路徑使用相對路徑 - 保持簡潔但完整 ```