Communitygithub.com

assemble

多模型迭代審查迴圈。四個模型輪流改善與驗證同一份答案,角色輪換(建構者、質疑者、極端案例、簡化者),經過 4x4、3x4、2x4 共 36 輪後提前收斂。當使用者輸入 /assemble、要求多模型交叉驗證解決方案、設計、計畫或程式碼,或要求進行 Ralph Wiggum 風格迴圈時使用。

assemble 是什麼?

assemble 是一種多模型協作審查技能,支援 AI 代理人(如 Claude Code、Cursor、Codex)透過結構化的迭代流程改善與驗證答案。它讓四個模型輪流扮演建構者、質疑者、極端案例與簡化者等角色,在預設的 36 個回合中(分為 4x4、3x4、2x4 三個區塊)進行交替審查與改寫。每回合都會將進度寫入檔案而非儲存在對話脈絡中,確保每個回合都是全新開始(即所謂的 Ralph Wiggum 技術)。當連續四回合無變更、出現收斂標記(CONVERGED),或開放 MUST 事項一個完整區塊未減少時,流程會提前停止。此技能支援三種模型適配器:內部子代理人、廠商 CLI(可混合不同供應商模型)、或單一模型自行扮演所有角色。

相容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/DigiAye/agent-skills/tree/HEAD/skills/assemble

在你喜歡的 AI 中提問

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

說明文件

assemble 是做什麼的?

四個模型,一個答案,多輪反覆。每一回合讀取當前最佳答案,從指定角色提出批評,然後寫出改良版本。進度存放在檔案中而非對話脈絡,因此每個回合都是全新的開始(Ralph Wiggum 技巧)。

命令

命令行為
assemble <task>以預設排程(36 回合)開始一次執行。
assemble --quick <task>一個區塊,2 輪 x 4 個模型(8 回合)。
assemble resume [<slug>]繼續最近(或指定名稱)未完成的執行。
assemble cancel [<slug>]在狀態檔中設定 status: cancelled 並停止。
assemble status顯示當前迭代、區塊、開放 MUST 事項以及使用的模型。

開始之前

  1. 若 .assemble/config.json 存在則載入,否則使用 assets/config.example.json。
  2. 選取模型適配器(見下文),告知使用者將運行哪四個模型,以及他們的任務文字將被傳送到何處。如果有任何模型不在 allowedModels 中,或者 localOnly 為 true 但模型為遠端,則捨棄該模型並告知使用者。
  3. 用一個簡短段落重新說明任務與接受條件。如果任務不明確,請在使用者花費任何回合之前提出疑問。
  4. 建立 .assemble/<slug>/ 目錄,包含 task.md、answer.md(空白)與 state.md(格式請參閱 references/state-format.md)。確保 .assemble/ 已在 .gitignore 中。

排程

一個回合就是一次模型輪次。一輪是所有四個模型各輪一次,依序進行。

區塊輪數回合數累計總數
141616
231228
32836

第 36 回合後,顯示報告並詢問使用者是否要再執行一個區塊。在沒有使用者同意的情況下,絕不超過 36 回合。

每輪角色輪換,讓每個模型都扮演過所有角色:在第 p 輪(從 0 開始),模型 m 扮演 roles[(m + p) % 4](角色定義請參閱 references/roles.md)。

每個回合

僅從檔案建立回合提示,使用 references/handoff-format.md 格式:

  • task.md
  • 目前的 answer.md
  • 前一回合的批評(來自最新的 round-NN.md)
  • 本回合的角色卡片

不要包含更早的回合,也不要說出哪個模型寫了當前的答案。然後:

  1. 使用選定的適配器將提示傳送給本回合的模型。
  2. 將回覆解析為批評(每個問題標記為 MUST 或 NICE)、修改後的答案以及最終判定。
  3. 如果任務是程式碼並且已設定 checks,則在暫存副本中套用修改後的答案,執行檢查,並將任何失敗新增到批評中作為 MUST 項目。
  4. 寫入 round-NN.md(角色、模型 ID、批評、檢查結果、判定、行數差異大小),並用修改後的答案覆寫 answer.md。
  5. 更新 state.md:迭代次數、區塊、輪次、開放 MUST 計數以及無變更連續次數。
  6. 給使用者一行進度提示:回合 7/36 · 質疑者 · 2 個 MUST, 1 個 NICE · 差異 14 行。

如果模型發生錯誤或逾時,將它記錄在 round-NN.md 中,跳過該回合,然後繼續。如果連續兩個模型失敗,暫停並告知使用者。

停止條件

當一個回合未提出任何 MUST 項目,且對 answer.md 的變更少於 noChangeLines 行時,該回合計為無變更。

在以下任一情況提前停止:

  • 連續四個回合(整整一輪)都是無變更,或
  • 一個回合以 <promise>CONVERGED</promise> 結束,且下一個回合確認沒有 MUST 項目。

如果開放 MUST 計數在整個區塊內都沒有下降,則停止並寫入一段簡短的「卡住」說明:阻塞的原因、嘗試過的方法,以及使用者可以如何決定來解除阻塞。

報告

當執行結束時,寫入 .assemble/<slug>/report.md 並顯示:

  • 最終答案
  • 已執行的回合數以及停止原因
  • 每個區塊的主要變更
  • 任何開放的 NICE 項目
  • 使用的模型,包含失敗次數
  • 粗略的 token 與成本估算(提示與回覆大小的總和,若設定則乘以配置中的價格)

模型適配器

使用第一個可用的適配器,並告知使用者你選擇了哪一個。

  1. 工具內部子代理人。 如果主機可以生成子代理人並選擇其模型,則每個回合使用一個。Cursor 可以混合不同供應商。Claude Code 和 Kiro 在此只能提供 Claude 模型,因此四個模型將是 Claude 的變體。
  2. 廠商 CLI。 每個回合執行一次 scripts/run-model.sh <model-id> <prompt-file>。這是真正的多供應商選項。在執行開始前,請確認每個 CLI 都存在(command -v)。
  3. 單一模型。 自己執行每個回合,扮演該回合的角色。只讀取該回合的檔案,並將每個回合視為全新的開始。

選用的工具特定輔助程式,例如用於無人值守執行的 Claude Code 停止鉤子,存放在儲存庫的 adapters/ 資料夾中。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能