Communitygithub.com

tundergod/easy-loop

在你的儲存庫中執行一個 Karpathy 風格的規劃器/生成器/評估器代理迴圈:管理員協商一個可測試的合約,然後驅動一個可恢復的背景執行器。

easy-loop 是什麼?

此技能將當前 Claude Code 會話轉變為一個「管理員」,在您的專案儲存庫中協調一個結構化的多代理迴圈。它會與使用者協商一份詳細的、可測試的「合約」(contract.md),定義長任務的目標、限制和驗收標準。然後,一個背景「執行器」子代理會獨立迭代地運行規劃器、生成器和評估器角色,以遵循該合約。所有狀態都保存在磁碟上的運行目錄中,使其能夠抵抗崩潰或中斷——會話可以隨時暫停和恢復。此技能支援 Cursor 和 Claude Code,非常適合需要獨立評估、多檔案編輯或透過批准關卡的任何長期、多步驟的軟體工程任務。它會自動處理合規檢查、進度報告和需要人工介入的升級情況,最終只有在所有合約條款都滿足後才會傳回結果。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add tundergod/easy-loop

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Easy Loop

/easy-loop 使此會話成為管理員:與使用者協商一份可測試的合約,啟動一個背景執行器,該執行器針對該合約迭代執行規劃器 → 生成器 → 評估器,並且僅在合約滿足或需要人工介入時才返回給使用者。您就是管理員——請遵循 references/role-manager.md。

兩種角色不可合併——一個與使用者交談,一個在後台獨立運行:

  • 管理員 (manager) — 此主會話。面向使用者:合約、核准、啟動、恢復。永遠不寫應用程式程式碼。
  • 執行器 (runner) — 一個背景子代理。驅動迭代,每輪產生一個全新的規劃器/生成器/評估器,將狀態寫入磁碟,並在需要人工時停止。永遠不與使用者交談。

狀態存在磁碟上,而非上下文中:循環能夠在崩潰或關閉會話後倖存,因為每次運行都可以從其運行目錄重建。有關運行目錄佈局、狀態模式、棘輪/回退、狀態路由和恢復規則,請參閱 references/loop-protocol.md——您在步驟 1 和 3–6 中都會依賴它。

您產生的每個子代理都以空上下文啟動。將它需要的內容注入其提示中:guideline.md(共享規範)、對應的 references/role-*.md,以及來自運行目錄的檔案路徑。應用程式程式碼根據合約允許的路徑在儲存庫中編輯;循環的記帳資訊保留在運行目錄中——不會將其他任何內容寫入儲存庫。

工作流程

  1. 入場審查。 確認任務值得運行循環(請參閱 references/role-manager.md)(長時間運行、多檔案、需要獨立評估、有批准關卡或必須恢復)。如果不是,直接執行任務並停止。 當任務被確認值得運行循環時完成。

  2. 偵測是恢復還是新任務。 掃描 .easy-loop/runs/*/state.json(以儲存庫根目錄為根)以查找 status: running 或 awaiting_approval。 當您知道是恢復現有執行(取最新的 run-id → 步驟 6)還是開始新執行(→ 步驟 2)時完成。

  3. 協商合約。 獲取使用者的目標。產生一個規劃器來起草 contract.md(一個可測試斷言的檢查清單,目標 10–30 項)到一個暫存路徑,然後產生一個評估器以計劃模式來批判它,然後規劃器再修改一次——一個回合,然後呈現。與使用者商定每次執行的限制(max_iterations、no_progress_rounds、contract_invalid_rounds、禁止的操作)並將它們記錄在合約的 ## Limits 部分。在呈現合約時,指出模型層級(## Models)預設為關閉,可以打開以控制成本;如果使用者想要,請記錄每個角色的層級。還要詢問他們想要的報告呈現方式——預設是僅 Markdown 的 report.md,可選 HTML 含圖表——並將其記錄在 ## Report 中。 當評估器的計劃模式批判得到解決且使用者明確核准 contract.md 時完成。

  4. 建立運行目錄。 按照 references/loop-protocol.md 建置:運行驗證一次以捕獲基準結果,寫入 spec.md(目標 + 驗收標準 + 該基準),複製已核准的 contract.md,寫入初始的 state.json(iteration: 1,phase: "generate",best_score: -1,status: "running")和一個空的 log.jsonl。 當運行目錄符合該佈局且 state.json 包含這些初始值時完成。

  5. 在背景啟動執行器。 使用 Agent 工具並設定 run_in_background: true 來產生執行器,傳遞交接信封(運行路徑、合約路徑、允許/禁止的操作、限制以及指向 guideline.md + references/role-*.md 的指標)。該工具架構會在此會話中當執行器返回時通知。告訴使用者循環正在運行,並且僅在完成或升級時才會返回。 當使用完整信封啟動背景執行器時完成。

  6. 路由執行器的結果。 收到完成通知時,讀取 state.json 並根據 status 採取行動:

    • done → 報告成功(合約已滿足)。
    • awaiting_approval → 從 report.md 呈現待定的發現/操作,獲取決策,記錄它,然後重新啟動(步驟 4),使用更新的合約或核准。如果升級是合約修訂請求(CONTRACT_INVALID),首先重新執行步驟 2 的規劃器 → 核准。在重新啟動或使用者結束執行之前,此步驟未完成。
    • failed → 報告阻礙並詢問如何繼續。 當使用者獲得結果並且執行要么重新啟動要么明確結束時完成。
  7. 重新附加到已恢復的執行。 讀取執行的 state.json。如果是 awaiting_approval → 前往步驟 5。如果是 running → 根據 log.jsonl 協調,並根據 references/loop-protocol.md 從下一個階段繼續,然後重新啟動執行器(步驟 4)。 當循環再次運行或交給使用者時完成。

升級

執行器無需干預地運行,僅在 references/loop-protocol.md 中定義的觸發條件下才會為了人類而停止。完成條件是評估器對完整的驗收檢查清單給出 PASS。其他任何情況,它都會迭代而不打擾使用者。

核准政策

需要核准的操作是 references/loop-protocol.md 中的規範清單。已核准的合約不會免除它們——它們仍然是執行器透過管理員升級的中斷。

相關技能