mcpField
R
research

research

github.com/alirezarezvani生産性29.0k350 回インストール1 日前に更新
リポジトリ

research について

研究タスクを専門スキルへ委任するか、一般的な検索・統合・引用のワークフローを実行するルータースキルです。ルーティングを明示し、簡易ブリーフや文書を作成できます。

主な機能

  1. 01研究テーマを分類してルーティング
  2. 02専門研究スキルへの委任
  3. 03一般的な検索と情報の統合
  4. 04ブリーフまたは DOCX の作成
  5. 05引用とルーティングの記録

活用シーン

  1. 01特許や文献の質問を専門スキルへ委任
  2. 02一般テーマを引用付きで調査
  3. 03共有用の研究 DOCX を作成
  4. 04曖昧な研究依頼の方向性を確認

インストール

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill research

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

同梱ファイル

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

references/
deterministic_classification_canon.md
fallback_workflow_canon.md
hybrid_router_architecture.md
scripts/
classifier.py
fallback_decomposer.py
routing_transparency_logger.py

詳細

リサーチ — ハイブリッドルーター + フォールバック

リサーチ領域のランタイムオーケストレーターです。 アーキテクチャ C:決定論的な分類 → 専門スキルへの委譲、または独自の計画・分解・検索・統合・引用のワークフロー。

移植性

フォールバックワークフローには WebSearch + WebFetch が必要です。委譲を機能させるには、専門スキル(pulse、grants、litreview、syllabus、patent、dossier、deepread)が存在する必要があります。Q2 = document mode の場合は、docx パッケージを含む Node.js が必要です。Claude Code CLI ではネイティブに動作します。Web ツールと Code Execution を備えた Claude.ai では、このワークフローがサポートされています。

engineering/autoresearch-agent との違い

この 2 つのスキルには「research」という単語が含まれていますが、用途はまったく異なります。

  • research/research/(このスキル) — リサーチクエリルーター + フォールバックワークフロー(「X を調査して」)
  • engineering/autoresearch-agent/ — Karpathy の自律型ファイル最適化実験ループ(「このコードを高速化して」)

重複する部分はありません。両者は共存します。

ハイブリッドアーキテクチャ(C)

呼び出しのたびに、次の 3 つの結果のいずれかになります。

  1. 委譲 — 専門領域と分類された場合、その専門スキルにルーティングします。ユーザーには専門スキルの出力が表示されます。
  2. フォールバック実行 — 一般的なリサーチと分類された場合、独自の計画 → 検索 → 統合のワークフローを実行します。
  3. 確認のリクエスト — 分類が曖昧な場合、または名詞だけのシグナルが 1 つ一致した場合は、判別するために、推奨する回答を添えた選択を迫る質問を 1 つ行ってからルーティングします。

専門スキルの方が適切だった場合に、このスキルが黙ってフォールバックを実行することはありません。ハイブリッドアーキテクチャの信頼性を支えるのは、ルーティングの透明性です。

専門スキルレジストリ

専門スキルルーティングシグナル領域
pulsereddit / hn / x / buzz / sentiment / trending / "what's people saying" / "pulse on" / "take the pulse" / "current conversation"複数ソースによる最新動向のリサーチ
grantsNIH / grant / R01 / K-award / RePORTER / NOSI / "grants for" / FDA / "study section" / "principal investigator"NIH の研究助成金に関するインテリジェンス
litreviewliterature review / PICO / SPIDER / systematic review / "review papers on" / meta-analysis学術文献の概観
syllabussyllabus / course outline / curriculum / "reading list" / "for my class" / "for my students"授業の補足資料となる読書リスト
patentprior art / FTO / freedom to operate / patent / "patent landscape" / invention / novelty search / "ip landscape"特許の先行技術調査とランドスケープ
dossier"dossier on" / "due diligence" / "background check" / "prep me for" / "competitor research" / "investor diligence" / "interview prep" / "background on"意思決定に役立つ対象者・組織のリサーチ
deepread"deep read" / "deeply read" / "read this book" / "read this pdf" / "read this document" / "extract the claims" / "knowledge map" / "feynman"提供された文書をエビデンス優先で読み解く

