Compact 與 Session 管理 SOP

Vibe Coding 對話中的 context 管理 SOP。判斷原則簡單:「如果我是人類工程師,這時候我會起身去吃午餐然後再回來嗎?」如果是——該 compact 了。

典型 Compact 時機

  1. 探索完 codebase、產出計畫之後

  2. 完成一個子任務、要進入下個子任務之前

    • 子任務內部細節對下個子任務沒用
    • 留 plan + summary 即可
  3. 對話長到開始發生「函式名稱漂移」

    • 變數名變來變去
    • 即使建立了引導文件仍偏離主題
    • 重複犯同一個錯誤

對話太長的退化警訊(Context Rot Zone

警訊含義
函式名稱前後不一致AI 開始忘記 own naming conventions
即使建立了引導文件仍偏離主題Attention 開始 drift
重複犯同一個錯誤之前的錯誤訊息已從 context 滑出

不要硬撐,立即 compact 或開新 session 並餵入精簡 plan。

Compact vs 開新 Session

場景適合
同主題子任務切換Compact(保留主題上下文)
切到完全不同主題開新 Session
已 compact 過一次但又開始漂移開新 Session
Context 沒滿但思路混亂Compact + 重新整理 plan

餵新對話時的最低必要資訊

開新 session 時,要餵入:

  1. Plan.md(從上個對話產出)
  2. CLAUDE.md 等 context 文件(CLAUDE.md 4 層機制 自動 load)
  3. 必要的 codebase 樣本(譬如「請參考 src/reports/revenue.ts 的結構」)
  4. 不可動範圍(scope 限制要重講一次)
  5. 驗證標準(怎樣算 done)

對應 Prompt 必備六元素

Claude Code 的 Compact 機制

Claude Code 內建 /compact slash command:

  • 自動把目前 context 摘要成精簡版
  • 保留關鍵 plan / progress
  • 清掉中間 exploration 細節

詳見 Slash Commands

Plan-then-Execute SOP 的銜接

Plan-then-Execute SOP
  Step 1-3 (對話 #1:探索 + 計畫)
       ↓
       ↓ ← 此處用 compact 或開新 session
       ↓
  Step 4 (對話 #2:執行)

Compact 不是「等爆了才用」,是 Step 3 → Step 4 之間的標準動作

Effort 推理強度 的關係

Compact 後可調 effort:

  • 探索階段(高 ambiguity)→ 高 effort
  • Compact 後執行階段(plan 已定)→ 中 effort 即可

避免長對話內 effort 一路撐高造成成本浪費。

違反時的常見症狀

  • ❌ 「對話 200 輪沒 compact,AI 開始亂改檔」→ context rot
  • ❌ 「Step 3 產出 plan 後直接 Step 4 在同對話」→ scope 限制 AI 容易忘
  • ❌ 「換主題沒開新 session」→ 上一主題的決策殘留誤導

相關