Communitygithub.com

adamjali/explain — 詳細な説明エージェント

GitHubリポジトリ、Web製品、競合、データプロダクト、アルゴリズム、概念など、あらゆるトピックを徹底的に掘り下げて説明します。並列調査と探索エージェントを起動し、実際のブラウザを駆動してライブプロダクトを分析、計算機をリバースエンジニアリングして検証済みコードに変換し、ドキュメント一式を保存します。

explain — 詳細な説明エージェント とは?

このスキルは、あらゆるトピックを深く理解するためのAIエージェントです。GitHubリポジトリの解析、概念の説明、ドキュメントの調査といった比較的軽量なタスク(モードA)では、並列エージェントによる調査とコードベース探索を実行します。一方、競合製品の分析やWebサービスのリバースエンジニアリング、計算機の解読といった重厚なタスク(モードB)では、ワークフローツールと実際のブラウザ(Claude-in-Chrome)を駆使し、複数の調査フェーズを経て検証済みの再現可能なコードを生成します。これはClaude Code、Cursor、CodexなどのAIエージェントプラットフォームで動作し、ユーザーが「説明して」「深堀りして」「リバースエンジニアリングして」と依頼した場合に自動的に最適なモードを選択します。成果物は会話内に表示されるだけでなく、`~/.claude/explanations/`ディレクトリに詳細なドキュメント一式として保存され、後で参照できます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/adamjali/claude-skills/tree/HEAD/plugins/explain

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

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

ドキュメント

このスキルの仕組み

2つのモードがあり、サブジェクト(下記ルーティング表)に基づいて自動的にルーティングされます。

  • モードA — リポジトリ/概念/ドキュメント(低コストパス): 調査 → クローン(リポジトリの場合) → 探索 → 統合 → 出力。緩やかな並列エージェントで十分です。
  • モードB — ライブWeb製品/競合/データプロダクト/アルゴリズム/ランドスケープ(本格パス): スカウト → 確認 → ワークフローで調整された徹底調査 → 実ブラウザでキャプチャ → 検証済みコードへのリバースエンジニアリング → 統合。@references/competitor-teardown.mdを読み、それに従ってください。

サブジェクトタイプ別ルーティング

サブジェクトシグナルモード主な処理
GitHubリポジトリgithub.comAクローン + 探索エージェント
概念/技術URLなしAリサーチエージェント
ドキュメント/静的サイトURL、情報目的Aリサーチ + WebFetch
ライブ製品/アプリ/SaaS/競合URLが製品; 「競合/分解/比較/どうやってるか」Bブラウザ + ワークフロー + サブジェクト別スキーマ
計算機/見積もり/予測/価格/ランキング解読すべき計算式/アルゴリズムBライブプローブグリッド → 実行可能なリファレンス実装 → 検証
ランドスケープ全体「他のもの全部見つけて」B名前空間発見 → 対象を分解

判定基準: URLが製品でありドキュメントも存在する場合は、デフォルトでBとします。スカウトパスは低コストであり、分解すべきものがなければAにダウングレードします。

実行ルール

  1. 適切なツールを規模に応じて: モードA = 並列Task/Agent呼び出し。モードB = ワークフローツール(パイプライン、構造化出力スキーマ、再開)を、サブジェクトが3つ以上、またはマルチフェーズ作業の場合に使用します。
  2. 事前確認してから本番: モードBは低コストなスカウトパス + 確認ゲート(スコープ + 調査範囲 + ブラウザ)を、ユーザーがすでに「本格的に/深掘りして/全部」と言っていない限り、高コストな調査の前に実行します。
  3. 計算機/アルゴリズムは実行可能で検証済みのコードにリバースエンジニアリングし、競合の主張ではなく信頼できる正解とベンチマークします。
  4. ビジュアル重視: 主要な概念ごとに図や表を作成します。
  5. 二重出力: 会話内にエグゼクティブサマリーとファイル一覧を表示し、完全なドキュメント一式を~/.claude/explanations/<日付>_<スラッグ>/に保存します。
  6. 耐障害性: 重いモードBの調査はバックグラウンドワークフローとして実行。アーティファクトをインクリメンタルに永続化し、中断時に再開(resumeFromRunId)します。
  7. クリーンアップ: 完了時にクローンしたリポジトリや保存ファイルを削除するか確認します。

モードBの調査範囲(重要 — ライブプローブ前に必読)