エスカレーション → deep-research: 誤った回答のコストが高い場合(戦略、N 個の選択肢の比較、仮説の検証、分野のマッピングなど)で、速度より厳密さが重要なら、高速なフォールバックワークフローではなく deep-research スキルにエスカレーションします。deep-research は、複数の視点から何ラウンドにもわたって反証的に調査し、監査可能で再利用できるリサーチフォルダーを永続化します。このルーターは高速パスであり、deep-research は本格的なパスです。

エージェントの完全性に関するルール

このスキルは、リサーチパックの規約に従います。

  • 実行規律(フォールバックのみ):検索は順番に実行します。レート制限は 1 q/sec です。次の呼び出しを行う前に、応答を受信したことを確認します。
  • 情報源に関する規律:このセッションのツール呼び出しで返された情報源のみを引用します。トレーニング知識には [Background — not from search] とラベルを付け、件数から除外します。
  • 3 種類の件数の追跡(フォールバックのみ):送信したクエリ数 / 受信した情報源数 / 引用した情報源数。
  • 再試行ポリシー:失敗した場合は 3 秒待ってから 1 回再試行し、記録します。3 回連続で失敗したら停止し、ユーザーに通知します。
  • ルーティング規律:黙って委譲してはいけません。必ず判断内容を伝え、ユーザーによる上書きを受け付けます。

フェーズ 1:Grill-Me インテーク(2~4 問)

インテークは意図的に最小限にしています。目的は質問攻めにすることではなく、すばやく振り分けることです。1 ターンにつき質問は 1 つです。

Q1(常に質問)— 調査の質問

調査したいことは何ですか? 1~2 文で述べてください。具体的であるほど適切です。「医療における AI」では曖昧な調査になりますが、「医療システムでは LLM ベースの臨床意思決定支援をどのように導入しているか」なら有用な回答が得られます。

曖昧な回答は受け付けません。 ユーザーが「AI を調査」と言った場合は、一度だけ問い返します。「AI の具体的にどの側面ですか? 導入、安全性、性能、資金調達、規制、比較のどれですか? 観点を選んでください。」

Q2(常に質問)— 出力形式の希望

どのような出力が必要ですか? 1 つ選んでください:

  1. 簡潔なチャット向け概要(5 分で読める分量、チャット内の Markdown)
  2. 単独のドキュメント(引用付きの .docx、共有可能)

選択を必須にします。ドキュメントモードでは、検索予算が増え、監査ログが完全に記録されます。

Q3(分類結果が ask、またはシグナルがない fallback の場合のみ質問)— 分野の明確化

簡単な確認です。最も近いものを選んでください(推奨:{N} — 質問が {specialist} のシグナルに一致しました):

  1. 学術文献(論文、査読済み文献)
  2. 業界/トレンド(話題、ニュース、評判)
  3. 特定の主体(企業、人物、組織)
  4. 技術/特許(先行技術、知的財産の状況)
  5. 助成金(NIH、財団)
  6. 講義資料(シラバスまたはカリキュラム)
  7. 該当なし — 一般調査を実行

分類結果が ask(単独の一般名詞シグナル)の場合、推奨する選択肢にあらかじめ印を付けます。分類によってサイレントルート(シグナルが 2 つ以上、または強い複数語のフレーズが 1 つ)が決まった場合は省略します。

Q4(Q3 が必要で、ユーザーが「該当なし」を選んだ場合のみ質問)— 一般調査の範囲

一般調査の場合、対象期間はどのくらいですか? クイックスキャン(検索 5 回)または徹底調査(検索 15 回)から選んでください。

専門分野の処理に引き継がれた場合は省略します。

