mblanc/mb-skills

指示を具体的な目標、盲検比較可能な基準または指標、厳格な新鮮コンテキストの批評家、そして明確な境界からなるガントレットループプロンプトに変換します。

mb-skills とは?

このスキルは、ユーザーが提供した初期指示や目標を「ガントレットループ」と呼ばれる自律的なビルダー対批評家のフィードバックループに変換するためのものです。ガントレットループは、Matt Shumerの「Claude of Duty」や「AI Loop Engineering Three-Elements Framework」に基づいており、従来の一回限りのプロンプトに代わる持続的な改善サイクルを提供します。このループは、「目標(Objective)」、「基準/指標(Reference/Metric)」、「境界(Boundary)」の三要素で構成され、目標の具体化、盲検A/B比較による客観的な品質評価、そして反復停止条件や安全ゲートによる制御を実現します。Claude CodeやCodexなどのAIエージェントプラットフォームで使用可能であり、ワークスペースの検査、プロンプト生成、ループの自動実行をサポートします。開発者はこのスキルを使用することで、曖昧な表現による「AIにとって十分良い」という品質から脱却し、反復的な批評と改善を通じて高品質な成果物を効率的に生成できます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/mblanc/mb-skills/tree/HEAD/skills/productivity/gauntlet-loop

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

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

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

ドキュメント

ガントレットループ

ユーザーの初期指示や目標をガントレットループに変換します。これは、Matt ShumerのClaude of Dutyテクニック、robonuggets/gauntlet-loop、duolahypercho/gauntlet-loop、およびAI Loop Engineering Three-Elements Frameworkに基づいた、自律的なビルダー対批評家のフィードバックループです。

ほとんどのエージェントの出力は、「AIにとって十分良い」ところで止まってしまいます。なぜなら、ビルダーが自身の宿題を曖昧な言葉で評価するからです。ガントレットループは、一回限りのプロンプトを、三つのコア要素に基づいた持続的なサイクルに置き換えます。

  1. 目標 (Objective): 実現すべき具体的な成果物とアウトカム状態。
  2. 基準または指標 (Reference or Metric) (基準と厳格な批評家): 名前付きで、取得可能で、横並び比較可能なベンチマーク。該当する場合は客観的なテストや指標と組み合わせ、新鮮なコンテキストを持つ別の批評家によって盲検で判断されます。
  3. 境界 (Boundary): ループが停止またはエスカレーションするタイミングを制御する、明示的な成功基準、ラウンド/停滞上限、戦略転換ルール、および安全/許可ゲート。

ステップ1: シード指示とコンテキストを特定する

  1. ユーザーが/gauntlet-loop <指示>でインライン指示を渡した場合は、それをシードとして使用します。
  2. ユーザーが会話中に引数なしで/gauntlet-loopを呼び出した場合は、議論中の現在のタスク、計画、またはプロンプトを使用します。
  3. メッセージや会話履歴に明確なタスクがない場合は、先に進む前にユーザーに何を構築または達成したいかを尋ねます。
  4. タスクがローカルコードベースやワークスペースに関係する場合は、ディレクトリ構造、テクノロジースタック、テストランナー、ビルドスクリプトをすばやく検査し、提案するデフォルト値が実際のプロジェクトツールやコマンドを参照するようにします。

ステップ2: 3つのループ要素を明確にする (デフォルト値の提案)

ユーザーのリクエストを以下の3つのコア要素に対して監査します。要素が欠落している、指定が不十分である、または漠然とした品質基準を使用している場合は常に、具体的で意見の込められたデフォルト値を提案しながら、ユーザーに三要素の確認または調整を依頼します。

高速パスルール: ユーザーがすでに明確な目標、具体的で取得可能な基準/指標、そして明確な境界を提供している場合、または明示的に*「デフォルトを使用」* / 「プロンプトを書いて」 と言った場合は、質問をスキップし、最適なデフォルト値を使用してステップ3に直接進みます。

1. 目標 (どのような具体的なアウトカムが真になる必要があるか?)

  • 漠然とした意図 (「サイトを良くする」、「優れたCLIを書く」) を、観察可能なアウトカム状態と成果物 (「Next.js + TailwindでレスポンシブなSaaS料金ページを構築し、初めての訪問者がすべてのプランを比較し、モバイルでチェックアウトを完了できるようにする」) に置き換えます。
  • 提案されるデフォルト値: ユーザーが承認または調整できるように、精緻化された1~2文の目標(検出または推奨されたテクノロジースタック/フォーマットを含む)を作成します。