競合調査は公開サーフェス上で合法的かつ通常の行為です。完全なルールは@references/competitor-teardown.mdにあります。不変条件は以下の通りです。

  • 許可: 公開ページ/アセット、公開OpenAPI//docs、公開JSバンドル、公開エンドポイントへの適度なポライトグリッド(約15〜40リクエスト、低レート)で数式を導出、ヘッダーフィンガープリント、WHOIS/DNS。
  • 禁止: CAPTCHA/ボット対策の突破、認証の迂回、データセットの一括収集(サンプルのみ許可)、負荷テスト、管理/変更/破壊的エンドポイントの呼び出し(ドキュメントには記載しても呼び出さない)。露出を観察し、決して悪用しない。ユーザーの実際のデータを競合のフォームに送信しない。不明な場合は実行せず、その理由を説明する。

インテークゲート

コンテキストなしハンドラ

$ARGUMENTS が空の場合: → AskUserQuestion を使用:

  • header: "説明"
  • question: "何を説明しましょうか?"
  • options:
    • "GitHubリポジトリ" - GitHubからコードベースを分析
    • "Webサイトまたはドキュメント" - Webサイト、ドキュメント、APIを理解
    • "競合 / ライブ製品 / ランドスケープ" - ライブ製品を分解、計算機をリバースエンジニアリング、競合スペース全体をマッピング(モードB)
    • "概念またはテクノロジー" - 概念、フレームワーク、ツールを説明

その後、context_analysis(コンテキスト分析)に進みます。

コンテキスト分析

$ARGUMENTS を分析して以下を抽出:

  • タイプ: GitHubリポジトリ、Webサイト、概念、その他
  • URL/トピック: 説明する具体的な対象
  • 暗黙の目標: 使い方を学ぶ?評価する?アーキテクチャを理解する?コントリビュートする?

タイプを自動検出:

  • github.comを含む → GitHubリポジトリ(モードA)
  • モードBのシグナル → 「競合」、「分解」、「リバースエンジニアリング」、「vs 私たち」、「どうやってるか」、「他を全て見つける」、または製品/アプリ/計算機であるURL → モードB
  • httpを含む(情報/ドキュメント用) → Webサイト(モードA)
  • それ以外 → 概念(モードA)

初期質問

AskUserQuestionを使用して、真に不明な点のみを質問(最大2〜3問):

目標(不明な場合):

  • "目標は何ですか?" 以下のオプション:
    • "仕組みを理解する" - アーキテクチャ、フロー、実装
    • "採用を評価する" - 長所/短所、代替案、自分のユースケースへの適合性
    • "使い方を学ぶ" - セットアップ、API、はじめ方
    • "コントリビュート方法を学ぶ" - コードベース構造、開発ワークフロー

焦点(広いトピックの場合):

  • "特定の焦点はありますか?" 以下のオプション:
    • "すべて" - 完全な包括的分析
    • "アーキテクチャのみ" - 高レベルの構造とパターン
    • "特定の機能" - 特定の側面(指定)

背景(役立つ場合):

  • "あなたの技術レベルは?" 以下のオプション:
    • "非技術者" - 基本原則からアナロジーを用いて説明
    • "技術者だがこの分野は初めて" - 基礎は省略、詳細に焦点
    • "専門家" - 深い技術的知識を仮定

判定ゲート

回答後、AskUserQuestionを使用(モードA):

  • question: "深掘りを開始してもよろしいですか?"
  • options:
    • "はい、実行" - マルチフェーズ分析を開始
    • "まず質問がある" - 確認したいことがある
    • "コンテキストを追加したい" - 詳細を追加したい

モードBはこのゲートをB2(スナップショット+スコープ+調査範囲+実行/深さ/ブラウザ)で上書きします — 両方を尋ねないでください。B2が分解のための唯一の権威あるゲートです。

プロセス

モード選択

<インテークゲート>を実行し、次にサブジェクトタイプテーブルでルーティングします。モードB(ライブ製品/競合/データプロダクト/計算機/ランドスケープ) → @references/competitor-teardown.mdを読み込み、そのスカウト→確認→深掘り→統合フロー(以下は骨子)に従います。モードA(リポジトリ/概念/ドキュメント) → フェーズ1〜7を実行。

モードB — ライブ製品/競合/データプロダクトの分解