終了条件: Q4 の後(または依存関係による省略が適用された場合はそれ以前)に確定し、フェーズ 2 を開始します。ほとんどの場合、呼び出しは Q1 と Q2 の後にインテークを終えます。

フェーズ 2:決定論的な分類

これは LLM による推論ではなく、決定論的な処理です。速度、デバッグのしやすさ、一貫性を重視しています。

SIGNALS = {
  pulse:    ["reddit", "hn", "hacker news", "x.com", "twitter", "buzz",
             "sentiment", "trending", "what are people saying",
             "what's happening", "the conversation around",
             "pulse on", "take the pulse", "current conversation"],
  grants:   ["nih", "grant", "grants for", "r01", "r21", "k-award", "reporter",
             "nosi", "funding", "fda", "study section", "principal investigator"],
  litreview:["literature review", "lit review", "litreview", "pico", "spider",
             "systematic review", "review papers on", "research papers on",
             "papers about", "meta-analysis"],
  syllabus: ["syllabus", "course outline", "curriculum", "reading list",
             "for my class", "for my students", "course material"],
  patent:   ["prior art", "fto", "freedom to operate", "patent",
             "patent landscape", "invention", "novelty search",
             "patent search", "ip landscape"],
  dossier:  ["dossier on", "due diligence", "background check",
             "prep me for", "competitor research", "investor diligence",
             "interview prep", "research my competitor", "background on"],
  deepread: ["deep read", "deeply read", "read this book", "read this pdf",
             "read this document", "extract the claims", "extract claims from",
             "knowledge map", "feynman", "argument map"]
}

# Signals are case-insensitive literal phrases (multi-word substring match).
# Bracketed placeholders (e.g., "research [company]") are intentionally NOT
# signals — they over-trigger on generic "research X" queries that should
# fall back to general research, not auto-route to dossier.
# STRONG signal = multi-word phrase (contains a space): pairs verb with noun
# ("dossier on", "prior art") and routes reliably.
# BARE-NOUN signal = single word ("funding", "fda", "patent", "grant"):
# too weak to silent-route on alone — it must trigger Q3 with a
# recommended answer instead.

For each specialist S:
  score[S] = count of SIGNALS[S] phrases matched in question (case-insensitive substring)

if max(score) >= 2:
  route_to = argmax(score)                  # high confidence — silent route
elif max(score) == 1 and only one specialist has score 1:
  if the matched phrase is multi-word (contains a space):
    route_to = that specialist              # strong phrase — silent route
  else:
    route_to = "ask"                        # bare noun — ask Q3, recommend that specialist
else:
  route_to = "fallback"                     # ambiguous or no match — ask Q3 / run fallback

実装: scripts/classifier.py --question "..." は、振り分けの決定、一致したシグナル、専門分野ごとのスコア、および(ask の場合)推奨する専門分野を返します。このスクリプトを使用し、再実装しないでください。上記の SIGNALS マップとルールは、スクリプトとフレーズ単位で同期されています。不一致はバグです。

フェーズ 3a:専門分野への委任(シグナルが 2 つ以上、または強い複数語のフレーズが 1 つ)

委任する場合:

  1. ユーザーの質問を 一字一句そのまま、出力形式の希望(Q2)とともに渡します
  2. 専門分野側で独自の Grill-Me インテークを実施させます。専門分野側の質問に先回りして回答してはいけません
  3. 専門分野側の出力を、ユーザーに表示する結果として返します
  4. 結果を生成したスキルがユーザーに分かるよう、チャット出力で結果に [Delegated to: research → {specialist}] を付けます
  5. scripts/routing_transparency_logger.py --action record_delegation で監査ログに記録します

フェーズ 3b:独自のフォールバックワークフロー

