為什麼需要自動記憶沉澱?
在一次功能變更(Change)完成並執行 openspec archive 歸檔時,這次變更所產生的 proposal.md、design.md 與任務歷史都會被移入歸檔目錄。雖然資料被保存了,但如果我們沒有主動「提煉核心精華」,未來的 AI 助手在面對新任務時,並不會主動去翻閱已經歸檔的舊目錄。
自動任務總結與記憶沉澱工作流 (Post-mortem Memory Ingestion Flow) 專門用來在變更結束時,自動將「活的變更日誌」壓縮為「長期靜態的架構共識」,寫入 SQLite 記憶庫中。
實作步驟詳解
┌──────────────────────┐
│ 1. 觸發歸檔指令 │ <-- 執行 /opsx:archive 結案
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 2. 提取設計決策 │ <-- 自動讀取 design.md 核心點
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 3. 語意摘要壓縮 │ <-- 排除雜訊,提煉為 200 字黃金記憶
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 4. 寫入 SQLite DB │ <-- 調用 save_observation 保存
└──────────────────────┘
步驟 1:觸發歸檔結案 (Archive Trigger)
當前變更計畫的所有任務在 tasks.md 中都已被標記為完成,且通過建置驗證。開發者執行歸檔命令。
步驟 2:提取設計決策與 Git Diff
AI 助手在將計畫資料夾移入 archive/ 目錄的同時,會自動開啟並掃描該變更內部的 design.md,特別聚焦於「Decisions (設計決策)」與「Consequences (後果)」章節。
步驟 3:語意摘要與過濾 (Semantic Compression)
AI 助手將凌亂的程式碼修改細節與除錯日誌進行壓縮,過濾掉語法碎屑,僅提煉出具備長期參考價值的「黃金架構規律」。
- 提煉範例:
- Raw Code: 修改了 Socket.cs、Helper.cs 的逾時行號。
- Compressed Memory: “因應尖峰延遲,PLC 連線與 Socket 超時時間統一設定為 60 秒。”
步驟 4:寫入 SQLite 本地記憶庫 (Persistence)
調用 save_observation 工具,將這條提煉出的黃金觀察永久寫入本地資料庫,確保它能跨會話地為未來的任務提供大腦指引。
- 實戰指令:
save_observation(key: "plc_timeout_60s", value: "全域 PLC Socket 通訊 CommandTimeout 必須維持 60 秒以防高載延遲。", category: "architecture")