Imported from gen4438/dotfiles (
dot_claude/skills/agy-discuss/SKILL.md). Install upstream withnpx skills add gen4438/dotfiles --skill agy-discuss. Copyright stays with the author.
Agy Discuss — AI 壁打ち / 議論相手
agy(antigravity CLI、内部は Gemini 系)を独立した別系統の AI として呼び出し、こちらの考えに対する
第二の視点・反論・見落としの指摘を得るための skill。判断は最終的にこちら(Claude)とユーザーが下す。
agy は「答えを出す装置」ではなく「考えを鍛える壁打ち相手」として使う。
いつ使うか
- 設計・実装方針が 2 つ以上の選択肢に割れていて、トレードオフを言語化したい
- 自分の結論に 自信がない / 確証バイアスが怖いので、独立した視点で叩いてほしい
- レビューやリスク洗い出しで 観点の抜けを疑っている
- ユーザーから「agy と相談して」「壁打ちして」「セカンドオピニオン」と言われた
逆に、単純な事実調査や Web 検索は agy-search skill を、リサーチ・要約・下書き生成などの作業の委譲は
agy skill を使い、コード実装はこちらが直接行う。
🚨 絶対的なガードレール(最優先・例外なし)
agy は自律エージェントであり、ツールでファイル編集・削除・git コミットまで実行する。
壁打ち用途では agy に一切の行動をさせない。以下を厳守する。
- 必ず隔離した専用 cwd(
~/.cache/agy-sub。agy 系 skill 共通)から起動する。リポジトリ内で agy を起動しない。 これが最重要。理由は次の「なぜ隔離 cwd が必須か」を参照。 --continue/-c/--conversationを絶対に使わない。 直近の無関係なエージェント会話を再開し、agy が実作業(ファイル削除・コミット)を始める。実際に死蔵コードをgit rmしてコミットまでされた事故がある。マルチターンの文脈維持は こちら(Claude)がプロンプトに前回までの 要約を毎回埋め込むことで実現する(後述)。--dangerously-skip-permissionsを絶対に付けない。- プロンプトには必ず「助言・批評のみ。ファイル編集・コマンド実行・git 操作は一切するな。テキストで意見だけ返せ」 という制約を明記する。
- 呼び出し後は
git statusでリポジトリが汚れていないか確認する。汚れていたら勝手に revert せず、 他セッションの作業の可能性も考えてユーザーに報告・確認する([[agy-is-agentic-no-continue]])。 - agy の出力は一つの意見として扱う。鵜呑みにせず、こちらで妥当性を吟味してからユーザーに渡す。
なぜ隔離 cwd が必須か(実証済みの根本原因)
agy のセッション挙動を実機検証して判明した、リポジトリ内起動が危険な2つの理由:
- 会話は起動時の cwd で紐付く(
~/.gemini/antigravity-cli/cache/last_conversations.jsonがcwd → 会話IDを保持)。-c/--continueはこのマッピング経由で、同じ cwd を使う別セッション(worktree 並行・裏で動く agy 等)の会話を再開してしまい、相手のエージェント作業に巻き込まれる (--print単発は毎回新規会話になる。v1.1.26 で検証済み)。 - es-opt は agy の
trustedWorkspacesに入っており(~/.gemini/antigravity-cli/settings.json、toolPermission: proceed-in-sandbox)、リポジトリ内ではツール操作(ファイル書き込み含む)が無確認で 自動承認される。実際に壁打ちのつもりの呼び出しがvalidator.pyを書き換えた事故がある。
→ 専用の空ディレクトリ(trusted 外)から起動すれば、会話が分離され(合流しない)/sandbox 内に隔離され
(リポジトリに書けない)。実機でも主リポジトリ git status がクリーンのままであることを確認済み。
なお隔離 cwd から --add-dir でリポジトリを読ませても agy は確実には読めず(ワークスペース未設定扱い・
ハルシネーション)役に立たない。文脈はプロンプトに貼るのが唯一確実な方法(次節)。
基本の使い方(単発の壁打ち)
必ず ~/.cache/agy-sub に cd してから agy --print を実行する。文脈は毎回プロンプト内に全部書く。
mkdir -p ~/.cache/agy-sub && cd ~/.cache/agy-sub # ← 隔離 cwd。リポジトリ内では実行しない
agy --print "あなたは私の設計レビュー相手(壁打ち役)です。助言とテキストでの意見のみを返してください。\
ファイル編集・コマンド実行・git 操作・ワークスペース調査は一切しないでください。
# 背景
(ここに前提・制約を簡潔に)
# 検討中の選択肢
- 案A: ...
- 案B: ...
# 私の現時点の結論と理由
(自分の考えを正直に書く。確証バイアスを叩いてもらうため)
# あなたへの依頼
1. 私の結論の弱点・見落とし・反論を挙げてください
2. 私が検討していない第3の選択肢があれば提示してください
3. 最後に、あなたなら何を選ぶかを一言で
"
ポイント:
- 自分の結論を必ず書く。 白紙で丸投げせず、叩き台を出して反論を引き出すのが壁打ちの本質。
- 時間がかかる議題は
--print-timeout 10m等で延長(既定 5m)。 - agy 呼び出しは Bash の
run_in_background: trueで投げ、完了通知で結果を読むと待ち時間を有効活用できる。 ただしagy --printは応答を出力した後もプロセスが終了しないことがあるため、timeout 120 agy --print …で囲うか、出力ファイルに応答が出たらTaskStopで止める。pgrep -f "agy"を待機条件にしない(誤判定で無限ループ)。
コンテキストの与え方(壁打ちの成否を決める・最重要)
隔離 cwd から起動するため agy はリポジトリ・過去会話・現在のタスク状況を一切知らない「全盲」の相手
(--add-dir で読ませても確実には読めない=前節)。判断に必要な材料は すべて私(Claude)がプロンプトに書き写すしかない。
文脈が薄ければ、返ってくるのは一般論だけ(実際、前提なしで投げると「環境変数 vs YAML の教科書的回答」しか出ない)。
garbage in, garbage out を肝に銘じ、投げる前に「これだけ読めば第三者が判断できるか」を自問する。
最低限あるべき文脈(議題に応じて取捨選択):
- 目的・制約 — 何を達成したいか、譲れない条件(性能・互換・期日・運用形態など)
- 現状/前提 — 関連する既存設計・データモデル・技術スタックの該当部分(このリポジトリ前提を明文化する)
- 関連コード・数値・エラー — 該当箇所をそのまま引用して貼る(リンクや「○○参照」は agy には届かない)
- 検討した選択肢と、それぞれの既知のトレードオフ
- 自分の現時点の結論と理由(叩いてもらう叩き台)
- 試して駄目だった案・却下した理由(同じ提案の出戻りを防ぐ)
- 判断基準 — 何を優先して選ぶのか(速度優先か保守性優先か等)
量の目安: 自己完結しているか > 短さ。ただし無関係な情報で薄めない(焦点がぼける)。 機密・秘匿情報(鍵・トークン・個人情報・公開不可のコード)は貼らない。貼れない情報は抽象化して伝える。
マルチターンの議論(文脈を続けたいとき)
--continue は禁止。代わりに、こちら(Claude)が会話履歴を要約してプロンプトに埋め込む。
これも必ず隔離 cwd から実行する。
cd ~/.cache/agy-sub
agy --print "(壁打ち継続。助言とテキストのみ。ファイル/コマンド/git 操作は禁止)
# これまでの議論の要約
- 私: 案Aで迷っている → あなた: ネットワーク一貫性が論点と指摘
- 私: 単一サーバー構成なので一貫性は不要と判断
# 今回の問い
その前提なら案A(メモリ内)で確定して問題ないか、残るリスクだけ挙げて。
"
こうすれば agy は毎回まっさらな単発応答になり、暴走のリスクがない。
議論の進め方(推奨フロー)
- 論点を整理してから投げる。曖昧な丸投げは曖昧な答えしか返らない。
- 自分の仮説を明示し、それを叩いてもらう(confirmation bias 対策)。
- agy の反論をこちらで吟味し、的を射た指摘だけ採用、見当外れは棄却する。
- 必要なら要約を更新して 2〜3 往復繰り返す。
- 最終的な判断と根拠をこちらの言葉でユーザーに提示する。「agy がこう言った」で終わらせない。
- 重要な議題なら、agy の視点とこちらの判断の差分も併せてユーザーに共有する。
チェックリスト(毎回)
- 隔離 cwd(
~/.cache/agy-sub)に cd してから起動した(リポジトリ内で起動していない) -
--continue/-c/--conversation/--dangerously-skip-permissionsを使っていない - プロンプトに「行動禁止・意見のみ」の制約を書いた
- agy は全盲の前提で、判断に必要な文脈(目的・制約・関連コード/数値・選択肢・既知のトレードオフ)を自己完結する形で貼った
- 機密・秘匿情報を貼っていない
- 自分の結論・仮説を提示して反論を求めた
- 呼び出し後に
git statusでリポジトリの汚染を確認した - agy の意見を鵜呑みにせず吟味し、自分の言葉でユーザーに渡した