Answering Research Questions について
Answering Research Questionsは、質問の解析からPubMed検索、論文評価、引用追跡、知見の統合までを調整するスキルです。研究の進捗を記録し、成果をまとめる体系的な調査に向いています。
主な機能
- 01テーマ・データ要件・制約の解析
- 02PubMedによる文献検索
- 03論文のスコア付けと知見抽出
- 04論文と引用関係の追跡
- 05知見を研究ファイルに整理
活用シーン
- 01研究テーマに関する測定値の検索
- 02検索中の論文の追跡と重複排除
- 03引用をたどった関連研究の発見
- 04統合した文献レビューの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kthorn/ research-superpower --skill answering-research-questionsインストール後、Claude Code で/answering-research-questionsを入力して読み込まれたか確認します。
詳細
研究に関する質問への回答
概要
クエリから知見の獲得まで、研究ワークフロー全体をオーケストレーションします。
基本原則: 体系的で、追跡可能かつ包括的に進めます。検索 → 評価 → 探索 → 統合。
開始時に宣言: 「Answering Research Questions スキルを使用して、[トピック]に関する[具体的なデータ]を探します。」
プロセス
フェーズ 1:クエリを解析する
ユーザーの依頼から以下を抽出します。
キーワード:
- 主な概念(例:「BTK inhibitor」、「selectivity」)
- 同義語や別表現(例:「Bruton tyrosine kinase」)
- 関連用語(例:「off-target」、「kinase panel」)
必要なデータの種類:
- 特定の測定値(IC50、KD、EC50 など)
- 方法やプロトコル
- 構造や配列
- 結果や結論
制約条件:
- 日付範囲
- 特定の化合物/標的
- 生物やシステム
- 出版物の種類
必要に応じて確認の質問をします:
- 「in vitro データと in vivo データのどちらをお探しですか?」
- 「特定の期間はありますか?」
- 「特に関心のあるキナーゼはありますか?」
- 「Unpaywall API リクエストに使用するメールアドレスを教えてください。」(オープンアクセス論文を探すために必要です)
フェーズ 2:研究セッションを初期化する
フォルダー名を提案する:
research-sessions/YYYY-MM-DD-brief-description/
例:research-sessions/2025-10-11-btk-inhibitor-selectivity/
提案をユーザーに提示する:
📁 Creating research folder: research-sessions/2025-10-11-btk-inhibitor-selectivity/
Proceed? (y/n)
フォルダー構造を作成する:
mkdir -p "research-sessions/YYYY-MM-DD-description"/{papers,citations}
ファイルを初期化する:
コアファイル(常に作成):
papers-reviewed.json:
{}
citations/citation-graph.json:
{}
SUMMARY.md:
# Research Query: [User's question]
**Started:** YYYY-MM-DD HH:MM
**Keywords:** keyword1, keyword2, keyword3
**Data types sought:** IC50 values, selectivity data, synthesis methods
---
## Highly Relevant Papers (Score ≥ 8)
Papers scored using `evaluating-paper-relevance` skill:
- Score 0-10 based on: Keywords (0-3) + Data type (0-4) + Specificity (0-3)
- Score ≥ 8: Highly relevant with significant data
- Score 7: Relevant with useful data
- Score 5-6: Possibly relevant
- Score < 5: Not relevant
(Papers will be added here as found)
Example format:
### [Paper Title](https://doi.org/10.1234/example)
**DOI:** [10.1234/example](https://doi.org/10.1234/example) | **PMID:** [12345678](https://pubmed.ncbi.nlm.nih.gov/12345678/)
---
## Relevant Papers (Score 7)
(Papers will be added here as found)
---
## Possibly Relevant Papers (Score 5-6)
(Noted for potential follow-up)
---
## Search Progress
- Initial PubMed search: X results
- Papers reviewed: Y
- Papers with relevant data: Z
- Citations followed: N
---
## Key Findings
(Synthesized findings will be added as research progresses)
重要:DOI と PMID には、必ずクリック可能な Markdown リンクを使用してください
補助ファイル(検索件数が100件を超える場合):
作成するタイミングについては、evaluating-paper-relevance スキルを参照してください。
- README.md - プロジェクトの概要、方法、ファイル一覧
- TOP_PRIORITY_PAPERS.md - 優先度別に整理した厳選リスト
- evaluated-papers.json - プログラムからアクセスするための、詳細な構造化データ
小規模な検索(論文50件未満)では、コアファイルだけを使用します。大規模な検索(論文100件超)では、補助ファイルによって整理の価値が大きく高まります。
フェーズ 3:文献を検索する
searching-literature スキルを使用します:
- キーワードから PubMed クエリを作成する
- 検索を実行する(最初は100件の結果から開始)
- 結果を
initial-search-results.jsonに保存する - 「クエリに一致する論文が N 件見つかりました」と報告する
フェーズ 4:論文を評価する
evaluating-paper-relevance スキルを使用します:
各論文について:
- papers-reviewed.json を確認する(処理済みの場合はスキップ)
- 第1段階:抄録を採点する(0~10点)
- スコアが7以上の場合:第2段階の詳細調査を行う
- 知見を SUMMARY.md に抽出する
- PDF と補足資料が入手可能な場合はダウンロードする
- papers-reviewed.json を更新する(スコアの低い論文も含む、すべての論文が対象)
- スコアが7以上の場合:この論文についてフェーズ5に進む
重要:スコアにかかわらず、すべての論文を papers-reviewed.json に追加してください。これにより、再評価を防ぎ、検索履歴全体を記録できます。
すべての論文について進捗を報告する:
📄 [15/100] Screening: "Paper Title"
Abstract score: 8 → Fetching full text...
✓ Found IC50 data for 8 compounds
→ Added to SUMMARY.md
📄 [16/100] Screening: "Another Paper"
Abstract score: 3 → Skipping (not relevant)
📄 [17/100] Screening: "Third Paper"
Abstract score: 7 → Relevant, adding to queue...
論文を10件処理するごとに、概要を報告します
フェーズ 5:引用を探索する
traversing-citations スキルを使用します:
スコアが7以上の論文について:
- 参考文献を取得する(後方)
- 被引用文献を取得する(前方)
- 関連性を基準に絞り込む(スコアが5以上)
- 処理キューに追加する
- キューに入った論文を評価する(フェーズ4に戻る)
進捗を報告する:
🔗 Following citations from highly relevant paper
→ Found 12 relevant references
→ Found 8 relevant citing papers
→ Adding 20 papers to queue
フェーズ 6:チェックポイント
以下のタイミングで確認します:
- 50件の論文を評価するごと
- 処理を5分行うごと
- キューが空になったとき
ユーザーに確認します:
⏸️ Checkpoint: Reviewed 50 papers, found 12 relevant
Papers with data: 7
Continue searching? (y/n/summary)
選択肢:
y- 処理を続行するn- 停止して最終結果をまとめるsummary- 現在の知見を表示してから決定する
フェーズ 7:調査結果を統合する
停止する場合(ユーザーが「いいえ」と答えた場合、またはキューが空の場合):
オプション A:手動で統合する(小規模な調査セッション)
- SUMMARY.md を確認する - 関連性とトピックごとに整理します
- 主な調査結果を抽出する - データの種類ごとにまとめます
- 統合セクションを追加する:
## Key Findings Summary
### IC50 Values for BTK Inhibitors
- Compound A: 12 nM (Smith et al., 2023)
- Compound B: 45 nM (Doe et al., 2024)
- [More compounds...]
### Selectivity Data
- Compound A shows >80-fold selectivity vs other kinases
- Tested against panel of 50 kinases (Jones et al., 2023)
### Synthesis Methods
- Lead compounds synthesized via [method]
- Yields: 30-45%
- Full protocols in [papers]
### Gaps Identified
- No data on selectivity vs [specific kinase]
- Limited in vivo data
- Few papers on resistance mechanisms
- 検索の進捗統計を更新する
- ダウンロードしたファイルをすべて列挙する
オプション B:スクリプトで統合する(大規模な調査セッション、論文 50 件超)
大規模な調査セッションでは、統合スクリプトの作成を検討してください。
generate_summary.py を作成する:
- ヘルパースクリプトから
evaluated-papers.jsonを読み込む - 優先度と足場の種類ごとに調査結果を集約する
- 次の内容を含む包括的な SUMMARY.md を生成する:
- 統計を含む概要
- 関連性スコア別にまとめた論文
- 次のステップに関する優先度付きの推奨事項
- 方法論のドキュメント
- タイムスタンプと再現性に関する情報を含める
メリット:
- セッション間で一貫した書式を保てます
- 論文を追加したときに簡単に再生成できます
- グループ化やフィルタリングのロジックをカスタマイズできます
- 方法論全体を記録できます
最終レポート:
✅ Research complete!
📊 Summary:
- Papers reviewed: 127
- Relevant papers: 18
- Highly relevant: 7
- Data extracted: IC50 values for 45 compounds, selectivity data, synthesis methods
📁 All findings in: research-sessions/2025-10-11-btk-inhibitor-selectivity/
- SUMMARY.md (organized findings)
- papers/ (14 PDFs + supplementary data)
- papers-reviewed.json (complete tracking)
フェーズ 8:最終的な統合
重要:最後に必ず調査結果を統合してください
1. relevant-papers.json を作成する
papers-reviewed.json をフィルタリングし、関連性のある論文(スコア ≥ 7)のみを抽出します:
# Read papers-reviewed.json
with open('papers-reviewed.json') as f:
all_papers = json.load(f)
# Filter for relevant papers (score >= 7)
relevant_papers = {
doi: data for doi, data in all_papers.items()
if data.get('score', 0) >= 7
}
# Save to relevant-papers.json
with open('relevant-papers.json', 'w') as f:
json.dump(relevant_papers, f, indent=2)
形式:
{
"10.1234/example1.2023": {
"pmid": "12345678",
"title": "Paper title",
"status": "highly_relevant",
"score": 9,
"source": "pubmed_search",
"timestamp": "2025-10-11T16:00:00Z",
"found_data": ["IC50 values", "synthesis methods"],
"chembl_id": "CHEMBL1234567"
},
"10.1234/example2.2023": {
"pmid": "23456789",
"title": "Another paper",
"status": "relevant",
"score": 7,
"source": "forward_citation",
"timestamp": "2025-10-11T16:15:00Z",
"found_data": ["MIC data"]
}
}
2. 方法論セクションで SUMMARY.md を強化する
既存の SUMMARY.md の先頭(論文一覧の前)に、次のセクションを追加します:
# Research Query: [User's question]
**Date:** 2025-10-11
**Duration:** 2h 15m
**Status:** Complete
---
## Search Strategy
**Keywords:** BTK, Bruton tyrosine kinase, inhibitor, selectivity, off-target, kinase panel, IC50
**Data types sought:** IC50 values, selectivity data, kinase panel screening
**Constraints:** None (open date range)
**PubMed Query:**
("BTK" OR "Bruton tyrosine kinase") AND (inhibitor OR "kinase inhibitor") AND (selectivity OR "off-target")
---
## Screening Methodology
**Rubric:** Abstract scoring (0-10)
- Key terms: +3 pts each (or Keywords 0-3, Data type 0-4, Specificity 0-3 if using old rubric)
- Relevant terms: +1 pt each
- Threshold: ≥7 = relevant
**Sources:**
- Initial PubMed search
- Forward/backward citations via Semantic Scholar
---
## Results Statistics
**Papers Screened:**
- Total reviewed: 127 papers
- Highly relevant (≥8): 12 papers
- Relevant (7): 18 papers
- Possibly relevant (5-6): 23 papers
- Not relevant (<5): 74 papers
**Data Extracted:**
- IC50 values: 45 compounds across 12 papers
- Selectivity data: 8 papers with kinase panel screening
- Full text obtained: 18/30 relevant papers (60%)
**Citation Traversal:**
- Papers with citations followed: 7
- References screened: 45 papers
- Citing papers screened: 38 papers
- Relevant papers found via citations: 8 papers
---
## Key Findings Summary
### IC50 Values for BTK Inhibitors
- Ibrutinib: 0.5 nM (Smith et al., 2023)
- Acalabrutinib: 3 nM (Doe et al., 2024)
- [Additional findings synthesized from papers below]
### Selectivity Patterns
- Most inhibitors show >50-fold selectivity vs other kinases
- Common off-targets: TEC, BMX (other TEC family kinases)
### Gaps Identified
- Limited data on selectivity vs JAK/SYK
- Few papers on resistance mechanisms
- No in vivo selectivity data found
---
## File Inventory
- `SUMMARY.md` - This file (methodology + findings)
- `relevant-papers.json` - 30 relevant papers (score ≥7)
- `papers-reviewed.json` - All 127 papers screened
- `papers/` - 18 PDFs + 5 supplementary files
- `citations/citation-graph.json` - Citation relationships
---
## Reproducibility
**To reproduce:**
1. Use PubMed query above
2. Apply screening rubric (threshold ≥7)
3. Follow citations from highly relevant papers (≥8)
4. Check Unpaywall for paywalled papers
**Software:** Research Superpowers skills v2025-10-11
---
[Existing paper listings follow below...]
## Highly Relevant Papers (Score ≥ 8)
### [Paper Title]...
ユーザーへの報告:
✅ Research session complete!
📄 Consolidation complete:
1. SUMMARY.md - Enhanced with methodology, statistics, and findings
2. relevant-papers.json - 30 relevant papers (score ≥7) in JSON format
📁 All files in: research-sessions/2025-10-11-btk-inhibitor-selectivity/
- SUMMARY.md (complete: methodology + paper-by-paper findings)
- relevant-papers.json (30 relevant papers for programmatic access)
- papers-reviewed.json (127 total papers screened)
- papers/ (18 PDFs)
🔍 Quick access:
- Open SUMMARY.md for complete findings and methodology
- Use relevant-papers.json for programmatic access
💡 Optional: Clean up intermediate files?
→ Use cleaning-up-research-sessions skill to safely remove temporary files
ワークフローのチェックリスト
これらのステップの進捗管理には TodoWrite を使用します:
- ユーザーのクエリを解析する(キーワード、データの種類、制約)
- 調査フォルダーを提案して作成する
- 追跡ファイルを初期化する(SUMMARY.md、papers-reviewed.json、citation-graph.json)
- searching-literature スキルを使って PubMed を検索する
- 各論文について、evaluating-paper-relevance スキルを使って評価する
- 関連性のある論文(≥7)について、traversing-citations スキルを使って引用をたどる
- 定期的に進捗を報告する
- 論文 50 件ごと、または 5 分ごとにチェックポイントを作成する
- 完了したら、調査結果を統合し、方法論を追加して SUMMARY.md を強化する
- relevant-papers.json を作成する(プログラムからアクセスするためのフィルタリング済み JSON)
- 統計とファイルの保存場所を含む最終レポートを作成する
統合ポイント
使用するスキル:
searching-literature- PubMed の初期検索evaluating-paper-relevance- 論文のスコア付けと情報の抽出traversing-citations- 引用ネットワークをたどる
すべてのスキルは、次の共有ファイルを通じて連携します:
- 共有の
papers-reviewed.json(重複排除) - 共有の
SUMMARY.md(調査結果の蓄積) - 共有の
citation-graph.json(関係の追跡)
ファイル構成:
- 小規模な検索(論文 50 件未満): コアファイルのみ(papers-reviewed.json、SUMMARY.md、citation-graph.json)
- すべての検索: 最後に relevant-papers.json を作成し、方法論を追加して SUMMARY.md を強化する
- 大規模な検索(論文 100 件超): 整理しやすくするため、補助ファイル(README.md、TOP_PRIORITY_PAPERS.md、evaluated-papers.json)を追加してもかまいません
エラー処理
検索結果が見つからない場合:
- キーワードの範囲を広げます
- 制約を削除します
- スペルを確認します
- 別の同義語を試します
API のレート制限:
- ユーザーに「⏸️ レート制限に達しました。待機しています...」と報告します
- 必要な時間だけ待機します
- 自動的に再開します
全文を取得できない場合:
- SUMMARY.md に記録します
- 抄録のみで評価を続けます
- 関連性が非常に高い場合は、手動での取得が必要であることを示します
検索結果が多すぎる場合(500 件超):
- クエリを絞り込むよう提案します
- 最初の 100 件を処理し、続行するか確認します
- 新しい論文、または最も多く引用されている論文を優先します
クイックリファレンス
| フェーズ | スキル | 出力 |
|---|---|---|
| 解析 | (組み込み) | キーワード、データ型、制約 |
| 初期化 | (組み込み) | フォルダー、SUMMARY.md、追跡ファイル |
| 検索 | searching-literature | メタデータ付き論文リスト |
| 評価 | evaluating-paper-relevance | スコア付き論文、抽出した知見 |
| 引用文献の追跡 | traversing-citations | 引用文献から得られた追加論文 |
| 統合 | (組み込み) | 方法論と知見を追加したSUMMARY.md |
| 集約 | (組み込み) | relevant-papers.json(スコア7以上に絞り込み) |
よくある間違い
すべての論文を追跡しない: 関連論文だけをpapers-reviewed.jsonに追加する → 再レビューを防ぎ、履歴をすべて追跡できるよう、すべての論文を追加する 小規模な検索で不要な補助ファイルを作成する: 50件未満の場合は、主要ファイル(papers-reviewed.json、SUMMARY.md、citation-graph.json)だけを使う。大規模な検索(100件超)では、README.mdやTOP_PRIORITY_PAPERS.mdなどの補助ファイルが役立つ 作業を黙って進める: ユーザーに進捗が見えない → すべての論文を報告し、10件ごとに最新情報を伝える クリックできない識別子: DOI/PMIDをプレーンテキストで記載する → 必ずMarkdownリンクを使う 十分に検索せず評価に進む: 検索結果が狭すぎる → まず検索を最適化する 論文を追跡しない: 同じ論文を再レビューすることになる → 必ずpapers-reviewed.jsonを使う すべての引用文献をたどる: 対象が指数関数的に増える → 追跡する前に絞り込む チェックポイントがない: ユーザーが状況を把握できなくなる → 50件ごとに報告して確認を求める 統合が不十分: 論文を並べるだけ → データ型ごとにグループ化し、重要な知見を抽出する まとめて報告する: 20件の論文を一度に報告する → 作業を進めながら1件ずつ報告する
ユーザーとのコミュニケーション(重要)
決して黙って作業を進めないでください!ユーザーには継続的なフィードバックが必要です。
報告頻度:
- 論文ごと: スクリーニング中に簡潔な状況を報告する(
📄 [N/Total] Title... Score: X) - 5~10件ごと: 件数を含む進捗サマリー
- 知見を得るたびに: 見つけたデータをすぐに報告する
- 判断が必要な場面ごと: 方針を変える前に確認する
進捗報告は具体的に:
- ✅ 「化合物7のIC50 = 12 nMを発見(表2)」
- ❌ 「データを発見」
- ✅ 「論文25/127をスクリーニング中:関連なし(スコア3)」
- ❌ 論文を黙ってスキップする
必要に応じて確認する:
- ✅ 「in vitroとin vivoのどちらのIC50値をお探しですか?」
- ❌ 確認せずに決めて、時間を無駄にする
作業を妨げる要因はすぐに報告する:
- ✅ 「⚠️ 論文はペイウォールの向こうにあるため、要旨のみで評価しています」
- ❌ 何も伝えずにスキップする
定期的なサマリー(論文10~15件ごと):
📊 Progress update:
- Reviewed: 30/127 papers
- Highly relevant: 3 (scores 8-10)
- Relevant: 5 (score 7)
- Currently: Screening paper 31...
理由: ユーザーは早い段階で方針を修正でき、作業が進んでいることを把握でき、必要に応じて中止できます
成功基準
以下を満たした場合、リサーチセッションは成功です:
- 関連する論文をすべて見つけて評価している
- 具体的なデータを抽出し、整理している
- 引用文献を体系的にたどっている
- 重複処理がない
- 実用的な知見を含む明確なSUMMARY.mdがある
- ユーザーの質問に根拠を示して回答している
次のステップ
リサーチ完了後:
- ユーザーがSUMMARY.mdとrelevant-papers.jsonを確認する
- 任意: cleaning-up-research-sessionsスキルを実行して中間ファイルを削除する
- 特定の論文について、より詳しい調査を依頼できる
- キーワードを調整した追加検索を依頼できる
- リサーチセッションのフォルダーをアーカイブまたは共有できる