跳至主要內容
← 返回 Director Mode Lite
/auto-loop 核心功能

Auto-Loop

由 Stop hook 輔助的 TDD 循環。定義驗收標準與迭代上限;檢查點仍在進行中時,系統會要求 Claude 繼續。

運作原理

1

定義驗收標準

- [ ] 核取方塊記錄工作狀態,並逐項實際驗證

2

Auto-Loop 迭代

每次迭代要求 Claude 對未完成 AC 套用 Red-Green-Refactor

3

Stop Hook 重新注入

狀態有效時,Stop hook 以 reason 阻止退出並要求下一輪

記錄完成或達上限時退出

狀態標記完成、收到停止要求,或達到最大迭代數時退出

請驗證結果:驗收標準核取方塊與檢查點狀態由模型維護,不能當作獨立證明。 判定完成前,請檢查 diff,並實際執行專案的測試、lint 與 build。

TDD 循環

內附指示要求每次 Auto-Loop 迭代遵循這個 TDD 循環:

階段 動作 建議支援
RED 為下一個 AC 撰寫失敗測試 /test-first 指引
GREEN 撰寫最小程式碼通過測試 專案測試指令
REFACTOR 改善程式碼品質 可選 code-reviewer agent
VALIDATE 執行完整測試套件 + lint test-runner + 專案指令
COMMIT 儲存進度 取得授權後用 /smart-commit
DECIDE 檢查是否完成,繼續或退出 檢查點狀態 + 實際驗證

使用範例

基本使用

/auto-loop "建立計算機模組

驗收標準:
- [ ] add(a, b) 函式
- [ ] subtract(a, b) 函式
- [ ] multiply(a, b) 函式
- [ ] divide(a, b) 含除零檢查
- [ ] 所有函式的單元測試"

設定迭代上限

/auto-loop "實作使用者認證" --max-iterations 15

從檢查點恢復

# 中斷或重啟後
/auto-loop --resume

檢查點系統

Auto-Loop 將狀態保存在 .auto-loop/checkpoint.json

{
  "request": "建立計算機模組",
  "current_iteration": 5,
  "max_iterations": 20,
  "status": "in_progress",
  "acceptance_criteria": [
    { "id": 1, "description": "add(a, b) 函式", "done": true },
    { "id": 2, "description": "subtract(a, b) 函式", "done": true },
    { "id": 3, "description": "multiply(a, b) 函式", "done": false }
  ],
  "files_changed": ["calculator.js", "calculator.test.js"]
}

檢查點存在且有效時可恢復中斷的執行。記錄的檔案與狀態只供審查參考,不代表變更或測試正確。

停止與控制

停止循環

# 在另一個終端機
touch .auto-loop/stop

當前迭代完成後優雅地停止循環。

恢復循環

# 從保留的檢查點恢復
/auto-loop --resume

Hook 會消耗停止信號;檢查點仍保留給 --resume 使用。

Stop Hook 如何運作

Auto-Loop 使用 Claude Code 的 Stop hook 機制。 安裝程式會把設定合併到專案的本機 settings。

# .claude/settings.local.json(由 install.sh 合併)
{
  "hooks": {
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/auto-loop-stop.sh"
      }]
    }]
  }
}

Claude 嘗試停止時,hook 會檢查本機檢查點。循環有效且未達上限時,輸出 {"decision": "block", "reason": "..."} 要求下一輪。 已完成、已停止、達上限或沒有有效中的檢查點時,則成功退出且不輸出 decision payload。

準備開始嗎?

安裝 Director Mode Lite 並啟動你的第一個 Auto-Loop。

安裝指南 →