mcpField
R
res-deep

res-deep

github.com/molechowski生産性35 回インストール
リポジトリ

res-deep について

res-deepは、ウェブやソーシャル、開発者向け、金融メディアを複数ラウンドで調査するリサーチスキルです。比較、全体像、詳細調査、意思決定の形式で結果を整理し、xAI検索を使うモードとウェブのみのモードに対応します。

主な機能

  1. 01多様なソースを複数ラウンドで検索
  2. 02情報の不足を分析して追加調査
  3. 03詳細モードで主張を検証
  4. 04複数ソースの結果を統合・重複排除
  5. 05構造化された形式で調査結果を整理

活用シーン

  1. 01製品やアプローチの比較
  2. 02市場やエコシステムの把握
  3. 03トピックの詳細な調査
  4. 04選択肢の評価と意思決定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/molechowski/claude-skills --skill res-deep

インストール後、Claude Code で/res-deepを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
iterative-research.md
output-frameworks.md
search-patterns.md
scripts/
xai_search.py

詳細

ディープリサーチ

Web、Reddit、X/Twitter、GitHub、Hacker News、Substack、金融メディア、LinkedIn などを対象とした反復型の複数ラウンドリサーチ。比較、全体像、詳細分析、意思決定の構造化フレームワークを使って出力します。

アーキテクチャ

ソースツールコスト
WebClaude Code WebSearch + xAI web_search無料 + $0.005/回
RedditClaude Code WebSearch (site:reddit.com) + xAI web_search無料 + $0.005/回
X/TwitterxAI x_search のみ$0.005/回
GitHubClaude Code WebSearch (site:github.com) + xAI web_search無料 + $0.005/回
Hacker NewsClaude Code WebSearch (site:news.ycombinator.com) + xAI web_search無料 + $0.005/回
SubstackClaude Code WebSearch (site:substack.com) + xAI web_search無料 + $0.005/回
金融メディアClaude Code WebSearch (サイト指定) + xAI web_search無料 + $0.005/回
Wall Street OasisClaude Code WebSearch (site:wallstreetoasis.com)無料
LinkedInClaude Code WebSearch (site:linkedin.com) + xAI web_search無料 + $0.005/回
CrunchbaseClaude Code WebSearch (site:crunchbase.com)無料
YouTubeClaude Code WebSearch (site:youtube.com)無料
テックブログClaude Code WebSearch (サイト指定)無料

複数のソースから得た結果を統合し、重複を排除して包括的に情報を網羅します。

前提条件

必須ツール
ツール用途インストール
uvPython パッケージマネージャー(依存関係を管理)curl -LsSf https://astral.sh/uv/install.sh | sh
任意ツール
ツール用途インストール
scraplingWebFetch をブロックするサイト(403、CAPTCHA、空の応答)向けのヘッドレスブラウザの代替手段uv tool install 'scrapling[all]'
API キー
サービス用途必須キーの取得先
xAIX/Twitter 検索 + Web/GitHub/HN の補足検索推奨https://console.x.ai

注: xAI キーがなくてもスキルは動作します(Claude Code による Web 専用モード)。ただし、X/Twitter のデータや、より広範な情報収集には xAI が必要です。

キーチェーンの設定(xAI 向け、初回のみ)
# 1. Create a dedicated keychain
security create-keychain -p 'YourPassword' ~/Library/Keychains/claude-keys.keychain-db

# 2. Add keychain to search list
security list-keychains -s ~/Library/Keychains/claude-keys.keychain-db ~/Library/Keychains/login.keychain-db /Library/Keychains/System.keychain

# 3. Store your xAI API key
echo -n "Enter xAI API key: " && read -s key && security add-generic-password -s "xai-api" -a "$USER" -w "$key" ~/Library/Keychains/claude-keys.keychain-db && unset key && echo

使用前に実行します: security unlock-keychain ~/Library/Keychains/claude-keys.keychain-db

ワークフローの概要

ステップ操作目的
0xAI キーを検出フルモードと Web 専用モードを判定
1クエリを解析TOPIC、FRAMEWORK、DEPTH を抽出
2第 1 ラウンド:広範な検索エンティティ、テーマ、初期の調査結果を見つける
3ギャップ分析不足している視点や未検証の主張を特定
4第 2 ラウンド:対象を絞った追加調査ギャップを埋め、主張を検証し、網羅性を高める
5第 3 ラウンド:検証(詳細モードのみ)一次情報源を検証
6統合フレームワークのテンプレートに沿って調査結果を整理
7エキスパートモードキャッシュ済みの結果に基づいて追加質問に回答

