Literature Review skill for Claude Code
Reproducible searches, verified sources, argued gaps. Claude frames the question with PICO or a concept-context split, builds Boolean strings tested against known gold papers, logs every database run, screens against criteria written in advance, and chases citations to saturation. Findings are synthesized by theme from an extraction matrix, gaps are tied to empty cells, and every reference is checked against doi.org or Crossref before it ships.
- name
literature-review - size197 lines · ≈2,250 tokens
- files2
- licenseMIT
- updated
What Claude sees before loading it
This description is the only part of the skill that sits in context all the time. Claude reads it to decide when to load the full playbook below.
description: Runs structured literature reviews end to end — scoped research question, documented multi-database search strings, title/abstract screening against written criteria, citation chasing, a synthesis matrix, and a gap analysis — with every cited source verified to exist. Use when asked for a literature review, related-work section, state-of-the-art survey, "what does the research say about X", a reading list on a topic, or a background chapter for a thesis, grant, or paper. Try asking
- Write the related-work section for my paper on retrieval-augmented generation evaluation
- What does the research since 2020 say about remote work and junior developer productivity?
- Build me a search strategy and screening criteria for a review on microplastics in drinking water
Use it when
- You need a related-work section or background chapter
- You want to know what published research says about a question
- You need a reading list or evidence map for an unfamiliar field
- A previous review needs updating with newer studies
Skip it when
- You need a protocol-driven review with PRISMA reporting and risk-of-bias tables — use systematic-reviews
- You are critiquing one specific paper in depth — use paper-analysis
How to check the result
Rerun one logged search string and confirm the hit count is close, then spot-check five references on doi.org to confirm title, authors and the cited claim.
The common mistake it prevents
Producing a polished reference list from memory, which mixes real papers with plausible but nonexistent ones and wrong years or venues.
Done well means: a reader can rerun the search from the documented strings and dates, every included source exists and says what the review claims it says, the synthesis is organized by ideas (not by paper), and the gaps are argued from the matrix rather than asserted.
Hard rules
- Never cite a paper you have not located. Every entry needs a resolvable DOI, arXiv ID, PubMed ID, ISBN, or stable URL that you actually opened or that the user supplied. If a search tool is unavailable, say so and produce the search plan and matrix template instead of a reference list from memory.
- Never invent page numbers, sample sizes, effect sizes, or quotes. Mark anything not
read in full as
abstract-only. - Keep the review’s claims proportional to the evidence: one study “reports”, several consistent studies “indicate”, a pre-registered meta-analysis “shows”.
- A narrative review is not a systematic review. If the user needs exhaustive, protocol-driven, bias-assessed evidence (clinical, policy, meta-analysis), switch to the systematic-reviews workflow.
Choose the review type first
| Need | Type | Search depth | Output |
|---|---|---|---|
| Background or related-work section | Narrative | 2-3 databases + citation chasing | 1-4 pages, thematic |
| Map what exists on a broad topic | Scoping | Wide, documented, no quality filter | Evidence map + categories |
| Answer a precise effect question | Systematic | Exhaustive, protocol, dual screening | PRISMA flow, bias tables |
| Quick answer for a decision | Rapid | 1-2 databases, single screener, date-limited | Brief with stated limits |
| Learn a field fast | Reading list | Seminal + recent reviews | 10-20 annotated items |
State the chosen type and its limits at the top of the deliverable.
Workflow
- [ ] 1. Frame the question and scope
- [ ] 2. Build and log the search
- [ ] 3. Screen against written criteria
- [ ] 4. Chase citations forward and backward
- [ ] 5. Extract into the synthesis matrix
- [ ] 6. Synthesize by theme; argue gaps
- [ ] 7. Verify every reference
- [ ] 8. Write up with the search appendix
1. Frame the question
Turn the topic into a question with explicit components. Use the framework that fits:
- PICO (interventions): Population, Intervention, Comparison, Outcome.
- PEO (exposures/qualitative): Population, Exposure, Outcome.
- SPIDER (qualitative/mixed): Sample, Phenomenon of Interest, Design, Evaluation, Research type.
- Concept-Context (CS/engineering): technique + task/domain + evaluation setting.
Write down: years covered and why, languages, publication types (peer-reviewed, preprints, grey literature), and the disciplines whose databases matter. Ask the user when the scope is ambiguous; a review of “LLM hallucination” since 2020 and since 2023 are different projects.
2. Build and log the search
- List 2-4 concepts from the question. For each, collect synonyms, spelling variants, acronyms, and controlled-vocabulary terms (MeSH, ACM CCS, ERIC thesaurus).
- OR within a concept, AND across concepts. Use truncation and phrase quotes.
- Test against 3-5 known “gold” papers the user or a recent review identifies. If the string misses one, find out which term it lacks and add it.
- Log every run: database, date, exact string, filters, hit count.
("large language model*" OR LLM* OR "foundation model*")
AND (hallucinat* OR "factual consisten*" OR confabulat*)
AND (detect* OR mitigat* OR evaluat*)
Database choice by field:
| Field | Primary sources |
|---|---|
| Biomedicine / health | PubMed/MEDLINE, Embase, Cochrane Library, CINAHL |
| Computer science / AI | ACM DL, IEEE Xplore, DBLP, arXiv, Semantic Scholar, OpenReview |
| Social science / education | Scopus, Web of Science, ERIC, PsycINFO, SSRN |
| Economics / policy | RePEc/IDEAS, NBER, SSRN, Google Scholar, government/IGO repositories |
| Cross-disciplinary | Scopus, Web of Science, OpenAlex, Google Scholar (supplementary only) |
Google Scholar results are not reproducible (ranking changes, 1,000-result cap, no full Boolean support): use it for citation chasing and gap filling, never as the only source. For field-specific syntax (PubMed tags, Scopus TITLE-ABS-KEY, arXiv API queries, OpenAlex filters), read references/search-syntax.md.
3. Screen against written criteria
Write inclusion/exclusion criteria before screening and apply them in two passes: title/abstract, then full text. Record the reason for each full-text exclusion.
Include: empirical studies; evaluates a hallucination detection or mitigation method;
English; 2020-2025; peer-reviewed or arXiv with >= 1 version and code or data.
Exclude: opinion pieces; image-only models; no quantitative evaluation; duplicate
versions (keep the latest/peer-reviewed one).
- Deduplicate before screening (DOI first, then normalized title + year). The citation-management skill has a dedupe script.
- When uncertain at title/abstract stage, include and decide at full text.
- Keep counts for each stage; even a narrative review should report them in one line.
4. Chase citations
- Backward: scan reference lists of included papers and recent reviews.
- Forward: “cited by” in Google Scholar, Semantic Scholar, Scopus, or OpenAlex
(
cites:filter) for seminal papers. - Stop when two consecutive rounds add no new includable papers (saturation) and say so.
5. Extract into a synthesis matrix
One row per study; columns chosen from the question. Fill from the full text when
possible, and flag abstract-only rows.
| ID | Citation (verified) | Year | Setting/data | Method | N / scale | Key finding | Limits | Theme(s) |
|----|---------------------|------|--------------|--------|-----------|-------------|--------|----------|
| S01 | Doe et al., doi:10.xxxx/yyyy | 2023 | QA, 3 datasets | Self-consistency sampling | 5 models | -18% hallucination rate vs. greedy | English only; no human eval | detection, sampling |
6. Synthesize and argue gaps
- Organize by theme, mechanism, or chronology of ideas, not one paragraph per paper.
- For each theme: what is established (convergent evidence), what is contested (conflicting results and the likely reason: data, metric, population), what is missing.
- Derive gaps from empty or thin cells in the matrix: understudied populations, settings, methods, outcomes, or time periods. Classify each gap:
| Gap type | Signal in the matrix |
|---|---|
| Evidence gap | Contradictory findings with no resolving study |
| Methodological gap | All studies use the same design, metric, or benchmark |
| Population/context gap | Settings or groups absent from the “Setting” column |
| Empirical gap | Claim repeated in intros but never tested |
| Theoretical gap | Findings with no explanatory model connecting them |
- Note publication-bias risk: field dominated by positive results, benchmark-driven reporting, or industry-only datasets.
7. Verify every reference
For each reference, confirm in a primary index (doi.org, Crossref, PubMed, arXiv, publisher page):
- Title, authors, year, and venue match.
- The cited claim appears in the paper (not just the abstract of a different version).
- Retraction status (Crossref metadata includes Retraction Watch data; check the publisher page and PubMed for retraction notices).
- Preprint vs. published version: cite the version you read; note if a later version changed conclusions.
curl -sL -H "Accept: application/x-bibtex" https://doi.org/10.1038/s41586-020-2649-2
curl -s "https://api.crossref.org/works/10.1038/s41586-020-2649-2" | python3 -m json.tool | head -40
Delete any reference that cannot be verified, and say what was removed.
Output template
# <Review title>
**Type:** narrative | scoping | rapid **Coverage:** 2019-2025, English **Searched:** 2025-10-14
## Question and scope
## Method (one paragraph): databases, strings in Appendix A, criteria, counts
(identified 412 -> deduplicated 301 -> screened 301 -> full text 58 -> included 31)
## Findings by theme
### Theme 1 ... (claims with citations; strength words matched to evidence)
## Contested findings and why they differ
## Gaps and research opportunities (each tied to matrix evidence)
## Limitations of this review
## References (verified; DOI or stable URL for each)
## Appendix A: search log Appendix B: synthesis matrix
Gotchas
- Seminal papers missing from the results almost always mean a vocabulary gap in the string, not that the paper is irrelevant. Test with gold papers.
- Review articles inflate apparent consensus: cite the primary studies for empirical claims and the review for the overview.
- arXiv-heavy fields: the same work appears as preprint, workshop, and conference paper. Count it once.
- Citation counts favor older papers and hype; never use them as a quality filter.
- “No studies found” is a finding only if the search was documented and tested.
Bundled files
Loaded only when a step in the skill needs them. Review them here before installing.
references/search-syntax.md
# Database search syntax cheat sheet
Read this when translating a search string between databases. Syntax drifts; when a
query behaves unexpectedly, check the database's own help page and re-test against the
gold-paper set.
## PubMed / MEDLINE
| Element | Syntax | Notes |
|---|---|---|
| Field tags | `term[tiab]`, `term[ti]`, `term[au]`, `term[mh]`, `term[majr]` | `[tiab]` = title/abstract |
| MeSH with explosion | `"Neoplasms"[mh]` | Explodes narrower terms by default |
| MeSH without explosion | `"Neoplasms"[mh:noexp]` | |
| Truncation | `therap*` | Disables automatic term mapping for that term |
| Phrase | `"machine learning"[tiab]` | |
| Date | `2020:2025[dp]` | Publication date |
| Proximity | `"hand hygiene compliance"[tiab:~3]` | Title/abstract proximity search |
Combine free-text `[tiab]` terms with MeSH: new papers are indexed with MeSH weeks or
months after publication, so MeSH-only strings miss recent work.
E-utilities (programmatic, no key needed at low volume; 3 requests/s, 10 with API key):
```bash
curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&retmode=json&retmax=200&term=%22large+language+model%22%5Btiab%5D+AND+2023%3A2025%5Bdp%5D"
```
## Scopus
- `TITLE-ABS-KEY("large language model*" AND hallucinat*)`
- Proximity: `W/n` (within n words, any order), `PRE/n` (ordered).
- Filters: `PUBYEAR > 2019`, `DOCTYPE(ar OR cp)`, `LANGUAGE(english)`, `SUBJAREA(COMP)`.
- `*` truncation; `?` single character. Quotes are loose phrase (ignore punctuation);
braces `{}` are exact phrase.
## Web of Science
- Field tags: `TS=` (topic: title, abstract, keywords), `TI=`, `AU=`, `PY=2020-2025`.
- Proximity: `NEAR/n`; `SAME` only in address fields.
- `TS=(("large language model*" OR LLM*) AND hallucinat*)`
## Embase (Ovid or Embase.com)
- Emtree terms explode by default on Embase.com: `'neoplasm'/exp`.
- Free text: `'machine learning':ti,ab`.
- Proximity: `NEAR/n`, `NEXT/n`.
## ACM Digital Library / IEEE Xplore
- ACM advanced search supports field qualifiers like `Title:(...)` and `Abstract:(...)`;
Boolean must be upper case.
- IEEE: `("All Metadata":"large language model") AND ("Abstract":hallucination)`;
limited wildcard support (max ~ 5 wildcards per query in some interfaces).
- Both interfaces change; export results to BibTeX/RIS and record the URL of the search.
## arXiv API
```bash
curl -s "http://export.arxiv.org/api/query?search_query=abs:%22large%20language%20model%22+AND+abs:hallucination&start=0&max_results=100&sortBy=submittedDate&sortOrder=descending"
```
Field prefixes: `ti:`, `abs:`, `au:`, `cat:` (e.g. `cat:cs.CL`), `all:`. Boolean
`AND`, `OR`, `ANDNOT`. Respect the API etiquette: one request every 3 seconds.
## OpenAlex (free, open scholarly graph)
```bash
# Title/abstract search, year filter, 200 per page
curl -s "https://api.openalex.org/works?search=hallucination%20large%20language%20model&filter=publication_year:2020-2025,type:article&per-page=200"
# Forward citations of a work
curl -s "https://api.openalex.org/works?filter=cites:W2741809807&per-page=200"
```
Add `[email protected]` to join the polite pool. OpenAlex also exposes
`filter=doi:` lookups and `referenced_works` for backward chasing.
## Semantic Scholar Graph API
```bash
curl -s "https://api.semanticscholar.org/graph/v1/paper/search?query=hallucination+detection&fields=title,year,externalIds,citationCount&limit=100"
curl -s "https://api.semanticscholar.org/graph/v1/paper/DOI:10.18653/v1/2023.emnlp-main.557/citations?fields=title,year,externalIds"
```
Unauthenticated access is rate limited and shared; request an API key for bulk work.
## Google Scholar
- Supports `"phrase"`, `OR`, `-exclude`, `intitle:`, `author:`, `source:`.
- No truncation, no nesting guarantees, max ~256 characters, 1,000 results visible.
- Use for citation chasing ("Cited by") and grey literature, not as the primary,
reproducible search.
## Search log format
```markdown
| # | Database | Date run | Exact string | Filters | Hits | Exported as |
|---|----------|----------|--------------|---------|------|-------------|
| 1 | Scopus | 2025-10-14 | TITLE-ABS-KEY(...) | PUBYEAR > 2019, ar/cp | 287 | scopus_2025-10-14.ris |
```
About this skill
Written and maintained by the Claude Skills editors to the same editorial standard as every skill in the directory: a selective trigger, a real workflow, known pitfalls and a verification step. First published , last updated . MIT licensed.