グリル(Grilling)
出自. Matt Pocock 氏が mattpocock/skills で執筆(MIT)、
49dd158に固定。 以下の原文は、UPSTREAM.md に記載された編集箇所以外はそのままです。末尾の Field notes が本家への追加部分です。
共有理解に達するまで、ユーザーに容赦なくインタビューを行います。これを 設計ツリー としてマッピングします。すべての決定は、そこからぶら下がる下位の決定に分岐します。
ツリーをラウンド単位で処理します。フロンティア とは、前提条件がすでに確定しているすべての決定、つまり、まだ聞いていない答えを推測せずに今質問できるもののことです。1ラウンドでフロンティア全体を質問します。各質問に番号を付け、推奨する回答を添えます。次のラウンドに進む前に、ユーザーの回答を待ちます。
ラウンドは次のようにフォーマットします。
❓ **Q1** - **<質問タイトル>**: <質問本文。複数段落になることがあり、複数の選択肢を含む>
➡️ <推奨回答>
---
❓ **Q2** - **<質問タイトル>**: <質問本文。複数段落になることがあり、複数の選択肢を含む>
➡️ <推奨回答>
各質問は、「はい」と答えると推奨回答が受け入れられるように文言を調整します。
ユーザーが回答するたびにツリーは変化します。確定した決定はフロンティアを外側に押し出し、それに依存していた質問のブロックを解除します。フロンティアを再計算し、次のラウンドに進みます。ある回答が同じラウンド内でまだ未解決の別の質問に依存する場合、その質問は後のラウンドに属し、このラウンドでは扱いません。
事実を見つける のはエージェントの仕事であり、ユーザーの仕事ではありません。フロンティアの質問を解決するために環境(ファイルシステム、ツールなど)から事実が必要な場合は、サブエージェントを派遣してそれを取得します。自分で調べられることをユーザーに尋ねてはいけません。これによってブロックしてはいけません。実行中の調査は未確定の前提条件であるため、その下流の質問だけがサブエージェントの報告を待ちます。残りのフロンティアは今質問します。決定 はユーザーの仕事です。各決定をユーザーに提示し、回答を待ちます。
フロンティアが空になった時点でセッションは完了です。設計ツリーのすべての分岐が訪れられ、暗黙の前提は残っていません。ユーザーが共有理解に達したことを確認するまで、行動に移してはいけません。
Field notes
根拠:グリルがロードされた実際のセッション26回(方法は docs/field-data.md 参照)。
- 決定ログを保持し、ユーザーが巻き戻せるようにする。 ユーザーが以前の回答を撤回したケースが3回あった(「決定を戻して、間違ったのを選んだ」)。各ラウンドの後、確定した決定の番号付きリストを表示する。撤回は、その決定より下流の分岐のみを再開する。
- 選択肢に文字を付ける。 ユーザーが16回の短い返信で、単一の文字または番号付きリストで回答した。すべての選択式質問にアルファベットの選択肢を付け、
Q2: bで完全な回答になるようにする。 - 自己グリルモード。 約19件のリクエストで、エージェント自身をグリルするよう依頼があった(「セキュリティについて自分でグリルミーティングを実行して」)。依頼された場合は、エージェントをインタビュイーとして同じ設計ツリーを実行する。収集した証拠から各事実質問を解決する。このモードでは、上記の待機と確認のルールは、ユーザーに一括して推奨回答付きで送信する嗜好の判断にのみ適用される。
principal-autopilotはコード実行前のステップ3でこのモードを実行する。