2. 基準または指標 (品質基準と外部評価者)

ガントレットループのすべては品質基準に依存します。有効な基準は3つのテストに合格する必要があります。

  • 名前付き: 特定の実世界の成果物であり、形容詞やカテゴリではない。(「Stripeのライブ価格ページ」 や 「Hadesの戦闘スクリーンショット」 は有効です。「受賞歴のあるSaaSデザイン」 や 「AAA品質」 だけでは無効です。)
  • 取得可能/検査可能: 批評家は実行中に実際にそれを取得して検査できます。ライブURLのスクリーンショット、公開された記事の読み取り、バイナリの実行、リポジトリの検査など。エージェントが参照をフェッチできない場合、比較を幻覚させ、平凡な作業を承認することになります。
  • 比較可能: 私たちの実際の出力と基準の両方を、ラベルを剥がして横並びに置き、新鮮な批評家が二値の盲検A/B選択 (「どちらが勝ちか?」) を行い、残っている最大のギャップを一つだけ挙げることができる必要があります。ラウンドごとに上昇する1~10の数値スコアは決して使用しないでください。

味覚+数値は、味覚だけに勝る: 目標に測定可能な次元(ユニット/統合テストスイート、p95レイテンシ、Lighthouse/アクセシビリティスコア、360pxでの水平オーバーフローゼロ、ベンチマークスループット、単語数、または一次情報源の引用トレース)がある場合は常に、定性的な基準とハードな客観的検証をペアにします。

目標タイプ有効な基準+指標
ウェブサイト、アプリ、UI特定のベストインクラス製品のライブURL(linear.app、stripe.com/pricing、vercel.com)をデスクトップ&モバイルビューポートでスクリーンショット + コンソール/アクセシビリティ/オーバーフローエラーゼロ
コード、CLI、ライブラリ名前付きのオープンソースリポジトリまたはツールの実装(ripgrep、jq、esbuild) + 自動テストスイート、プロパティファザー、レイテンシ/スループットベンチマークスクリプト
ゲーム、3D、インタラクティブ名前付きの出荷されたタイトル(Call of Duty、Hades、Brotato)からの実際のゲームプレイスクリーンショットまたは映像。ライブのゲーム内フレームと比較 + 目標FPS/プレイアビリティチェック
文章、ドキュメント、解説名前付きの著者または出版物(例:Julia Evans、Stripe Engineering Blog、Gwern)による2~3の特定の公開作品。著者名を剥がして盲検比較 + 目標の長さ/読了時間チェック
研究、戦略、分析名前付きのアナリストレポート、ベンチマーク論文の手法セクション、またはフォレンジックなショートセラーのメモ + すべての主張を生のソースデータに対して自動的に照合
スライドデッキ、成果物ベンチマーク企業からの特定の公開デッキまたはメモ。同じページ/スライド数 + ナラティブの明確さチェック
  • 提案されるデフォルト値: 2~3の具体的で名前付きの取得可能な候補基準(最も困難だが現実的に到達可能なものに(推奨)とマーク)と、具体的な客観的指標/検証を提供します。

3. 境界 (停止条件、予算、安全ゲート)

「完全に完璧になるまでループ」は批評家の動機付けになりますが、到達不可能な基準に対する無制限のループは、永遠に回り続け、トークンを消費し、安全でない変更を加える可能性があります。3つのサブ軸にわたって明示的な境界を定義します。

  • 成功と収束の停止: すべてのコンポーネントが客観的な検証に合格し、基準に対する盲検比較に勝利した場合(または人間が指定した「ブレーキ」が実行を停止した場合)に終了します。
  • 反復と停滞の上限: コンポーネントあたりのラウンド数を制限します(デフォルト: ピースあたり最大5ラウンド、または意味のある改善がない連続2ラウンド後に停止)。まったく同じギャップが2回連続で失敗した場合は、ビルダーが戦略を変更することを要求します。
  • 許可と安全ゲート: ローカルの読み取り、ドラフト、編集、ビルド、レンダリング、テストを許可します。明示的な人間の承認なしに、元に戻せないアクションや外部アクションを禁止します(本番環境へのデプロイ、破壊的な削除、有料APIの使用、認証情報/シークレットの変更、または外部メッセージの送信は禁止)。