ステップ 0:xAI キーの検出

必須 — 各リサーチセッションの開始前に実行してください。

security find-generic-password -s "xai-api" -w ~/Library/Keychains/claude-keys.keychain-db 2>/dev/null && echo "XAI_AVAILABLE=true" || echo "XAI_AVAILABLE=false"
  • XAI_AVAILABLE=true:フルモードを使用します — Claude WebSearch と xAI スクリプトを並行して実行します。
  • XAI_AVAILABLE=false:Web 専用モードを使用します — Claude WebSearch のみを実行します。xAI の設定を勧める注記を追加します。

このステップは省略できません。リサーチを始める前に必ず確認してください。

ステップ 1:クエリの解析

ユーザー入力から次の情報を抽出します。

1a. TOPIC

調査対象となるテーマです。フレームワークを示す表現と深度を指定する修飾語を取り除きます。

1b. フレームワーク

クエリのパターンから出力フレームワークを検出します。

フレームワーク検出パターン例
COMPARISON「X vs Y」、「X と Y を比較」、「X か Y」、「どちらがよいか」「エンタープライズアプリには React と Vue のどちらがよいか」
LANDSCAPE「landscape」、「エコシステム」、「市場」、「どんな選択肢があるか」、「概要」「AI エージェントフレームワークの全体像」
DEEP_DIVE「深掘り」、「X はどのように機能するか」、「説明して」、「X について教えて」、「X とは」「WebAssembly を深掘りする」
DECISION「〜すべきか」、「評価する」、「どれを使うべきか」、「推奨」「Kafka と RabbitMQ のどちらを使うべきか?」

明示的な上書き:クエリ内の任意の場所に [comparison]、[landscape]、[deep-dive]、または [decision] を指定すると、ユーザーがフレームワークを強制できます。

デフォルト:フレームワークが検出されない場合は、DEEP_DIVE を使用します。

1c. 深さ
深さトリガーラウンド数目標ソース数
quick「quick」、「brief」、「overview」110-15
default(なし)225-40
deep「deep」、「comprehensive」、「thorough」360-90

Step 2: ラウンド 1 — 幅広い検索

クエリの生成

トピックのさまざまな側面を網羅するクエリを 6~9 個生成します。

  1. 直接クエリ:"{TOPIC}" — 指定されたトピック
  2. 時期を指定したクエリ:"{TOPIC} 2026" または "{TOPIC} latest"
  3. Reddit クエリ:site:reddit.com "{TOPIC}"
  4. GitHub クエリ:site:github.com "{TOPIC}"
  5. HN クエリ:site:news.ycombinator.com "{TOPIC}"
  6. フレームワーク固有のクエリ:
    • COMPARISON:"{Alt A} vs {Alt B}"
    • LANDSCAPE:"{TOPIC} ecosystem" OR "{TOPIC} landscape"
    • DEEP_DIVE:"how {TOPIC} works" OR "{TOPIC} explained"
    • DECISION:"{TOPIC}" experience OR recommendation
  7. Substack クエリ:site:substack.com "{TOPIC}"
  8. 金融メディアのクエリ:site:tradingview.com OR site:benzinga.com OR site:seekingalpha.com "{TOPIC}"(金融・経済のトピックの場合)
  9. LinkedIn クエリ:site:linkedin.com "{TOPIC}"(トピックに人物や企業が関わる場合)
並列実行

検索を同時に実行します。

Claude Code(無料):

  • WebSearch:直接クエリ
  • WebSearch:時期を指定したクエリ
  • WebSearch:Reddit を対象としたクエリ
  • WebSearch:GitHub を対象としたクエリ
  • WebSearch:HN を対象としたクエリ
  • WebSearch:Substack を対象としたクエリ
  • WebSearch:金融メディアを対象としたクエリ(金融・経済のトピックの場合)
  • WebSearch:LinkedIn を対象としたクエリ(トピックに人物や企業が関わる場合)
  • WebSearch:YouTube を対象としたクエリ
  • WebSearch:WSO を対象としたクエリ(金融のトピックの場合)
  • WebSearch:Crunchbase を対象としたクエリ(企業・スタートアップのトピックの場合)

xAI スクリプト(利用可能な場合は、バックグラウンドの Bash タスクとして実行):

