Literature Review
Write a comprehensive, structured literature review on a user-specified topic. This skill produces a standalone review of what the field knows, where it disagrees, and what remains open. It is not for positioning a specific paper's contribution (use literature-positioning-map for that) or for writing a related-literature section within a manuscript (use research-paper-writer for that).
When to use
- The user wants to survey a topic or research area
- The user wants a literature review for a dissertation chapter, qualifying exam, survey paper, or personal reference
- The user wants to understand the state of knowledge on a question before starting a project
Inputs to collect
Before starting, confirm these with the user:
| Input | Required? | Default | |---|---|---| | Topic or research question | Yes | — | | Output format: markdown / latex-section / latex-standalone | Yes | markdown | | Scope: quick (~15 papers, field orientation) / focused (~25 papers) / comprehensive (~50 papers) | No | comprehensive | | Target .tex file (if latex-section) | If applicable | — | | Existing .bib file path | No | Auto-detect or create new | | Known key papers to include | No | — | | Time period filter | No | All years | | Specific journals to emphasize | No | — |
If the user provides a topic and format in their initial message, proceed without asking. Fill defaults for anything not specified.
Workflow
Phase 0 (quick scope only): Field Orientation
If scope is quick, skip the full review workflow. Instead:
- Run the architecture search (
sortBy: "citedByCount",matchCount: 15) and frontier search (minYear: 2020,matchCount: 15). - Use
get_paper_details_batchon the top 10 results from the architecture search. - Produce a field orientation document at
output/field_orientation.md:
# Field Orientation: [Topic]
## 10 Must-Read Papers
[Ranked by citation count. For each: author (year), title, journal, 1-sentence contribution.]
## 3 Main Debates
[What the field disagrees about, with papers on each side.]
## 3 Dominant Methods
[How this field typically does empirical work.]
## 3 Common Datasets
[What data most papers use, via search_datasets.]
## 5 Frontier Questions
[What the recent papers (2020+) are working on that remains unresolved.]
- Save the paper set to
output/paper_set.jsonand log searches tooutput/search_log.md. - Log to lab notebook and suggest next steps:
/lit-review [topic]with focused or comprehensive scope,/brainstorm [topic], or paper-reader on the top 3 papers. - Stop. Do not proceed to the full review phases.
Phase 1: Search and collect
Target ~50 unique papers for comprehensive scope, ~25 for focused scope. Execute searches in this order:
Step 1 — Architecture search (always first):
search_papers(query: the core topic,sortBy: "citedByCount",matchCount: 15) to immediately see the field's citation hierarchy: which papers define it, which are the most influential.- This search reveals the foundational papers. Every subsequent judgment (what to discuss at length, what to group parenthetically, what to cut) is informed by this hierarchy.
Step 2 — Frontier search (always second):
search_papers(query: core topic,minYear: 2020,matchCount: 15) to find the latest published and working papers that represent the current edge of the field.
Step 3 — Thematic angles:
search_papers(query: first sub-question or thematic angle,matchCount: 15)search_papers(query: second sub-question or thematic angle,matchCount: 15)- If the topic has a third distinct angle, add a third search.
Step 4 — Topic-filtered journal search:
top_cited_articles(journalNames: relevant top journals, query: the specific topic, compact: false) to find seminal papers on the topic within those journals that may not have appeared in the keyword searches.
Step 5 — Adjacent or methodological:
search_papers(query: methodological approach or adjacent field angle,matchCount: 10) for breadth.
Step 6 — Verify and enrich:
get_paper_details_batch(up to 25 paper IDs per call) on the top 30-40 unique papers to read abstracts, confirm relevance, and extract key findings. Use 2 batch calls rather than 30+ individual calls.- Deduplicate across all searches.
- If the user provided known key papers, verify they appear. If not found via search, include them manually and use
get_paper_detailsto confirm details.
Save to shared data files:
- Write all collected papers (with
id,title,authors,year,journal,citedByCount,abstract,fullTextwhen available,doi,source_queries) tooutput/paper_set.json. If the file exists, merge and deduplicate byid. - Append all search queries with parameters and result counts to
output/search_log.md.
Relative citation tiering: After deduplication, sort all collected papers by citedByCount and assign influence tiers using relative ranking within the collected set:
| Tier | Label | Rule | Treatment in the review | |---|---|---|---| | 1 | Foundational | Top 10% by citation count within the collected set | 3-5 sentences each. Describe what they found, how, and why it mattered. These anchor the review. | | 2 | Established | Next 30% by citation count | 1-2 sentences each, or grouped into synthesized claims with 2-3 papers per sentence. | | 3 | Emerging | Bottom 60%, especially papers published in the last 5 years | Grouped into frontier paragraphs. Cited parenthetically to support collective findings. |
A paper that appears across 3+ separate search queries is likely a network hub. Promote it one tier (e.g., Established to Foundational) regardless of citation rank.
When a paper has fullText available in the paper set, use it (not just the abstract) to make more informed judgments about mechanism, method, and contribution.
Ranking criteria (for deciding which papers to keep when cutting to target count):
- Direct relevance to the topic
- Influence tier (Foundational papers are never cut)
- Recency (recent work that shifts the field gets priority over older low-citation work)
- Methodological contribution (papers that changed how the field studies the topic)
Phase 2: Propose strand structure
After collecting papers, propose 4-6 thematic strands. Present to the user for approval before writing.
Deliver this structure:
# Proposed Literature Review Structure
## Topic: [user's topic]
## Scope: [focused/comprehensive] — [N] unique papers collected
## Influence tiers: [X] Foundational / [Y] Established / [Z] Emerging
### Proposed strands:
1. **[Strand name]** — [1-sentence description]
Key papers: [3-5 author-year citations]
Narrative arc: [what story this strand tells, from early work to current state]
2. **[Strand name]** — [1-sentence description]
Key papers: [3-5 author-year citations]
Narrative arc: [story]
3. ...
### Cross-cutting themes:
- [e.g., methodological evolution from X to Y]
- [e.g., a key empirical debate between findings A and B]
### Identified gaps:
- [Gap 1: what the literature has not addressed]
- [Gap 2: where findings conflict without resolution]
### Papers that don't fit neatly:
- [Paper] — could go in strand X or Y; recommend [placement]
Strand organization principles (in order of preference):
- By debate or tension — group papers by which side of a disagreement they support
- By mechanism or channel — group papers by the economic force they emphasize
- By methodology — group papers by empirical approach when methodology drives different answers
- Chronological within strands — within each strand, order foundational work first, then development, then frontier
Never organize by topic label alone ("this literature relates to X, Y, and Z" with no internal structure).
Checkpoint: Wait for user approval or modifications. Do not proceed