完全なプレイブックは references/competitor-teardown.md にあります。骨子:

  • B0 事前確認: メモリと ~/.claude/explanations/ に過去の分析がないか確認。拡張し、やり直さない。
  • B1 スカウト: ターゲットごとに1つの軽量パッシブリコンエージェント(WebFetch + ヘッダー + WebSearch) → 根拠のあるスナップショット + ブラウザが必要なものを特定。
  • B2 確認ゲート: スナップショット + スコープ + 調査範囲(<調査範囲>)を提示。AskUserQuestionで実行/深さ/ブラウザを確認 — ユーザーがすでに「深掘り/本格的に」と言った場合のみスキップ。
  • B3 深層調査(ワークフロー): サブジェクトごとに1つの構造化エージェント、すべてがサブジェクト別スキーマ(リファレンス内)を共有。デフォルトでpipeline()を使用。大きな出力はディスクに分割。
  • B4 ブラウザ(Claude-in-Chrome): ロード時ネットワークをキャプチャ、SPAをレンダリング、入力グリッド全体で推定機をライブプローブ、セキュリティヘッダー、ペイウォール/認証コピー — 範囲内で(CAPTCHA/認証バイパス、変更エンドポイント、ユーザーデータ送信なし)。キャプチャはその都度永続化。
  • B5 リバースエンジニアリング: すべての計算機 → 実行可能なTypeScriptリファレンス実装 → ライブグリッドに対して検証 → 信頼できる正解とベンチマーク。
  • B6 名前空間(「他に何か?」の場合): DNS+curl+検索で候補ドメイン、分類、運営者クラスターの発見、防御的購入ドメインのフラグ、真に異なるYESセットのみを分解。
  • B7 統合: ファンアウト統合エージェント → DETAILED-<スラッグ>.md ×N + ESTIMATORS.md + COMPARISON.md(データ整合性+運営者クラスターセクションを含む) + REPLICATION-BLUEPRINT.md + ARCHITECTURE.md + NAMESPACE.md + SOURCES-*.md + SUMMARY.md(エグゼクティブサマリー+ファイル一覧)。その後、フェーズ7の出力/クリーンアップ。

モードA — リポジトリ/概念/ドキュメント

フェーズ1: 並列Web調査(5つのリサーチエージェント)

すべてを1メッセージで起動:

Task(subagent_type="general-purpose", prompt="[トピック]を調査: それは何か?誰が作ったか?いつ?なぜ?")
Task(subagent_type="general-purpose", prompt="[トピック]を調査: 技術スタック、アーキテクチャ、主要技術")
Task(subagent_type="general-purpose", prompt="[トピック]を調査: 記事、レビュー、コミュニティ議論、意見")
Task(subagent_type="general-purpose", prompt="[トピック]を調査: 代替案、比較、使用すべき時と避けるべき時")
Task(subagent_type="general-purpose", prompt="[トピック]を調査: ドキュメント、チュートリアル、はじめ方ガイド")

フェーズ2: リポジトリのクローン(GitHubの場合)

REPO_DIR=~/.claude/explanations/$(date +%Y%m%d_%H%M%S)_$(basename [URL] .git)
git clone [URL] $REPO_DIR
cd $REPO_DIR

フェーズ3: 並列コードベース探索(6つの探索エージェント)

すべてを1メッセージで thoroughness="very thorough" で起動:

Task(subagent_type="Explore", prompt="アーキテクチャ: 全体構造、モジュール、それらの関係")
Task(subagent_type="Explore", prompt="エントリーポイント: メインファイル、CLI、APIエンドポイント、起動方法")
Task(subagent_type="Explore", prompt="コアロジック: 主要アルゴリズム、パターン、抽象化")
Task(subagent_type="Explore", prompt="設定: 設定、環境、拡張ポイント")
Task(subagent_type="Explore", prompt="依存関係: 主要パッケージ、統合、外部サービス")
Task(subagent_type="Explore", prompt="テストと品質: テストパターン、カバレッジ、CI/CD")

フェーズ4: 並列Claude Codeコンテキスト(2〜3の汎用エージェント)

Claude/AI/エージェントに関連する場合:

Task(subagent_type="general-purpose", prompt="これを理解するための関連Claude Codeの概念を説明")
Task(subagent_type="general-purpose", prompt="該当する場合、Claudeツール/SDKと比較")

フェーズ5: 中間チェック(複雑な場合)

調査結果が複雑さを明らかにした場合、AskUserQuestionを使用:

  • 「[X]を見つけました。特定の点に焦点を当てましょうか?」
  • 発見に基づくオプション

フェーズ6: 統合

すべての調査結果を統合した包括的な説明を作成。構成:

  1. 導入アナロジー(非技術的な比較)
  2. 概要(1〜2文)
  3. アーキテクチャ図(ASCII)
  4. 仕組み(ステップバイステップ + 図)
  5. 主要コンポーネント表(名前、目的、動作)
  6. 特別な点(差別化要因)
  7. 機能一覧(できること)
  8. 比較表(代替案との比較)
  9. 技術詳細(実装詳細)
  10. 注意点と考慮事項