ユーザーへの質問方法

明確化が必要な場合は、未解決の要素のみをカバーする、簡潔でスキャンしやすいプロンプトを提示します(可能であれば、ハーネスの構造化されたask_questionツールを使用します)。デフォルト値を事前に入力しておき、ユーザーが単一のショートハンド(例:「1、デフォルトを使用」)で返信できるようにします。

  1. 目標: 提案する精緻化された目標+スタックを述べ、何か変更すべきかを尋ねます。
  2. 基準と指標: 2~3の名前付きの取得可能な候補基準(A、B、C、A(推奨))と、提案する客観的検証/テストをリストします。
  3. 境界: デフォルトの停止条件(例:盲検A/Bに勝利+チェックに合格、ピースあたり最大5ラウンド、同一の失敗が2回続いたら戦略を転換、ローカル編集のみ)または 「人間がブレーキ(私が停止するまでループを続ける)」 を提案し、どちらのモードを好むかを尋ねます。

ステップ3: 変換されたガントレットループを出力する

目標、基準/指標、境界が選択(またはデフォルト化)されたら、結果を3つの部分で提示します。

1. ガントレットループデザインカード

ループアーキテクチャを確定する、簡潔なサマリーテーブルを出力します。

  • 目標: 真になる必要がある正確なアウトカムと成果物。
  • 基準(味覚): 名前付きの取得可能な成果物と、構築前にどのようにフェッチ/検査されるか。
  • 客観的指標(数値): 批評家レビューの前に必要な自動テスト、ベンチマーク、レイアウトチェック、または事実検証。
  • 分解ルール: 作業をどのように小さな、独立して判断可能なピースに分割するか(真に独立した部分のみを並列化し、密結合システムは一貫した順次所有権の下に置く)。
  • 批評家プロトコル: 新鮮なコンテキストを持つ別のサブエージェント。実際にレンダリング/実行された成果物を検査し(ビルダーのサマリーは決して見ない)、ラベルを剥がして盲検A/B比較を実行し、二値の選択を行い、残っている最大のギャップを一つ挙げます。
  • 状態と進捗: ループメモリを永続化するために使用されるファイル(GAUNTLET_PROGRESS.mdまたはライブ進捗ページ)。完了したパーツ、証拠、失敗したアプローチ、残りのギャップを記録し、コンテキストが劣化しないようにします。
  • 境界: アクティブな停止ルール、ラウンド上限、安全ゲート。

2. ガントレットループプロンプト

フェンスで囲まれたmarkdownブロック内に、自己完結型でコピー&ペースト可能なプロンプトを出力します。以下のユニバーサルガントレットループプロンプト(ユーザーのタスク、ツール、スタックに適応)を提供し、ユーザーが超コンパクトな3段落のMatt Shumerスタイルやハーネス固有のループコマンドを希望する場合は、それに応じて最後尾を適応します(参考資料/例.mdを参照)。

[成果物/目標]を[スタック/フォーマット]で構築してください。

## 1. 品質基準と指標(まずフェッチする)
品質基準は[名前付きの取得可能な基準]です。構築または判断する前に、実際の基準を直接フェッチして検査してください([フェッチ方法: デスクトップ&モバイルでライブURLをスクリーンショット/公開テキストを取得/リファレンス実装をクローンまたは実行])。決してメモリや説明文と比較しないでください。
すべてのピースは、以下の客観的チェックにも合格する必要があります: [客観的指標/テスト/ベンチマーク]。

## 2. 分解と所有権
作業を、単独で構築、検証、判断できる最小のピースに分割します: [初期候補ピース]。
- 真に独立しているピースに対してのみ、ビルダーサブエージェントを並行して展開します。
- 密結合システムは、コンポーネントが衝突しないように、順次的一貫した所有権の下に置きます。