ルーティングで専門分野への一致が見つからなかった場合(かつQ3で一般的な調査が確認された場合)は、次の8つのステップでフォールバックを実行します。

  1. 分解 — 質問を3~5個のサブ質問(何/なぜ/どのように/誰/次に何が起きるか)に分解します。検索前に分解内容を示します。scripts/fallback_decomposer.py --question "..." を使うと、決定論的な出発点を得られます。
  2. ソースの選定 — サブ質問ごとに選定します。最新情報 → WebSearch+WebFetch(兆候があればReddit/HNも使用)、技術/ドキュメント → WebSearch+WebFetch、学術 → 接続されていればConsensus MCP、そうでなければ scholar.google.com のサイトフィルターを使ったWebSearch、データ/数値 → 一次資料をWebFetch、エンティティ単位 → dossier への再ルーティングを提案します。
  3. 検索 — サブ質問ごとに順次検索します。1秒あたり1クエリ、ソースごとに2~4クエリ、広範な検索から絞り込んでいきます。
  4. 閲覧と抽出 — シグナルの強い検索結果をWebFetchで取得します。すべてのソースURLを記録します。
  5. 統合 — サブ質問ごとに、インライン引用を含む2~4段落を作成します。ソース間に見解の相違があれば明示します。
  6. 横断的なパターン — 複数のサブ質問にまたがる合意点、論争点、ギャップを1~2段落にまとめます。
  7. 出力 — デフォルトではMarkdownの概要を作成します。ユーザーがドキュメントモードを選んだ場合はDOCXを作成します。
  8. 監査ログ — 3つの件数(送信/受信/引用)と、ソースごとの信頼性レベル(一次/二次/三次)を記録します。

ルーティング透明性プロトコル(必須)

分類後、スキルは必ず次の対応を行います。

  1. 判断を伝えます。1文で説明します:「PICOとメタ分析に言及しているため、litreview にルーティングします(シグナル2件)。」
  2. 変更の選択肢を提示します:「代わりに一般的な調査や別の専門スキルを希望する場合は、今お知らせください。」
  3. ユーザーが異議を唱えなければ、推奨ルートで進めます。タイマーやカウントダウンは使いません。
  4. ユーザーが変更を希望した場合 → その希望を受け入れて再ルーティングし、routing_transparency_logger.py --action record_override で変更を記録します。

黙って委任してはいけません。 これが、ハイブリッドパターンを機能させる信頼構築の要素です。

出力形式

Markdownの概要(Q2=チャットでの簡易説明):タイトルと *Generated: [DATE] | Routed: [specialist | fallback]* に続けて、要約(2~3文)→ 調査結果(サブ質問ごとにH3見出しを付け、インライン引用を記載)→ 横断的なパターン → ソース(番号付きのハイパーリンクと、それぞれの信頼性レベル)→ 監査(3つの件数と失敗内容)。

DOCX(Q2=独立したドキュメント):標準的な調査パックのDOCX形式に従います。Arial 12pt、紺色の見出し、青色の表ヘッダー、ハイパーリンク付きのソース、必須の監査ログセクションを含めます。設定については docx スキルを参照してください。

監査ログブロック(フォールバックモード)
Queries sent: N | Sources received: M | Sources cited: K
Failures: F (3-consecutive-failures triggered: yes/no)
Per-source tier: [URL — primary | secondary | tertiary]
Routing decision: fallback (no specialist matched)
Sub-questions: [list]

すべてのルーティング判断と変更は、routing_transparency_logger.py を介して ~/.research_sessions/<session>.json にも記録されます。

失敗時の対応

失敗対応
単一の名詞だけのシグナル(例:「funding」「fda」)一致した専門スキルを推奨回答として事前選択したうえで、Q3を尋ねます。黙ってルーティングしてはいけません。
分類が曖昧(1シグナルの一致が複数、または一致なし)Q3を尋ねます(分野の判別)。
専門スキルへの委任に失敗チャットでその旨を伝えます。再試行するか、一般的な調査に切り替えるかを提案します。
ユーザーがルーティングの変更を希望受け入れて再ルーティングし、変更を記録します。
フォールバック検索の結果が乏しいその旨を明示します。質問が非常にニッチ、または新しすぎる可能性を伝えます。情報を捏造してはいけません。
フォールバック中にツールが3回連続で失敗停止してユーザーに知らせ、収集済みの情報を共有します。
調査以外の質問(例:「コードを書いて」)丁寧に断り、適切なスキルを提案します。
サブ質問に回答できない「公開情報が限られています」と記載し、黙って省略してはいけません。
出力形式が一致しないQ2の希望に従います。対応できない場合は、その旨を記載してMarkdownに切り替えます。
環境に専門スキルがない分類のスコアリングから除外し、フォールバックまたは次善の専門スキルにルーティングします。

