ワンクリックで
traversing-citation-networks
Smart backward and forward citation following via Semantic Scholar, with relevance filtering and deduplication
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Smart backward and forward citation following via Semantic Scholar, with relevance filtering and deduplication
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Collaboratively build and refine paper screening rubrics through brainstorming, test-driven development, and iterative feedback
Check if medicinal chemistry papers are in ChEMBL database to access curated bioactivity data
Introduction to literature search & review skills - systematic paper finding, screening, extraction, and citation traversal
Main orchestration workflow for systematic literature research - search, evaluate, traverse, synthesize
Safely remove intermediate files from completed research sessions while preserving important data
Two-stage paper screening - abstract scoring then deep dive for specific data extraction
| name | Traversing Citation Networks |
| description | Smart backward and forward citation following via Semantic Scholar, with relevance filtering and deduplication |
| when_to_use | After finding relevant paper. When need to find related work. When following references or citations. When building citation graph. When exploring paper connections. |
| version | 1.0.0 |
Intelligently follow citations backward (references) and forward (citing papers) using Semantic Scholar API.
Core principle: Only follow citations relevant to user's query. Avoid exponential explosion by filtering before traversing.
Use this skill when:
When NOT to use:
Lookup by DOI:
curl "https://api.semanticscholar.org/graph/v1/paper/DOI:10.1234/example.2023?fields=paperId,title,year"
Response:
{
"paperId": "abc123def456",
"title": "Paper Title",
"year": 2023
}
Save paperId - needed for citations/references queries
Get references from paper:
curl "https://api.semanticscholar.org/graph/v1/paper/abc123def456/references?fields=contexts,intents,title,year,abstract,externalIds&limit=100"
Response format:
{
"data": [
{
"citedPaper": {
"paperId": "xyz789",
"title": "Referenced Paper Title",
"year": 2020,
"abstract": "...",
"externalIds": {
"DOI": "10.5678/referenced.2020",
"PubMed": "87654321"
}
},
"contexts": [
"...as described in previous work [15]...",
"...we used the method from [15] to..."
],
"intents": ["methodology", "background"]
}
]
}
Filter for relevance:
For each reference, check:
Scoring:
Only add to queue if score ≥ 5
Get papers citing this one:
curl "https://api.semanticscholar.org/graph/v1/paper/abc123def456/citations?fields=title,year,abstract,externalIds&limit=100"
Response format:
{
"data": [
{
"citingPaper": {
"paperId": "def456ghi",
"title": "Newer Paper Citing This",
"year": 2024,
"abstract": "We extended the work of [original paper]...",
"externalIds": {
"DOI": "10.9012/citing.2024"
}
}
}
]
}
Filter for relevance:
For each citing paper:
Scoring:
Only add to queue if score ≥ 5
Before adding to queue:
Check papers-reviewed.json:
doi = paper["externalIds"].get("DOI")
if doi in papers_reviewed:
skip # Already processed
else:
add to queue
CRITICAL: After evaluating any paper from citation traversal, add it to papers-reviewed.json regardless of score. This prevents re-processing the same paper from multiple sources.
Track citation relationship in citations/citation-graph.json:
{
"10.1234/example.2023": {
"references": ["10.5678/ref1.2020", "10.5678/ref2.2021"],
"cited_by": ["10.9012/cite1.2024", "10.9012/cite2.2024"]
}
}
CRITICAL: Use ONLY citation-graph.json for citation tracking. Do NOT create custom files like forward_citation_pmids.txt or citation_analysis.md. All findings go in SUMMARY.md.
Add relevant citations to processing queue:
{
"doi": "10.5678/referenced.2020",
"title": "Referenced Paper",
"relevance_score": 7,
"source": "backward_from:10.1234/example.2023",
"context": "Method citation - describes IC50 measurement protocol"
}
Then:
evaluating-paper-relevance skillTo avoid explosion:
Breadth-first strategy:
Report as you traverse:
🔗 Analyzing citations for: "Original Paper Title"
→ Found 45 references, 12 look relevant
→ Found 23 citing papers, 8 look relevant
→ Adding 20 papers to queue
📄 [51/127] Following reference: "Method for measuring IC50"
Source: Referenced by original paper in Methods section
Abstract score: 7 → Fetching full text...
Semantic Scholar limits:
Be efficient:
?fields=title,abstract,externalIds,year)limit=100 to get more results per requestIf rate limited:
After traversing citations:
evaluating-paper-relevance skill| Task | API Endpoint |
|---|---|
| Get paper by DOI | GET /graph/v1/paper/DOI:{doi}?fields=paperId,title |
| Get references | GET /graph/v1/paper/{paperId}/references?fields=contexts,title,abstract,externalIds |
| Get citations | GET /graph/v1/paper/{paperId}/citations?fields=title,abstract,externalIds |
| Check if processed | Look up DOI in papers-reviewed.json |
| Filter relevance | Score based on context/title/intent/recency |
Before adding citation to queue:
Not tracking all evaluated papers: Only adding relevant papers to papers-reviewed.json → Add EVERY paper after evaluation to prevent re-review Creating custom analysis files: Making forward_citation_pmids.txt, CITATION_ANALYSIS.md, etc. → Use ONLY citation-graph.json and SUMMARY.md Following all citations: Exponential explosion → Filter before adding to queue Ignoring context: Citation might be tangential → Read context strings Not deduplicating: Re-process same papers → Always check papers-reviewed.json before and after evaluation Too deep: Following 5+ levels → Limit to 2 levels, check with user Missing forward citations: Only checking references → Use both backward and forward No rate limiting awareness: API blocks you → Add delays, handle 429 errors
1. User asks: "Find selectivity data for BTK inhibitors"
2. Search finds Paper A (score: 9, has great IC50 data)
3. Traverse citations for Paper A:
- References: 45 total, 12 relevant (mention "selectivity", "IC50")
- Citations: 23 total, 8 relevant (newer papers on BTK)
4. Add 20 papers to queue
5. Evaluate first queued paper (score: 8)
6. Extract data, traverse its citations (add 5 more)
7. Continue until queue empty or user says stop
After traversing citations:
evaluating-paper-relevance