51 added, 580 removed. Audit A to A.
---
name: literature-review
- description: Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles.
- license: MIT
- author: AIPOCH
- ---
- > **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
-
-
- # Literature Review
-
- ## Overview
-
- Conduct systematic, comprehensive literature reviews following rigorous academic methodology. Search multiple literature databases, synthesize findings thematically, verify all citations for accuracy, and generate professional output documents in markdown and PDF formats.
-
- This skill integrates with multiple scientific skills for database access (gget, bioservices, datacommons-client) and provides specialized tools for citation verification, result aggregation, and document generation.
-
- ## When to Use This Skill
-
- Use this skill when:
- - Conducting a systematic literature review for research or publication
- - Synthesizing current knowledge on a specific topic across multiple sources
- - Performing meta-analysis or scoping reviews
- - Writing the literature review section of a research paper or thesis
- - Investigating the state of the art in a research domain
- - Identifying research gaps and future directions
- - Requiring verified citations and professional formatting
-
- ## When NOT to Use This Skill
-
- Do NOT use this skill when:
- - Only a simple keyword search is needed (use gget or PubMed directly)
- - The task is citation management/formatting only (use reference-style-sync)
- - The user needs a single paper summary (use gget or direct reading)
- - The task is bibliometric analysis only (use citation-chasing-mapping)
-
- ## Visual Enhancement with Scientific Schematics
-
- **⚠️ MANDATORY: Every literature review MUST include at least 1-2 AI-generated figures using the scientific-schematics skill.**
-
- This is not optional. Literature reviews without visual elements are incomplete. Before finalizing any document:
- 1. Generate at minimum ONE schematic or diagram (e.g., PRISMA flow diagram for systematic reviews)
- 2. Prefer 2-3 figures for comprehensive reviews (search strategy flowchart, thematic synthesis diagram, conceptual framework)
-
- **How to generate figures:**
- - Use the **scientific-schematics** skill to generate AI-powered publication-quality diagrams
- - Simply describe your desired diagram in natural language
- - Nano Banana Pro will automatically generate, review, and refine the schematic
-
- **How to generate schematics:**
- ```bash
- python scripts/generate_schematic.py "your diagram description" -o figures/output.png
- ```
-
- The AI will automatically:
- - Create publication-quality images with proper formatting
- - Review and refine through multiple iterations
- - Ensure accessibility (colorblind-friendly, high contrast)
- - Save outputs in the figures/ directory
-
- **When to add schematics:**
- - PRISMA flow diagrams for systematic reviews
- - Literature search strategy flowcharts
- - Thematic synthesis diagrams
- - Research gap visualization maps
- - Citation network diagrams
- - Conceptual framework illustrations
- - Any complex concept that benefits from visualization
-
- For detailed guidance on creating schematics, refer to the scientific-schematics skill documentation.
-
+ description: Find, verify, and synthesize scientific literature — from "what's the seminal paper for X" through full multi-source reviews. Covers grounding claims in real retrieved sources, avoiding fabricated citations, handling retractions, and calibrating confidence to evidence strength.
+ license: Apache-2.0
+ metadata:
+ # Non-biomodel: sends user's query to Crossref (with contact email when
+ # configured) and to OpenAlex (with the user's OpenAlex api_key —
+ # required since 2026-02-13; no email is ever sent to OpenAlex).
+ third_party:
+ # The leaf /rest-api-metadata-license-information/ page now 404s though
+ # still in search indexes. Parent docs landing carries the license
+ # statement ("Almost all of the metadata we hold is reusable without
+ # restriction") and is less likely to rot. Docs page, not a ToU —
+ # info_url. verified 2026-06-30
+ - kind: service
+ name: Crossref
+ info_url: https://www.crossref.org/documentation/retrieve-metadata/
+ privacy_url: https://www.crossref.org/operations-and-sustainability/privacy/
+ - kind: service
+ name: OpenAlex
+ terms_url: https://openalex.org/OpenAlex_termsofservice.pdf
+ privacy_url: https://openalex.org/OpenAlex_privacy_policy.pdf
---
- ## Core Workflow
-
- Literature reviews follow a structured, multi-phase workflow:
-
- ### Phase 1: Planning and Scoping
-
- 1. **Define Research Question**: Use PICO framework (Population, Intervention, Comparison, Outcome) for clinical/biomedical reviews
- - Example: "What is the efficacy of CRISPR-Cas9 (I) for treating sickle cell disease (P) compared to standard care (C)?"
-
- 2. **Establish Scope and Objectives**:
- - Define clear, specific research questions
- - Determine review type (narrative, systematic, scoping, meta-analysis)
- - Set boundaries (time period, geographic scope, study types)
-
- 3. **Develop Search Strategy**:
- - Identify 2-4 main concepts from research question
- - List synonyms, abbreviations, and related terms for each concept
- - Plan Boolean operators (AND, OR, NOT) to combine terms
- - Select minimum 3 complementary databases
-
- 4. **Set Inclusion/Exclusion Criteria**:
- - Date range (e.g., last 10 years: 2015-2024)
- - Language (typically English, or specify multilingual)
- - Publication types (peer-reviewed, preprints, reviews)
- - Study designs (RCTs, observational, in vitro, etc.)
- - Document all criteria clearly
-
- ### Phase 2: Systematic Literature Search
-
- 1. **Multi-Database Search**:
-
- Select databases appropriate for the domain:
-
- **Biomedical & Life Sciences:**
- - Use `gget` skill: `gget search pubmed "search terms"` for PubMed/PMC
- - Use `gget` skill: `gget search biorxiv "search terms"` for preprints
- - Use `bioservices` skill for ChEMBL, KEGG, UniProt, etc.
-
- **General Scientific Literature:**
- - Search arXiv via direct API (preprints in physics, math, CS, q-bio)
- - Search Semantic Scholar via API (200M+ papers, cross-disciplinary)
- - Use Google Scholar for comprehensive coverage (manual or careful scraping)
-
- **Specialized Databases:**
- - Use `gget alphafold` for protein structures
- - Use `gget cosmic` for cancer genomics
- - Use `datacommons-client` for demographic/statistical data
- - Use specialized databases as appropriate for the domain
-
- **If a database is unavailable (API error, timeout, rate limit):**
- - Log the failure with database name and error type
- - Proceed with remaining databases — minimum 2 required
- - If fewer than 2 databases succeed, pause and inform user before continuing
- - Document all failed searches in the methodology section
-
- 2. **Document Search Parameters**:
- ```markdown
- ## Search Strategy
-
- ### Database: PubMed
- - **Date searched**: 2024-10-25
- - **Date range**: 2015-01-01 to 2024-10-25
- - **Search string**:
- ```
- ("CRISPR"[Title] OR "Cas9"[Title])
- AND ("sickle cell"[MeSH] OR "SCD"[Title/Abstract])
- AND 2015:2024[Publication Date]
- ```
- - **Results**: 247 articles
- ```
-
- Repeat for each database searched.
-
- 3. **Export and Aggregate Results**:
- - Export results in JSON format from each database
- - Combine all results into a single file
- - Use `scripts/search_databases.py` for post-processing:
- ```bash
- python search_databases.py combined_results.json \
- --deduplicate \
- --format markdown \
- --output aggregated_results.md
- ```
-
- ### Phase 3: Screening and Selection
-
- 1. **Deduplication**:
- ```bash
- python search_databases.py results.json --deduplicate --output unique_results.json
- ```
- - Removes duplicates by DOI (primary) or title (fallback)
- - Document number of duplicates removed
-
- **If deduplication script fails:** Manually deduplicate by sorting on title and DOI, then proceed.
-
- 2. **Title Screening**:
- - Review all titles against inclusion/exclusion criteria
- - Exclude obviously irrelevant studies
- - Document number excluded at this stage
-
- 3. **Abstract Screening**:
- - Read abstracts of remaining studies
- - Apply inclusion/exclusion criteria rigorously
- - Document reasons for exclusion
-
- 4. **Full-Text Screening**:
- - Obtain full texts of remaining studies
- - Conduct detailed review against all criteria
- - Document specific reasons for exclusion
- - Record final number of included studies
-
- 5. **Create PRISMA Flow Diagram**:
- ```
- Initial search: n = X
- ├─ After deduplication: n = Y
- ├─ After title screening: n = Z
- ├─ After abstract screening: n = A
- └─ Included in review: n = B
- ```
-
- ### Phase 4: Data Extraction and Quality Assessment
-
- 1. **Extract Key Data** from each included study:
- - Study metadata (authors, year, journal, DOI)
- - Study design and methods
- - Sample size and population characteristics
- - Key findings and results
- - Limitations noted by authors
- - Funding sources and conflicts of interest
-
- 2. **Assess Study Quality**:
- - **For RCTs**: Use Cochrane Risk of Bias tool
- - **For observational studies**: Use Newcastle-Ottawa Scale
- - **For systematic reviews**: Use AMSTAR 2
- - Rate each study: High, Moderate, Low, or Very Low quality
- - Consider excluding very low-quality studies
-
- 3. **Organize by Themes**:
- - Identify 3-5 major themes across studies
- - Group studies by theme (studies may appear in multiple themes)
- - Note patterns, consensus, and controversies
-
- ### Phase 5: Synthesis and Analysis
-
- 1. **Create Review Document** from template:
- ```bash
- cp assets/review_template.md my_literature_review.md
- ```
-
- 2. **Write Thematic Synthesis** (NOT study-by-study summaries):
- - Organize Results section by themes or research questions
- - Synthesize findings across multiple studies within each theme
- - Compare and contrast different approaches and results
- - Identify consensus areas and points of controversy
- - Highlight the strongest evidence
-
- Example structure:
- ```markdown
- #### 3.3.1 Theme: CRISPR Delivery Methods
-
- Multiple delivery approaches have been investigated for therapeutic
- gene editing. Viral vectors (AAV) were used in 15 studies^1-15^ and
- showed high transduction efficiency (65-85%) but raised immunogenicity
- concerns^3,7,12^. In contrast, lipid nanoparticles demonstrated lower
- efficiency (40-60%) but improved safety profiles^16-23^.
- ```
-
- 3. **Critical Analysis**:
- - Evaluate methodological strengths and limitations across studies
- - Assess quality and consistency of evidence
- - Identify knowledge gaps and methodological gaps
- - Note areas requiring future research
-
- 4. **Write Discussion**:
- - Interpret findings in broader context
- - Discuss clinical, practical, or research implications
- - Acknowledge limitations of the review itself
- - Compare with previous reviews if applicable
- - Propose specific future research directions
-
- ### Phase 6: Citation Verification
-
- **CRITICAL**: All citations must be verified for accuracy before final submission.
-
- 1. **Verify All DOIs**:
- ```bash
- python scripts/verify_citations.py my_literature_review.md
- ```
-
- This script:
- - Extracts all DOIs from the document
- - Verifies each DOI resolves correctly
- - Retrieves metadata from CrossRef
- - Generates verification report
- - Outputs properly formatted citations
-
- 2. **Review Verification Report**:
- - Check for any failed DOIs
- - Verify author names, titles, and publication details match
- - Correct any errors in the original document
- - Re-run verification until all citations pass
-
- 3. **Format Citations Consistently**:
- - Choose one citation style and use throughout (see `references/citation_styles.md`)
- - Common styles: APA, Nature, Vancouver, Chicago, IEEE
- - Use verification script output to format citations correctly
- - Ensure in-text citations match reference list format
-
- ### Phase 7: Document Generation
-
- 1. **Generate PDF**:
- ```bash
- python scripts/generate_pdf.py my_literature_review.md \
- --citation-style apa \
- --output my_review.pdf
- ```
-
- Options:
- - `--citation-style`: apa, nature, chicago, vancouver, ieee
- - `--no-toc`: Disable table of contents
- - `--no-numbers`: Disable section numbering
- - `--check-deps`: Check if pandoc/xelatex are installed
-
- 2. **Review Final Output**:
- - Check PDF formatting and layout
- - Verify all sections are present
- - Ensure citations render correctly
- - Check that figures/tables appear properly
- - Verify table of contents is accurate
-
- 3. **Quality Checklist**:
- - [ ] All DOIs verified with verify_citations.py
- - [ ] Citations formatted consistently
- - [ ] PRISMA flow diagram included (for systematic reviews)
- - [ ] Search methodology fully documented
- - [ ] Inclusion/exclusion criteria clearly stated
- - [ ] Results organized thematically (not study-by-study)
- - [ ] Quality assessment completed
- - [ ] Limitations acknowledged
- - [ ] References complete and accurate
- - [ ] PDF generates without errors
-
- ## Database-Specific Search Guidance
-
- ### PubMed / PubMed Central
-
- Access via `gget` skill:
- ```bash
- # Search PubMed
- gget search pubmed "CRISPR gene editing" -l 100
-
- # Search with filters
- # Use PubMed Advanced Search Builder to construct complex queries
- # Then execute via gget or direct Entrez API
- ```
-
- **Search tips**:
- - Use MeSH terms: `"sickle cell disease"[MeSH]`
- - Field tags: `[Title]`, `[Title/Abstract]`, `[Author]`
- - Date filters: `2020:2024[Publication Date]`
- - Boolean operators: AND, OR, NOT
- - See MeSH browser: https://meshb.nlm.nih.gov/search
-
- ### bioRxiv / medRxiv
-
- Access via `gget` skill:
- ```bash
- gget search biorxiv "CRISPR sickle cell" -l 50
- ```
-
- **Important considerations**:
- - Preprints are not peer-reviewed
- - Verify findings with caution
- - Check if preprint has been published (CrossRef)
- - Note preprint version and date
+ # Literature review
- ### arXiv
+ A literature question has two halves: finding the papers a domain expert would point to, and turning them into something more useful than a reading list — a synthesis that says what's established, what's contested, what's new, and where the holes are. Both halves can fail quietly and look like competent output until someone checks.
- Access via direct API or WebFetch:
+ ## Setup (any agent, no API key)
+ This is a **pure skill** — `kernel.py` is deterministic Python (plain HTTP/stdlib calls to CrossRef and OpenAlex) and *you* (the base model) do all the reasoning: the finding, the synthesis, the prose. There is no `host` runtime and no LLM API. Load the helpers once per session in a Python cell:
```python
- # Example search categories:
- # q-bio.QM (Quantitative Methods)
- # q-bio.GN (Genomics)
- # q-bio.MN (Molecular Networks)
- # cs.LG (Machine Learning)
- # stat.ML (Machine Learning Statistics)
-
- # Search format: category AND terms
- search_query = "cat:q-bio.QM AND ti:\"single cell sequencing\""
- ```
-
- ### Semantic Scholar
-
- Access via direct API (requires API key, or use free tier):
- - 200M+ papers across all fields
- - Excellent for cross-disciplinary searches
- - Provides citation graphs and paper recommendations
- - Use for finding highly influential papers
-
- ### Specialized Biomedical Databases
-
- Use appropriate skills:
- - **ChEMBL**: `bioservices` skill for chemical bioactivity
- - **UniProt**: `gget` or `bioservices` skill for protein information
- - **KEGG**: `bioservices` skill for pathways and genes
- - **COSMIC**: `gget` skill for cancer mutations
- - **AlphaFold**: `gget alphafold` for protein structures
- - **PDB**: `gget` or direct API for experimental structures
-
- ### Citation Chaining
-
- Expand search via citation networks:
-
- 1. **Forward citations** (papers citing key papers):
- - Use Google Scholar "Cited by"
- - Use Semantic Scholar or OpenAlex APIs
- - Identifies newer research building on seminal work
-
- 2. **Backward citations** (references from key papers):
- - Extract references from included papers
- - Identify highly cited foundational work
- - Find papers cited by multiple included studies
-
- ## Citation Style Guide
-
- Detailed formatting guidelines are in `references/citation_styles.md`. Quick reference:
-
- ### APA (7th Edition)
- - In-text: (Smith et al., 2023)
- - Reference: Smith, J. D., Johnson, M. L., & Williams, K. R. (2023). Title. *Journal*, *22*(4), 301-318. https://doi.org/10.xxx/yyy
-
- ### Nature
- - In-text: Superscript numbers^1,2^
- - Reference: Smith, J. D., Johnson, M. L. & Williams, K. R. Title. *Nat. Rev. Drug Discov.* **22**, 301-318 (2023).
-
- ### Vancouver
- - In-text: Superscript numbers^1,2^
- - Reference: Smith JD, Johnson ML, Williams KR. Title. Nat Rev Drug Discov. 2023;22(4):301-18.
-
- **Always verify citations** with verify_citations.py before finalizing.
-
- ## Best Practices
-
- ### Search Strategy
- 1. **Use multiple databases** (minimum 3): Ensures comprehensive coverage
- 2. **Include preprint servers**: Captures latest unpublished findings
- 3. **Document everything**: Search strings, dates, result counts for reproducibility
- 4. **Test and refine**: Run pilot searches, review results, adjust search terms
-
- ### Screening and Selection
- 1. **Use clear criteria**: Document inclusion/exclusion criteria before screening
- 2. **Screen systematically**: Title → Abstract → Full text
- 3. **Document exclusions**: Record reasons for excluding studies
- 4. **Consider dual screening**: For systematic reviews, have two reviewers screen independently
-
- ### Synthesis
- 1. **Organize thematically**: Group by themes, NOT by individual studies
- 2. **Synthesize across studies**: Compare, contrast, identify patterns
- 3. **Be critical**: Evaluate quality and consistency of evidence
- 4. **Identify gaps**: Note what's missing or understudied
-
- ### Quality and Reproducibility
- 1. **Assess study quality**: Use appropriate quality assessment tools
- 2. **Verify all citations**: Run verify_citations.py script
- 3. **Document methodology**: Provide enough detail for others to reproduce
- 4. **Follow guidelines**: Use PRISMA for systematic reviews
-
- ### Writing
- 1. **Be objective**: Present evidence fairly, acknowledge limitations
- 2. **Be systematic**: Follow structured template
- 3. **Be specific**: Include numbers, statistics, effect sizes where available
- 4. **Be clear**: Use clear headings, logical flow, thematic organization
-
- ## Common Pitfalls to Avoid
-
- 1. **Single database search**: Misses relevant papers; always search multiple databases
- 2. **No search documentation**: Makes review irreproducible; document all searches
- 3. **Study-by-study summary**: Lacks synthesis; organize thematically instead
- 4. **Unverified citations**: Leads to errors; always run verify_citations.py
- 5. **Too broad search**: Yields thousands of irrelevant results; refine with specific terms
- 6. **Too narrow search**: Misses relevant papers; include synonyms and related terms
- 7. **Ignoring preprints**: Misses latest findings; include bioRxiv, medRxiv, arXiv
- 8. **No quality assessment**: Treats all evidence equally; assess and report quality
- 9. **Publication bias**: Only positive results published; note potential bias
- 10. **Outdated search**: Field evolves rapidly; clearly state search date
-
- ## Example Workflow
-
- Complete workflow for a biomedical literature review:
-
- ```bash
- # 1. Create review document from template
- cp assets/review_template.md crispr_sickle_cell_review.md
-
- # 2. Search multiple databases using appropriate skills
- # - Use gget skill for PubMed, bioRxiv
- # - Use direct API access for arXiv, Semantic Scholar
- # - Export results in JSON format
-
- # 3. Aggregate and process results
- python scripts/search_databases.py combined_results.json \
- --deduplicate \
- --rank citations \
- --year-start 2015 \
- --year-end 2024 \
- --format markdown \
- --output search_results.md \
- --summary
-
- # 4. Screen results and extract data
- # - Manually screen titles, abstracts, full texts
- # - Extract key data into the review document
- # - Organize by themes
-
- # 5. Write the review following template structure
- # - Introduction with clear objectives
- # - Detailed methodology section
- # - Results organized thematically
- # - Critical discussion
- # - Clear conclusions
-
- # 6. Verify all citations
- python scripts/verify_citations.py crispr_sickle_cell_review.md
-
- # Review the citation report
- cat crispr_sickle_cell_review_citation_report.json
-
- # Fix any failed citations and re-verify
- python scripts/verify_citations.py crispr_sickle_cell_review.md
-
- # 7. Generate professional PDF
- python scripts/generate_pdf.py crispr_sickle_cell_review.md \
- --citation-style nature \
- --output crispr_sickle_cell_review.pdf
-
- # 8. Review final PDF and markdown outputs
+ exec(open("<this skill's directory>/kernel.py").read())
```
-
- ## Integration with Other Skills
-
- This skill works seamlessly with other scientific skills:
-
- ### Database Access Skills
- - **gget**: PubMed, bioRxiv, COSMIC, AlphaFold, Ensembl, UniProt
- - **bioservices**: ChEMBL, KEGG, Reactome, UniProt, PubChem
- - **datacommons-client**: Demographics, economics, health statistics
-
- ### Analysis Skills
- - **pydeseq2**: RNA-seq differential expression (for methods sections)
- - **scanpy**: Single-cell analysis (for methods sections)
- - **anndata**: Single-cell data (for methods sections)
- - **biopython**: Sequence analysis (for background sections)
-
- ### Visualization Skills
- - **matplotlib**: Generate figures and plots for review
- - **seaborn**: Statistical visualizations
+ Nothing auto-loads it outside Claude Science. Then call the helpers directly — `verify_dois`, `crossref_lookup`, `search_openalex`, `expand_citations`, `extract_dois`, `style_pass`. If a helper name is not defined, you haven't exec'd `kernel.py`.
- ### Writing Skills
- - **brand-guidelines**: Apply institutional branding to PDF
- - **internal-comms**: Adapt review for different audiences
+ Configuration is via environment variables, not a host — no LLM key is involved:
+ - `OPENALEX_API_KEY` — required for the OpenAlex-backed steps (`search_openalex`, `expand_citations`); free at https://openalex.org/settings/api.
+ - `HOST_USER_EMAIL` — optional contact email for the CrossRef/doi.org polite pool (falls back to `git config user.email`; never sent to OpenAlex).
- ## Resources
+ ## Read the request for what it's actually asking
- ### Bundled Resources
+ "What's the paper for X" wants one or two specific citations; "what's the evidence on X" wants a synthesis; "compare A and B" wants a comparison, not two adjacent summaries; "where are the gaps" wants the gaps, with the survey as supporting material. A two-word lay query wants you to choose the scope a domain expert would default to and say so up front — "I'll take this as asking about human RCT evidence; the animal literature is separate." Ask a clarifier only when the answer would genuinely change what you do.
- **Scripts:**
- - `scripts/verify_citations.py`: Verify DOIs and generate formatted citations
- - `scripts/generate_pdf.py`: Convert markdown to professional PDF
- - `scripts/search_databases.py`: Process, deduplicate, and format search results
+ ## Grounding: retrieve first, then write
- **References:**
- - `references/citation_styles.md`: Detailed citation formatting guide (APA, Nature, Vancouver, Chicago, IEEE)
- - `references/database_strategies.md`: Comprehensive database search strategies
+ For broad-survey, where-are-the-gaps, and compare-methods requests, the first move is a literature sweep — `search_openalex` / `crossref_lookup` from `kernel.py`, plus your agent's own web search and any literature/data MCP tools it has connected (PubMed, Semantic Scholar, bioRxiv, ClinicalTrials.gov, …), using whichever fits the field — and the answer is built from what comes back. Your recall picks the framing; the retrieval picks the citations. A real survey usually carries on the order of fifteen or more distinct primary-paper DOIs, because each claim is anchored to the paper that established it; a handful of review citations is a reading list, not a synthesis. When the question is after a *specific* paper — "the original," "the seminal," a named trial or method — find the highly-cited primary publication that the follow-ups all cite, not a review or news piece about it.
- **Assets:**
- - `assets/review_template.md`: Complete literature review template with all sections
+ That applies even when you know the answer cold. Resolving the DOI for a paper you're certain of — the Transformer paper, a textbook constant, a landmark trial — is a one-second tool call, and it's the difference between a citation and a claim about a citation. Verification is something that happens in your tool trace, not a sentence in your reply. **A DOI you emit either resolves to a real paper that says what you claim, or it's a fabrication, and the difference is checkable in five seconds.** When you have author/year/journal but not the DOI, look it up via CrossRef or OpenAlex rather than pattern-completing one; when even those details are hazy, that's a search query, not a citation. For recent developments, contested findings, or anything you "remember" from near or after your knowledge cutoff, retrieval isn't optional.
- ### External Resources
+ After the first sweep, take the two or three most relevant hits and walk one step in each direction on the citation graph: pull their reference lists (backward) and their cited-by lists (forward), then fold anything new and on-topic into the set before you start writing. The seminal paper a field builds on surfaces in the backward step; the recent work that extends or contests your top hits surfaces in the forward step, and neither reliably appears in a keyword sweep alone. `expand_citations(doi)` in `kernel.py` returns both directions from OpenAlex.
- **Guidelines:**
- - PRISMA (Systematic Reviews): http://www.prisma-statement.org/
- - Cochrane Handbook: https://training.cochrane.org/handbook
- - AMSTAR 2 (Review Quality): https://amstar.ca/
+ ## Retractions and the null result
- **Tools:**
- - MeSH Browser: https://meshb.nlm.nih.gov/search
- - PubMed Advanced Search: https://pubmed.ncbi.nlm.nih.gov/advanced/
- - Boolean Search Guide: https://www.ncbi.nlm.nih.gov/books/NBK3827/
+ Sensational papers are findable because they were sensational, and some were later retracted or failed to replicate. CrossRef's `update-to` field flags retractions; for any high-profile or surprising finding, a check takes seconds. The related trap is the question whose honest answer is "no such paper exists": when someone asks for "the paper showing X" and X fell apart or was never established, the right answer names the claim, says what happened to it, and points to what the actual evidence shows — not the closest-matching citation.
- **Citation Styles:**
- - APA Style: https://apastyle.apa.org/
- - Nature Portfolio: https://www.nature.com/nature-portfolio/editorial-policies/reporting-standards
- - NLM/Vancouver: https://www.nlm.nih.gov/bsd/uniform_requirements.html
+ ## Synthesis is comparison, not summary
- ## Dependencies
+ A list of papers with one-sentence summaries is a bibliography. The useful layer is on top: this finding replicated, that one didn't; these three agree on the effect but disagree on mechanism; this approach wins in setting A and that one in B; this 2015 result was superseded by this 2022 one. Organize by theme or question, not by paper. For compare-methods requests the deliverable is the trade-off and a recommendation, not two summaries.
- ### Required Python Packages
- ```bash
- pip install requests # For citation verification
- ```
+ ## Making the prose carry its weight
- ### Required System Tools
- ```bash
- # For PDF generation
- brew install pandoc # macOS
- apt-get install pandoc # Linux
+ A review paragraph earns its place by opening on *your* synthetic claim and then spending citations to back it, not by opening on a citation and reporting what it found. "Chen 2019 reported a 40% reduction; Park 2020 reported 35%" is two index cards. "The effect is real but modest, with pooled estimates clustering at 35-40% (Chen 2019; Park 2020)" is a review. The diagnostic: read only the first sentence of each paragraph in sequence; if they form your argument, you've written a synthesis; if they form a list of author names, you've written an annotated bibliography in paragraph costume.
- # For LaTeX (PDF generation)
- brew install --cask mactex # macOS
- apt-get install texlive-xetex # Linux
- ```
+ ## Write prose, not a bulleted bibliography
- Check dependencies:
- ```bash
- python scripts/generate_pdf.py --check-deps
- ```
+ The artifact should read like a section of a referee-grade review: paragraphs of connected argument, each making one claim and anchoring it with an inline citation, transitioning to the next. A page that is 80% bullet points is a reading list dressed up as a review — it tells the reader *that* papers exist, not what they collectively show. Reserve bullets for places a list is genuinely the right structure (a reference appendix, a head-to-head comparison table, an enumerated set of named methods); the synthesis itself is prose. If you find yourself starting consecutive lines with `- Author Year showed…`, that's a paragraph that hasn't been written yet.
- ## Summary
+ ## Calibrating to evidence
- This literature-review skill provides:
+ Say which findings are landmark and which are recent; flag preprints as preprints; note when older results were refined or overturned. Match confidence to evidence: a single-cohort finding is "one group reported X," a phase-3 RCT is stated plainly, a contested area gets both sides and an honest "unresolved." When the question contains a contested premise, engage the premise rather than building on it. When the request is about gaps, name specific ones and anchor each to what establishes it as a gap — "more research is needed" means you haven't found the actual hole.
- 1. **Systematic methodology** following academic best practices
- 2. **Multi-database integration** via existing scientific skills
- 3. **Citation verification** ensuring accuracy and credibility
- 4. **Professional output** in markdown and PDF formats
- 5. **Comprehensive guidance** covering the entire review process
- 6. **Quality assurance** with verification and validation tools
- 7. **Reproducibility** through detailed documentation requirements
+ ## Put the answer in the answer — and open on the substance
- Conduct thorough, rigorous literature reviews that meet academic standards and provide comprehensive synthesis of current knowledge in any domain.
+ The review — prose, citations, bottom line — belongs in your response text, where the reader sees it. For anything beyond a one-paper lookup, also write the full review to a markdown file so the reader has a clean, linkable document; the chat reply *is* the answer, and the file link goes at the end of it, never as a "Report saved:" opener. A reply that is *only* "I've saved a 14-paper review, all DOIs verified" is not an answer — write the substance in the chat, then link the file.
- ## Input Validation
+ The first sentence should be content the reader came for: the finding, the paper, the comparison. "Here's the synthesis," "All DOIs verified against CrossRef; no retraction flags," "I've verified every citation," "the report is current as of today" — these are process narration, and they don't belong in the chat reply *or* the saved artifact. Verification happens in your tool trace; the reader infers it from citations that resolve and claims that hold up. Do not write a "DOIs verified / no retractions" line anywhere in the output — not as an opener, not as a footer, not as an italic subtitle under the artifact title. The artifact body follows exactly the same rule as the chat reply: open on substance, close on substance. The register to aim for is a tight methods paragraph or a referee-grade mini-review: lead with the key result, lay out the supporting evidence with inline DOIs, address the obvious counterpoint or limitation, and close on what's still open. A reader who only gets your first paragraph should already have the answer.
- This skill accepts requests that match the documented purpose of `literature-review` and include enough context to complete the workflow safely.
+ Cite inline as a markdown link — `[Author Year](https://doi.org/10.xxxx/xxxxxx)` — so the rendered prose reads `(Author Year)` and the DOI rides in the href where a reader can click it and a regex can still extract it. If the DOI itself contains parentheses (some publishers use PII-style suffixes, e.g. `Sxxxx-xxxx(NN)nnnnn-n`), URL-encode them as `%28` and `%29` in the href so the markdown link does not break in simpler renderers. Do not use numbered `[1][2][3]` references (they desync the moment a paragraph is reordered), and reserve the raw `(DOI: 10.xxxx/...)` form for plain-text-only output; a sentence whose visible text is half identifier is not referee-grade prose. The author names in the link text come from the retrieved record, never from recall — keep `authors` riding alongside year and DOI in whatever working notes you draft from (the lookup helpers return it for exactly this reason; only degraded fallback paths go without). A note that carries the DOI but not the names leaves `(Author Year)` to be filled from memory at prose time, and memory supplies plausible names, not the paper's. `kernel.py` provides `verify_dois`, `crossref_lookup`, `search_openalex`, `expand_citations`, and `style_pass`. Section headings are short noun phrases (six words or fewer); when you have five or more topics, group them under two or three parent `##` headings and demote the rest to `###`. The goal is that a domain expert reading your review nods along, finds the papers they'd have named themselves, and doesn't catch you in a single claim you can't back.
- Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
+ ## Style pass before saving
- > `literature-review` only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
+ Before saving the artifact, run `style_pass(draft)` once on the full markdown. Fix the issues it lists in a single editing pass, then save; do not call it a second time and do not loop until it returns ok. It is a lint, not a gate, and a clean draft on the first pass is normal. It lives in this skill's `kernel.py` — load it via `exec` (see **Setup**); if `style_pass` is not defined, you haven't exec'd `kernel.py` yet.