uv run scripts/xai_search.py web "{TOPIC}" --json &
uv run scripts/xai_search.py reddit "{TOPIC}" --json &
uv run scripts/xai_search.py x "{TOPIC}" --json &
uv run scripts/xai_search.py github "{TOPIC}" --json &
uv run scripts/xai_search.py hn "{TOPIC}" --json &
uv run scripts/xai_search.py substack "{TOPIC}" --json &
uv run scripts/xai_search.py finance "{TOPIC}" --json &
uv run scripts/xai_search.py linkedin "{TOPIC}" --json &
統合と重複排除
MERGED_WEB = dedupe(claude_web + xai_web)
MERGED_REDDIT = dedupe(claude_reddit + xai_reddit)
MERGED_GITHUB = dedupe(claude_github + xai_github)
MERGED_HN = dedupe(claude_hn + xai_hn)
MERGED_SUBSTACK = dedupe(claude_substack + xai_substack)
MERGED_FINANCE = dedupe(claude_finance + xai_finance)
MERGED_LINKEDIN = dedupe(claude_linkedin + xai_linkedin)
X_RESULTS = xai_x_results  (no Claude equivalent)
WSO_RESULTS = claude_wso  (WebSearch only)
CRUNCHBASE_RESULTS = claude_crunchbase  (WebSearch only)
YOUTUBE_RESULTS = claude_youtube  (WebSearch only)

URL で重複を排除し、メタデータがより多い項目を残します。

ラウンド 1 の内部メモ

(出力には含めず、内部で)記録します。

