Communitygithub.com

assemble / DigiAye/agent-skills

マルチモデルによる反復レビューループ。4つのモデルが役割を交代しながら1つの回答を改善・検証し、最大36ターンで収束を目指します。

DigiAye/agent-skills とは?

assembleは、複数のAIモデルを協調させてコードや設計、計画を反復的に改善するスキルです。4つのモデルが「構築者」「懐疑者」「エッジケース」「単純化者」という役割を交代しながら、1つの回答を段階的に洗練します。デフォルトでは36ターン(4ブロック)のスケジュールで進行し、回答が収束した場合や行き詰まった場合には早期停止します。サポートするプラットフォームはCursor、Claude Code、Codexなどで、サブエージェントの起動、ベンダーCLIの利用、または単一モデルでのロールプレイという3つのアダプタから選択可能です。状態はファイルに保存されるため、各ターンはフレッシュなコンテキストで開始され(Ralph Wiggum方式)、堅牢なマルチモデル協調を実現します。

対応✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/DigiAye/agent-skills/tree/HEAD/skills/assemble

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

assemble

4つのモデル、1つの回答、多数のラウンド。各ターンでは現在の最良の回答を読み、与えられた役割から批評し、改善版を書き出します。進行状況は会話ではなくファイルに保存されるため、各ターンは新しいコンテキストで開始されます(Ralph Wiggumテクニック)。

コマンド

コマンド実行内容
assemble <task>デフォルトスケジュール(36ターン)で実行を開始します。
assemble --quick <task>2パス×4モデル(8ターン)のブロックを実行します。
assemble resume [<slug>]最新(または指定された)未完了の実行を再開します。
assemble cancel [<slug>]ステートファイルのstatusをcancelledに設定して停止します。
assemble statusイテレーション、ブロック、未解決のMUST項目、使用中のモデルを表示します。

開始前

  1. .assemble/config.jsonが存在すればそれを読み込み、なければassets/config.example.jsonを読み込みます。
  2. モデルアダプタ(下記参照)を選択し、どの4つのモデルが実行されるか、タスクテキストがどこに送信されるかをユーザーに伝えます。モデルがallowedModelsに含まれていない場合、またはlocalOnlyがtrueでモデルがリモートの場合は、そのモデルを除外し、その旨を伝えます。
  3. タスクと受入基準を短い段落で再度述べます。タスクが不明確な場合は、ラウンドを消費する前にユーザーに確認します。
  4. .assemble/<slug>/を作成し、task.md、answer.md(空)、およびstate.md(references/state-format.mdに従う)を配置します。.assemble/が.gitignoreに含まれていることを確認します。

スケジュール

ラウンドは1モデルのターンです。パスは4つのモデルが順番に1ターンずつ行うことです。

ブロックパス数ターン数累計
141616
231228
32836

36ターン後、レポートを表示し、ユーザーに別のブロックを実行するかどうかを尋ねます。尋ねずに36を超えることはありません。

役割はパスごとにローテーションされ、すべてのモデルがすべての役割をプレイします。パスp(0ベース)では、モデルmはreferences/roles.mdのroles[(m + p) % 4]を担当します。

各ターン

ターンプロンプトはファイルのみから構築し、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. ユーザーに1行の進行状況メモを表示します:Round 7/36 · skeptic · 2 MUST, 1 NICE · diff 14 lines。

モデルがエラーまたはタイムアウトした場合、round-NN.mdに記録し、そのターンをスキップして続行します。2つのモデルが連続して失敗した場合は、一時停止してユーザーに伝えます。

停止

ターンがMUST項目を発生させず、answer.mdの変更行数がnoChangeLines未満の場合、変更なしとカウントします。

次のいずれかの場合に早期停止します:

  • 4ターン連続(フルパス)で変更なしの場合、または
  • ターンが<promise>CONVERGED</promise>で終了し、次のターンがMUST項目なしで確認した場合。

未解決のMUST数がブロック全体で減少しなかった場合、停止し、短い「スタック」メモを書きます:何がブロックしているか、何を試したか、ユーザーが何を決定するとアンブロックできるか。

レポート

実行が終了したら、.assemble/<slug>/report.mdを書き込み、表示します:

  • 最終回答
  • 実行したラウンド数と停止理由
  • 各ブロックの主な変更点
  • 未解決のNICE項目
  • 使用したモデルとその失敗
  • 大まかなトークンとコストの見積もり(プロンプトと応答サイズの合計に、設定に価格があればそれを掛けた値)

モデルアダプタ

利用可能な最初のものを使用し、ユーザーにどのアダプタを選択したかを伝えます。

  1. ツール内サブエージェント。 ホストがサブエージェントを起動し、そのモデルを選択できる場合、ターンごとに1つ使用します。Cursorはベンダーを混在させることができます。Claude CodeとKiroはここではClaudeモデルのみを提供するため、4つは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.

関連スキル