## 3. ビルダー対厳格な批評家のループ
各ピースについて、ビルダーと別の批評家サブエージェント(ビルダーの思考連鎖や言い訳にアクセスできない新鮮なコンテキスト)を実行します:
1. **構築と検証**: ビルダーがピースを作成または修正し、客観的チェック([テスト/リント/ベンチマーク/レンダリング])を実行します。
2. **実際の成果物を検査**: 批評家が実際の出力([スクリーンショット/実行中のバイナリ/テストログ/ドラフトテキスト])を開いて検査します。ビルダーのサマリーは決して見ません。
3. **盲検A/B選択**: 批評家が私たちの成果物を[名前付き基準]とラベルを剥がして盲検で横並びにし、どちらが優れているかを二値で選択します。私たちの成果物が負けた場合、具体的な証拠とともに**残っている最大のギャップ**を一つ特定し、ビルダーに送り返します。
4. **ソフトな評価は禁止**: 批評家は容赦なく厳格でなければなりません。賞賛や1~10の数値スコアは禁止です。私たちの成果物が盲検比較に勝ち、すべての客観的チェックに合格しない限り、ループを続けます。

## 4. 状態追跡と戦略転換
各ラウンド後に、コンパクトな`GAUNTLET_PROGRESS.md`(および/またはライブ進捗ビュー)を維持し、以下を記録します: 現在のピース、ラウンド数、批評家の評決、対象となったギャップ、失敗したアプローチ、客観的チェックの結果。同じギャップが2回連続で失敗した場合は、現在のアプローチを放棄し、構造的に異なる戦略を試みます。

## 5. 最終統合パスと境界
- **統合批評家**: 個々のピースが勝利したら、1人の新鮮な統合批評家を生成し、完成したアセンブル済み成果物をエンドツーエンドで検査します。一貫性、継ぎ目、パフォーマンス、元の目標への適合性を確認します。
- **境界**: [停止条件: 例: すべてのピース+統合が盲検A/Bに勝利し、すべての客観的チェックに合格するまで、またはピースあたりNラウンド/測定可能なゲインがない連続2ラウンド]。許可されるアクション: [許可されるローカルアクション]。禁止アクション: [禁止アクション: 本番環境へのデプロイ、データの削除、金銭の消費、認証情報へのアクセス]は、明示的な人間の承認なしに行わないでください。
[ハーネスループテール: すべてのピースで批評家が私たちの成果物を選択するまでループを続け、ビルダーと批評家をサブエージェントとして実行します。 / またはClaude Codeの場合: 各ピースが勝利するまで`/loop`; サブエージェントと`ultracode`を展開します。 / またはCodexの場合: すべてのピースが勝利するまで`/goal`。]

3. 実行の提案

最後に次のように尋ねます。

「このガントレットループを今すぐ私が主任オーケストレーターとして実行しますか、それとも3つの要素(目標、基準/指標、境界)のいずれかを調整しますか、またはプロンプトスタイル(ユニバーサルバウンデッド vs. Claude /loop または Codex /goal 向けクラシック150ワードエイムプロンプト)を切り替えますか?」

ユーザーが実行を指示したら、生成されたプロンプトをアクティブな動作指示として即座に採用します。まず基準をフェッチし、GAUNTLET_PROGRESS.mdを初期化し、ピースを分解し、ラウンド1を開始します。


ガントレットループを壊すもの(ガードレール)

生成されたガントレットプロンプトに、以下の失敗モードを決して許可しないでください。

  • 曖昧またはフェッチ不可能な基準: 「ワールドクラスにする」 や、有料/到達不可能な成果物を指定すると、批評家は比較を幻覚させ、すべてをゴム印承認することを余儀なくされます。
  • ビルダーが自身の作業を判断すること: ビルダーは自分が行ったすべての妥協を記憶し、それらを正当化します。批評家は、新鮮なコンテキストを持つサブエージェント(またはビルダーの正当化を取り除いたクリーンな検証パス)でなければなりません。
  • 二値選択の代わりに1~10の数値スコアを使用すること: 10点満点のスコアはラウンドを経るごとに自動的に7/10から9/10に上昇します。二値の盲検A/B選択(「どちらが勝ちか?」)と残っている最大のギャップを要求します。
  • 成果物を検査せずに批評家がサマリーを読むこと: 華やかなマークダウンステータスレポートは証拠ではありません。批評家はレンダリングされたピクセルを検査し、バイナリ/テストを実行し、実際のテキストを読まなければなりません。
  • 密結合コードを並列化すること: 同じ状態ループや共有レンダリングパイプラインに10のサブエージェントを展開すると、マージの衝突や視覚的な継ぎ目が発生します。独立したピースのみを展開し、統合批評家に必須の順序付けを課します。

関連スキル