KEY_ENTITIES: [specific tools, companies, people discovered]
THEMES: [recurring themes across sources]
GAPS: [what's missing — feed into Step 3]
CONTRADICTIONS: [conflicting claims]
LEADS: [URLs worth deep-reading via WebFetch (or scrapling fallback) in Round 2]

Step 3: ギャップ分析

ラウンド 1 の後にギャップ分析を実行します。完全なチェックリストについては references/iterative-research.md を参照してください。

ギャップのカテゴリ
ギャップ確認事項対応
視点の不足開発者、運用担当者、ビジネスの視点があるか?不足している視点を対象にする
未検証の主張1 つのソースにしかない主張があるか?裏付けを探す
浅い網羅性言及されているものの、説明されていない項目があるか?その項目を深掘り検索する
古いデータ重要な事実が 12 か月以上前のものか?最近の更新を検索する
ソースの種類の不足Reddit/GitHub/HN/X/ブログが不足しているか?そのプラットフォームを対象にする
金融・ビジネスの文脈の不足Substack/金融メディア/LinkedIn/Crunchbase が不足しているか?そのプラットフォームを対象にする
ラウンド 2 の計画

優先度の高いギャップを 4~6 個選び、それぞれに絞ったクエリを生成します。複数ラウンドでの絞り込みパターンについては references/search-patterns.md を参照してください。

深さが quick の場合(1 ラウンドのみ)は、Step 6 に進みます。

Step 4: ラウンド 2 — 対象を絞った追加調査

クエリのルール
  1. ラウンド 1 のクエリを繰り返さない
  2. エンティティ固有のクエリ — ラウンド 1 で見つかった対象の名前やツールを指定します
  3. ソースタイプ固有のクエリ — ラウンド 1 で十分に扱われなかった対象プラットフォームを指定します
  4. フレームワークに合わせたクエリ — references/iterative-research.md のターゲティング表を参照してください
実行

ラウンド 1 と同じ並列パターンで、対象を絞ったクエリを使用します。

さらに、ラウンド 1 で見つかった価値の高い URL に対して WebFetch を使用します。

  • 公式ドキュメントページ
  • ベンチマーク結果ページ
  • エンジニアリングブログ記事
  • 方法論が示された比較記事

ラウンド 2 での WebFetch 呼び出しは最大 4~6 回です。

Scrapling フォールバック: WebFetch が 403、空のコンテンツ、CAPTCHA ページ、またはブロックされた応答を返した場合は、cli-web-scrape の自動エスカレーションプロトコルを使って再試行します。

  1. scrapling extract get "URL" /tmp/scrapling-fallback.md → 読み込み → コンテンツを検証
  2. コンテンツが不十分な場合(JS のみのシェル、データなし、ナビゲーションリンクが大半)→ scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources → 読み込み → コンテンツを検証
  3. それでもブロックされる場合 → scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare
  4. すべての段階で失敗した場合 → URL をスキップし、「scrapling blocked」と記録
信頼度の更新

ラウンド 2 の後、すべての主張を再評価します。

変更前新しい証拠変更後
[LOW]2 つ目のソースが見つかった[MEDIUM]
[MEDIUM]3 つ目のソースが見つかった[HIGH]
いずれか矛盾がある矛盾を記録し、両方の見解を提示

深度が default の場合は、ステップ 6 に進みます。

ステップ 5:ラウンド 3 — 検証(Deep のみ)

ラウンド 3 は検証のみを行います。新たな発見は行いません。

上限

以下を対象とする WebFetch の呼び出しは最大 6~10 回です。

対象目的最大呼び出し数
重要な主張に関する一次情報源正確性を検証3~4
独立系ベンチマークサイトパフォーマンスに関する主張を検証1~2
矛盾する両方の見解矛盾を解消1~2
バージョンや日付に関する公式サイト最新性を確認1~2

Scrapling フォールバック: ラウンド 2 と同じ自動エスカレーションプロトコルを使用します。HTTP 段階を試し、コンテンツを検証してから、不十分またはブロックされている場合は Dynamic/Stealthy にエスカレーションします。

ルール
  1. 発見ではなく検証 — 新たなトピックの探索は行いません
  2. 影響の大きい主張を優先 — 推奨内容を変える可能性のある主張を対象にします
  3. 一次情報源を確認 — 要約ではなく、元の情報源を確認します
  4. 信頼度を更新 — 調査結果に応じて信頼度を上げるか下げます
  5. 二次情報源より一次情報源を優先 — 一次情報源が二次情報源と矛盾する場合は、その旨を記録します

ステップ 6:統合

フレームワークの選択

references/output-frameworks.md を読み込み、検出された FRAMEWORK に合致するテンプレートを選択します。

テンプレートへの記入
  1. ヘッダーブロック — フレームワークの種類、トピック、深度、ソース数、日付
  2. 主要コンテンツ — 調査結果をフレームワークの各セクションに記入
  3. 信頼度の指標 — 各主張に [HIGH]、[MEDIUM]、または [LOW] を付与
  4. コミュニティの見解 — Reddit/X/HN/GitHub の反応を統合
  5. 統計フッター — ソース数とエンゲージメント指標
  6. ソースセクション — プラットフォーム別に URL と指標を整理
エンゲージメントを加味した統合

シグナルの強さに応じて、ソースに重み付けします。完全な重み付け表は references/iterative-research.md を参照してください。

シグナルしきい値重み
Reddit の賛成票100+高
X のエンゲージメント50+ 件の「いいね」高
GitHub のスター1000+高
HN のポイント100+高
Substack の「いいね」50+高
複数プラットフォーム間の一致3+ ソース高
2 つのエンジンでの一致Claude + xAI高
Seeking Alpha のコメント20+中
WSO の賛成票10+中
YouTube の再生回数10K+中
最近のもの(7 日未満)いずれか中
ソースが 1 つのみいずれか低
統計フッターの形式
Research Statistics
├─ Reddit: {n} threads │ {upvotes} upvotes
├─ X: {n} posts │ {likes} likes │ {reposts} reposts
├─ GitHub: {n} repos │ {stars} total stars
├─ HN: {n} threads │ {points} total points
├─ Substack: {n} articles │ {likes} likes
├─ Financial: {n} articles │ {sources}
├─ LinkedIn: {n} profiles/articles
├─ YouTube: {n} videos
├─ WSO: {n} threads
├─ Crunchbase: {n} profiles
├─ Web: {n} pages │ {domains}
├─ Merged: {n} from Claude + {n} from xAI
└─ Top voices: r/{sub1} │ @{handle1} │ {blog1}

Web のみのモードのフッター:

Research Statistics
├─ Reddit: {n} threads (via Claude WebSearch)
├─ GitHub: {n} repos (via Claude WebSearch)
├─ HN: {n} threads (via Claude WebSearch)
├─ Substack: {n} articles (via Claude WebSearch)
├─ Financial: {n} articles (via Claude WebSearch)
├─ LinkedIn: {n} profiles/articles (via Claude WebSearch)
├─ YouTube: {n} videos (via Claude WebSearch)
├─ Web: {n} pages
└─ Top sources: {site1}, {site2}

Add X/Twitter + broader coverage: Set up xAI API key (see Prerequisites)

ステップ 7:エキスパートモード

調査結果を提示した後、エキスパートモードに入ります。

  • キャッシュ済みの結果に基づいて追加の質問に回答します
  • 明示的に依頼されない限り、新たな検索は行いません
  • 複数の情報源を相互参照します

新たな検索のトリガー(エキスパートモードを終了):

  • 「もう一度検索して…」
  • 「…についてさらに調べて」
  • 「調査を更新して…」
  • 「…をさらに深く調べて」

運用モード

モード情報源条件
フルClaude WebSearch + xAI(web + X + Reddit + GitHub + HN + Substack + Finance + LinkedIn)ステップ 0 で XAI_AVAILABLE=true が返された場合
Web のみClaude WebSearch のみステップ 0 で XAI_AVAILABLE=false が返された場合

モードはステップ 0 で決まります。省略したり、確認せずに Web のみと判断したりしないでください。

深度の制御

深度ラウンド数情報源xAI 呼び出し回数(フル)用途
quick110-158手早い概要、時間的制約がある場合
default225-4013バランスの取れた調査
deep360-9018 + 6-10 WebFetch包括的な分析、重要な意思決定

コストに関する注意

アクションコスト
Claude Code WebSearch無料(サブスクリプション)
xAI 検索呼び出し(種類を問わず)1 回あたり $0.005
WebFetch(組み込み)無料
scrapling フォールバック(任意)無料

調査セッションあたりの推定コスト:

深度フルモードWeb のみ
quick~$0.04(xAI 呼び出し 8 回)無料
default~$0.065(xAI 呼び出し 13 回)無料
deep~$0.09(xAI 呼び出し 18 回)無料

コスト削減の戦略:

  • ほとんどのニーズには Claude WebSearch を使用します(無料)
  • xAI は X/Twitter(独自の価値)と、プラットフォームごとのより広範なカバレッジを追加します
  • 特定の URL を詳しく読むには WebFetch を使用します(無料)。ブロックされたサイトには scrapling をフォールバックとして使用します

重要な制約

必ず行うこと:

  • すべての調査セッションの前にステップ 0(xAI キーの検出)を実行します
  • xAI キーがある場合:Claude WebSearch と xAI スクリプトを並行して実行します(フルモード)
  • xAI キーがない場合:Claude WebSearch のみを使用します(Web のみモード)
  • ラウンド間でギャップ分析を行います。省略しないでください
  • URL に基づいて結果を統合し、重複を排除します
  • アーカイブ済みの GitHub リポジトリはメンテナンスされておらず読み取り専用のため、結果から除外します
  • すべての主張に信頼度を示します:[HIGH]、[MEDIUM]、または [LOW]
  • 既存の知識ではなく、実際の調査に基づいて総合的な分析を行います
  • URL を含む具体的な情報源を引用します
  • プログラムで解析するため、xAI スクリプトの呼び出しには --json フラグを使用します
  • references/output-frameworks.md からフレームワークのテンプレートを読み込みます

行わないこと:

  • Claude Code WebSearch を省略しないでください(無料です)
  • 並行実行が可能な場合に、検索を順番に実行しないでください
  • 異なる検索エンジンから得た重複結果を表示しないでください
  • 1 つの情報源から 125 文字を超えて引用しないでください
  • ラウンドをまたいでクエリを繰り返さないでください。各ラウンドでは前のラウンドで見つかったギャップを対象にします
  • quick または default の深度でラウンド 3 を追加しないでください。ラウンド 3 は deep 専用です
  • ラウンド 3 で新しいトピックを見つけないでください。検証のみ行います

トラブルシューティング

xAI キーが見つからない場合:

security find-generic-password -s "xai-api" ~/Library/Keychains/claude-keys.keychain-db

見つからない場合は、上記のキーチェーン設定を実行します。

キーチェーンがロックされている場合:

security unlock-keychain ~/Library/Keychains/claude-keys.keychain-db

X/Twitter の結果がない場合: 有効な xAI API キーが必要です。https://console.x.ai で確認してください。

WebFetch がブロックされた場合(403/CAPTCHA/空の結果): scrapling をインストールし、cli-web-scrape の自動エスカレーション手順(HTTP → 検証 → Dynamic → Stealthy)に従います。

uv tool install 'scrapling[all]'
scrapling install  # one-time: install browser engines for Dynamic/Stealthy tiers

スクリプトエラー: uv がインストールされていることを確認します:which uv。インストールされていない場合:curl -LsSf https://astral.sh/uv/install.sh | sh

参考資料

  • references/output-frameworks.md — フレームワークのテンプレート(比較、概観、詳細分析、意思決定)
  • references/search-patterns.md — 検索演算子と複数ラウンドのクエリパターン
  • references/iterative-research.md — ギャップ分析、ラウンドの手順、相互参照の方法

コメント