拒否するアンチパターン

  • LLM の推論による分類(キーワードと意図の照合を決定論的に行う必要があります)
  • 委譲をユーザーに知らせないこと(ルーティングの判断は常に明示します)
  • 2 つ以上のシグナルが一致している場合に、専門家へのルーティングを拒否すること
  • 単一の名詞だけのシグナルによるサイレントルーティング(「research FDA approval trends」の場合は、grants に自動ルーティングせず、質問する必要があります)
  • 経過時間を前提とした仕組み(「N 秒後に自動で続行」など)— モデルは待機できません。ユーザーが異議を唱えなければ、推奨ルートで続行します
  • 専門家の聞き取り質問に先回りして回答すること(聞き取りは専門家自身に行わせます)
  • 検索結果が乏しい場合に、フォールバックで情報源を捏造すること
  • フォールバックモードで監査ログを省略すること
  • dossier が適切な専門家であるにもかかわらず、「dossier on [company]」をフォールバックとして扱うこと(動詞と名詞の組み合わせで構成される表現はルーティングしますが、一般的な「research X」という形式ではルーティングしません)
  • 一般的な「research [topic]」というクエリを専門家に自動ルーティングすること(「research Microsoft」だけでは曖昧で、dossier の可能性も一般的な調査の可能性もあります。推測せず、Q3 で質問します)

ツール

  • scripts/classifier.py — SIGNALS の照合を決定論的に行い、ルーティングの判断(specialist / ask + 推奨先 / fallback)、専門家ごとのスコア、一致したフレーズを出力します。--question "..." --output json。
  • scripts/routing_transparency_logger.py — ~/.research_sessions/<session>.json に JSON 形式の監査ログを記録します。すべてのルーティング判断、上書き、委譲の引き継ぎを記録します。
  • scripts/fallback_decomposer.py — 質問をヒューリスティックに 3~5 個のサブ質問(何を/なぜ/どのように/誰が/次はどうするか)に分解します。
リファレンスドキュメント(それぞれ 7 件以上の権威ある情報源を引用)
  • references/hybrid_router_architecture.md — ルーターと実行のトレードオフ、およびルーティングの透明性に関する原則
  • references/deterministic_classification_canon.md — ルーティングで LLM による推論よりキーワードを優先する理由
  • references/fallback_workflow_canon.md — 計画・分解・検索・統合の手法

依存関係

  • WebSearch と WebFetch — フォールバックのワークフローに必須です
  • 専門家スキル — 委譲に必須です:pulse、grants、litreview、syllabus、patent、dossier。専門家が存在しない場合、ルーターはその専門家をスキップし、フォールバックにルーティングします。
  • Node.js docx library — ユーザーがドキュメント出力を選択した場合に必須です(Q2 = standalone)
  • Consensus MCP — 任意です。フォールバックで学術的なサブ質問が生じた場合に使用します

バージョン: 1.1.0 ソース仕様: megaprompts/13-research-megaprompt.md(メンテナー向けのローカル草案仕様 — gitignore 対象のため、公開リポジトリには含まれていません) ビルドパターン: Path B(直接変換)。v1.1.0:名詞だけのシグナルはサイレントルーティングではなく質問するように変更。5 秒後に自動で続行する仕組みを削除。2026-06 の newgen 監査に基づき、コンテキストの効率化のために簡素化。

コメント