research について
研究タスクを専門スキルへ委任するか、一般的な検索・統合・引用のワークフローを実行するルータースキルです。ルーティングを明示し、簡易ブリーフや文書を作成できます。
主な機能
- 01研究テーマを分類してルーティング
- 02専門研究スキルへの委任
- 03一般的な検索と情報の統合
- 04ブリーフまたは DOCX の作成
- 05引用とルーティングの記録
活用シーン
- 01特許や文献の質問を専門スキルへ委任
- 02一般テーマを引用付きで調査
- 03共有用の研究 DOCX を作成
- 04曖昧な研究依頼の方向性を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill researchインストール後、Claude Code で/researchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/deterministic_classification_canon.mdfallback_workflow_canon.mdhybrid_router_architecture.mdscripts/classifier.pyfallback_decomposer.pyrouting_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 つ一致した場合は、判別するために、推奨する回答を添えた選択を迫る質問を 1 つ行ってからルーティングします。
専門スキルの方が適切だった場合に、このスキルが黙ってフォールバックを実行することはありません。ハイブリッドアーキテクチャの信頼性を支えるのは、ルーティングの透明性です。
専門スキルレジストリ
| 専門スキル | ルーティングシグナル | 領域 |
|---|---|---|
pulse | reddit / hn / x / buzz / sentiment / trending / "what's people saying" / "pulse on" / "take the pulse" / "current conversation" | 複数ソースによる最新動向のリサーチ |
grants | NIH / grant / R01 / K-award / RePORTER / NOSI / "grants for" / FDA / "study section" / "principal investigator" | NIH の研究助成金に関するインテリジェンス |
litreview | literature review / PICO / SPIDER / systematic review / "review papers on" / meta-analysis | 学術文献の概観 |
syllabus | syllabus / course outline / curriculum / "reading list" / "for my class" / "for my students" | 授業の補足資料となる読書リスト |
patent | prior 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 つ選んでください:
- 簡潔なチャット向け概要(5 分で読める分量、チャット内の Markdown)
- 単独のドキュメント(引用付きの .docx、共有可能)
選択を必須にします。ドキュメントモードでは、検索予算が増え、監査ログが完全に記録されます。
Q3(分類結果が ask、またはシグナルがない fallback の場合のみ質問)— 分野の明確化
簡単な確認です。最も近いものを選んでください(推奨:{N} — 質問が
{specialist}のシグナルに一致しました):
- 学術文献(論文、査読済み文献)
- 業界/トレンド(話題、ニュース、評判)
- 特定の主体(企業、人物、組織)
- 技術/特許(先行技術、知的財産の状況)
- 助成金(NIH、財団)
- 講義資料(シラバスまたはカリキュラム)
- 該当なし — 一般調査を実行
分類結果が 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 つ)
委任する場合:
- ユーザーの質問を 一字一句そのまま、出力形式の希望(Q2)とともに渡します
- 専門分野側で独自の Grill-Me インテークを実施させます。専門分野側の質問に先回りして回答してはいけません
- 専門分野側の出力を、ユーザーに表示する結果として返します
- 結果を生成したスキルがユーザーに分かるよう、チャット出力で結果に
[Delegated to: research → {specialist}]を付けます scripts/routing_transparency_logger.py --action record_delegationで監査ログに記録します
フェーズ 3b:独自のフォールバックワークフロー
ルーティングで専門分野への一致が見つからなかった場合(かつQ3で一般的な調査が確認された場合)は、次の8つのステップでフォールバックを実行します。
- 分解 — 質問を3~5個のサブ質問(何/なぜ/どのように/誰/次に何が起きるか)に分解します。検索前に分解内容を示します。
scripts/fallback_decomposer.py --question "..."を使うと、決定論的な出発点を得られます。 - ソースの選定 — サブ質問ごとに選定します。最新情報 → WebSearch+WebFetch(兆候があればReddit/HNも使用)、技術/ドキュメント → WebSearch+WebFetch、学術 → 接続されていればConsensus MCP、そうでなければ
scholar.google.comのサイトフィルターを使ったWebSearch、データ/数値 → 一次資料をWebFetch、エンティティ単位 →dossierへの再ルーティングを提案します。 - 検索 — サブ質問ごとに順次検索します。1秒あたり1クエリ、ソースごとに2~4クエリ、広範な検索から絞り込んでいきます。
- 閲覧と抽出 — シグナルの強い検索結果をWebFetchで取得します。すべてのソースURLを記録します。
- 統合 — サブ質問ごとに、インライン引用を含む2~4段落を作成します。ソース間に見解の相違があれば明示します。
- 横断的なパターン — 複数のサブ質問にまたがる合意点、論争点、ギャップを1~2段落にまとめます。
- 出力 — デフォルトではMarkdownの概要を作成します。ユーザーがドキュメントモードを選んだ場合はDOCXを作成します。
- 監査ログ — 3つの件数(送信/受信/引用)と、ソースごとの信頼性レベル(一次/二次/三次)を記録します。
ルーティング透明性プロトコル(必須)
分類後、スキルは必ず次の対応を行います。
- 判断を伝えます。1文で説明します:「PICOとメタ分析に言及しているため、
litreviewにルーティングします(シグナル2件)。」 - 変更の選択肢を提示します:「代わりに一般的な調査や別の専門スキルを希望する場合は、今お知らせください。」
- ユーザーが異議を唱えなければ、推奨ルートで進めます。タイマーやカウントダウンは使いません。
- ユーザーが変更を希望した場合 → その希望を受け入れて再ルーティングし、
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
docxlibrary — ユーザーがドキュメント出力を選択した場合に必須です(Q2 = standalone) - Consensus MCP — 任意です。フォールバックで学術的なサブ質問が生じた場合に使用します
バージョン: 1.1.0
ソース仕様: megaprompts/13-research-megaprompt.md(メンテナー向けのローカル草案仕様 — gitignore 対象のため、公開リポジトリには含まれていません)
ビルドパターン: Path B(直接変換)。v1.1.0:名詞だけのシグナルはサイレントルーティングではなく質問するように変更。5 秒後に自動で続行する仕組みを削除。2026-06 の newgen 監査に基づき、コンテキストの効率化のために簡素化。