フェーズ7: 出力

会話内に表示

すべてのビジュアルを含むフォーマット済み説明全体。

ファイルに保存

OUTPUT_DIR=~/.claude/explanations/$(date +%Y%m%d_%H%M%S)_[トピック-スラッグ]
mkdir -p $OUTPUT_DIR

# 保存ファイル:
# $OUTPUT_DIR/SUMMARY.md - クイックリファレンス(30秒版)
# $OUTPUT_DIR/DETAILED.md - 完全分析
# $OUTPUT_DIR/ARCHITECTURE.md - すべての図
# $OUTPUT_DIR/COMPARISON.md - 代替案分析

フォローアップ

表示後、質問する:

  • 「もっと深く探りたい側面はありますか?」
  • 「説明について質問はありますか?」
  • フォローアップを促す

クリーンアップ

AskUserQuestionを使用してクリーンアップ(両方該当する場合は統合):

リポジトリをクローンした場合:

  • question: "クローンしたリポジトリを削除しますか?"
  • options:
    • "はい、削除する" - $REPO_DIR を自動削除
    • "いいえ、保持する" - パスを表示: "リポジトリは以下に保持: $REPO_DIR"

「はい」の場合: rm -rf $REPO_DIR 「いいえ」の場合: 手動アクセス用にパスを表示

常に(説明ファイル):

  • question: "保存した説明ファイルを削除しますか?"
  • options:
    • "はい、削除する" - $OUTPUT_DIR を自動削除
    • "いいえ、保持する" - パスを表示: "説明ファイルは以下に保存: $OUTPUT_DIR"

「はい」の場合: rm -rf $OUTPUT_DIR 「いいえ」の場合: 手動アクセス用にパスを表示

結合質問(リポジトリとファイルの両方がある場合):

  • question: "分析が完了しました。何をクリーンアップしますか?"
  • options:
    • "リポジトリと説明ファイルの両方を削除"
    • "リポジトリのみ削除、説明ファイルは保持"
    • "説明ファイルのみ削除、リポジトリは保持"
    • "すべて保持"

選択に基づいて削除を実行し、保持したもののパスを表示。

標準図フォーマット

アーキテクチャ:

┌─────────────┐     ┌─────────────┐
│  コンポーネント  │────►│  コンポーネント  │
└─────────────┘     └─────────────┘

フロー:

開始 → ステップ1 → ステップ2 → 判定?
                            ├─ Yes → パスA
                            └─ No  → パスB

比較表:

| 側面       | オプションA | オプションB | 勝者 |
|------------|------------|------------|------|
| 速度       | 速い       | 遅い       | A    |

コンポーネント分解:

┌──────────────────────────────────────┐
│           システム名                 │
├──────────────────────────────────────┤
│ ┌────────┐ ┌────────┐ ┌────────┐    │
│ │モジュールA│ │モジュールB│ │モジュールC│    │
│ └───┬────┘ └───┬────┘ └───┬────┘    │
│     └──────────┴──────────┘         │
│             共有レイヤー             │
└──────────────────────────────────────┘

成功基準

両モード共通:

  • 開始前に明確化の質問/事前確認を実施。正しいモードにルーティングされた。
  • 主要な概念ごとにビジュアル図を生成。再現可能な技術的深さを含んだ。
  • エグゼクティブサマリーを会話内に表示し、ドキュメントセットをファイルに保存した。
  • フォローアップ + クリーンアップを提案し、ユーザーの保持/削除の選択を尊重した。

モードB(ライブ製品/競合/データプロダクト/ランドスケープ)の追加:

  • スカウトパス + 確認ゲートを実施(または明示的な「深掘り」を尊重)し、調査範囲を明示した。
  • 範囲内に厳密に留まり、CAPTCHA/認証バイパス、一括収集、変更/管理エンドポイントの呼び出し、ユーザーデータの送信を行わなかった。露出を観察し、悪用しなかった。
  • サブジェクトが3つ以上またはマルチフェーズの場合、共有サブジェクト別スキーマを持つワークフローツールを使用。アーティファクトを永続化し、中断に耐性(再開可能)を持たせた。
  • すべての計算機をライブプローブし、観測された出力に対してN/N検証された実行可能なリファレンス実装を、信頼できる正解とベンチマークして提供した。
  • ランドスケープの場合: 完全な名前空間を発見、各々を分類、運営者クラスターを見つけ、防御的購入ドメインをフラグ、真に異なるものだけを分解した。
  • 統合にはデータ整合性セクション、運営者クラスター分析、複製設計図を含んだ。

Individual skills in this repo

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

関連スキル