Skip to content

Sessions

Building an SLR with Claude Code

Claude Code can help an SLR only when the project structure, prompts, and verification gates are explicit.

Agentic AI extends your reach across the literature, not your judgment of it.

Introduction: from cognitive overload to architectural oversight

Researchers conducting a Systematic Literature Review (SLR) often face cognitive overload. We identify, screen, and synthesize hundreds of articles, manage complex text datasets, and build arguments from existing literature. This process is time-consuming and can introduce inconsistency and error.

Work with Claude through an explicit workflow. Agree on the question, evidence, and checks so you can examine the analysis together.

This guide demonstrates one approach: transforming your SLR project into an AI-navigable "codebase" where you act as the architect, directing the work. It assumes you have completed Session 4: Agentic Workflows and installed Claude Code.

All paths below are relative to the opened project folder. @00_literature_files/... refers to a project file, not a filesystem-root directory.

Section 1: bootstrapping your SLR project

Step 1.1: launch and create project

Create your SLR project folder:

mkdir Systematic-Review-2025
cd Systematic-Review-2025
claude

Launching Claude Code does not create CLAUDE.md. The next prompt asks Claude to create it with your project structure. You can also run /init to generate a starting file, then review it. This file holds your SLR's working instructions.

Step 1.2: the one-prompt project setup

Copy this entire prompt into Claude Code to bootstrap your SLR structure:

This is a systematic literature review project. Create the following directory structure:

- 01_search_and_screening/
- 02_data_extraction/
- 03_synthesis_and_writing/
- 04_manuscript_drafts/
- 00_literature_files/

Then populate CLAUDE.md with this SLR protocol:

# Systematic Literature Review Protocol

## Core Task
Systematic review to understand [YOUR RESEARCH QUESTION]

## File Structure
- /01_search_and_screening/ - Search strings, screening logs
- /02_data_extraction/ - Extraction tables (CSV/Markdown)
- /03_synthesis_and_writing/ - Theme analysis, drafts
- /04_manuscript_drafts/ - Final paper sections
- /00_literature_files/ - Full-text papers (markdown)

## Inclusion Criteria
- [YOUR CRITERIA - e.g., Peer-reviewed, 2020-2025, empirical]
- [Geographic/industry scope]
- [Methodology requirements]

## Exclusion Criteria
- [YOUR CRITERIA - e.g., Non-English, opinion pieces, duplicates]

## Citation Style
APA 7th Edition

## Custom Commands
- /screen: Evaluate abstract against inclusion criteria
- /extract: Extract data from full-text paper
- /critique: Review writing for quality and style

Claude will create the folders and set up your CLAUDE.md.

Step 1.3: organize literature files

Put your curated papers from Zotero into 00_literature_files/:

Naming convention:

smith2024a.md
jones2024b.md
lee2023.md

Use Better BibTeX citation keys, matching Zotero. See Zotero Setup Guide.

Reference papers in Claude:

"Analyze @00_literature_files/smith2024a.md"
"Compare @00_literature_files/smith2024a.md and @00_literature_files/jones2024b.md"

Section 2: the three-tier agentic workflow

This framework helps you delegate SLR tasks so you can focus on the most important work.

Tier 1: automated assistant (mechanical tasks)

Goal: eliminate tedious, high-volume work.

Use cases:

Initial screening:

"Apply the /screen command to every abstract in
@01_search_and_screening/database_export_abstracts.txt
and output results to 01_search_and_screening/screening_results.csv"

Bibliography management:

"Read the exported Markdown @04_manuscript_drafts/full_draft.md
and the verified Zotero/Better BibTeX bibliography. Resolve each citation
key against that bibliography; list missing or ambiguous keys instead
of inventing entries. Format the verified entries in APA 7th edition."

Keyword counting:

"Search all files in @02_data_extraction/ and count
occurrences of: 'scalability', 'scaling', 'growth'"

Tier 2: working partner (structured tasks)

Goal: accelerate structured content creation.

Use cases:

Data extraction:

"Run /extract on @00_literature_files/smith2024a.md
and append results to @02_data_extraction/master_extraction_table.md"

Drafting thematic sections:

"Using data in @02_data_extraction/master_extraction_table.md,
draft a 'Emerging Themes' section. Synthesize findings across
studies and identify patterns."

PRISMA flowchart:

"Reconcile the search, record, screening, retrieval and study-mapping
ledgers in @01_search_and_screening/ before drafting a PRISMA flowchart.
Keep records, reports and studies distinct. Stop on missing evidence."

Task tracking:

"Create a todo list for synthesizing these 5 papers on organizational learning:
- Identify common themes
- Extract methodological approaches
- Map theoretical frameworks
- Identify research gaps
- Draft synthesis section"

Tier 3: Socratic sparring partner (deep work)

Goal: sharpen your theoretical contribution.

Use cases:

Identifying research gaps:

"Based on all papers in @02_data_extraction/master_extraction_table.md,
what are the three most significant theoretical gaps? For each gap,
explain why it's important."

Note: see Coherence Fallacy for common failure modes.

Strengthening arguments:

"My main argument is [YOUR ARGUMENT]. Act as a skeptical reviewer
from [TARGET JOURNAL]. Formulate three powerful critiques based on
the evidence I've synthesized."

Future research avenues:

"Based on limitations across all papers, propose a research agenda
with three novel questions that address these gaps. Justify why each
represents a meaningful contribution."

Section 3: creating SLR-specific slash commands

3.1 screening command

Create .claude/commands/screen.md:

Evaluate this abstract against the inclusion criteria in @CLAUDE.md.

Input: $ARGUMENTS
Include the stable record ID, title, authors, year, and abstract. If an ID is missing, ask for it rather than inventing one.

## Screening Decision

Decision: [INCLUDE | EXCLUDE | UNCERTAIN]

Reason: [Specific criterion met/failed]

Confidence: [High | Medium | Low]

Notes: [Any boundary cases or uncertainties]

Return one quoted CSV row using these columns:
ID, Title, Authors, Year, Decision, Reason, Confidence
Preserve the input ID. Use UNCERTAIN when the abstract does not settle a criterion; send that record to human review. Escape quotes within a field by doubling them.

Usage:

/screen ID: S001; Title: Organizational scaling; Authors: not supplied; Year: 2023; Abstract: This paper examines organizational scaling in tech startups
using survey data from 500 companies across Europe and Asia between
2020-2023...

3.2 data extraction command

Create .claude/commands/extract.md:

Extract structured data from this paper:

Paper: $ARGUMENTS

## Extraction Template

| Field | Content |
|-------|---------|
| Stable record ID | Preserve the screening ID |
| Report ID and citation key | Use the reviewed report-to-study mapping and Zotero key |
| Source filename | Exact supplied Markdown file |
| Authors & Year | |
| Research Question | |
| Methodology | [Qual/Quant/Mixed] |
| Sample | [n=?, context] |
| Data Collection | |
| Analysis Approach | |
| Key Findings | [3-5 bullets] |
| Theoretical Contribution | |
| Limitations | |
| Future Research | |

For each substantive field, include its page/section locator in the supplied source. Write "not reported" when the source does not settle it; do not infer missing sample or findings. Extract only after a human has confirmed full-text inclusion; UNCERTAIN is not a final inclusion.

Append this table to @02_data_extraction/master_extraction_table.md

Usage:

/extract @00_literature_files/smith2024a.md

3.3 critique command

Create .claude/commands/critique.md:

Review this writing section for quality:

Section: $ARGUMENTS

## Quality Checklist

1. Logical Flow: Are arguments well-structured?
2. Evidence Strength: Are claims supported by citations?
3. APA 7th Compliance: Citations formatted correctly?
4. Clarity: Is language precise and academic?
5. Coherence: Do paragraphs connect logically?

Provide specific feedback with line references.

Section 4: the complete SLR workflow

Phase 1: search & screening (Weeks 1-2)

Step 1: document search strategy

"Create a search log in @01_search_and_screening/search_log.md
documenting:
- Databases used: Web of Science, Scopus, etc.
- Search strings and boolean operators
- Date ranges
- Total hits per database"

If the agent ran a search itself through OpenAlex, the request URL is the search string. Have it write that URL, the date, and the total count into the same log; that is what makes the search reproducible.

Step 2: screen abstracts

"Apply /screen to each abstract in
@01_search_and_screening/abstracts.txt
Output to 01_search_and_screening/screening_results.csv with columns:
ID, Title, Authors, Year, Decision, Reason, Confidence"

Step 3: maintain stage ledgers before counting

A screening CSV cannot reconstruct the whole PRISMA flow (opens in a new tab). Records, reports and studies are different units. One study may have several reports; an abstract decision does not prove that full text was retrieved or assessed.

Keep these project-relative records alongside the screening file:

File in 01_search_and_screening/Evidence it must retain
search_log.mdDatabase, query, date, search-run ID and returned count
record_ledger.csvStable record ID, source/search run, duplicate-of ID and any pre-screen removal reason
retrieval_ledger.csvRecord/report IDs, reports sought, retrieval outcome, full-text decision and exclusion reason
study_mapping.csvReport ID → study ID, checked by a reviewer; several reports can belong to one study
Using the search log, record ledger, screening results, retrieval ledger
and reviewed report-to-study mapping, reconcile counts at each PRISMA stage.
Keep records, reports and studies separate. Show duplicate removals,
reports not retrieved, full-text exclusions with reasons, included reports
and included studies. Leave UNCERTAIN cases unresolved for human review.

Stop and list missing evidence or inconsistent totals. Do not infer
unobserved stages from the screening CSV or fill a diagram with guessed counts.

Phase 2: data extraction (Weeks 3-4)

Step 1: extract from each included paper

For each report with human-confirmed full-text inclusion in the retrieval ledger:
/extract @00_literature_files/[filename]

Step 2: compile extraction table

"Combine all extraction outputs into a single master table
at @02_data_extraction/master_extraction_table.md"

Step 3: run quality check

"Review @02_data_extraction/master_extraction_table.md
for missing data, inconsistencies, or errors. Flag any papers
needing manual review."

Phase 3: synthesis & analysis (Weeks 5-8)

Step 1: conduct thematic analysis

"Analyze @02_data_extraction/master_extraction_table.md
and identify 5-7 major themes. For each theme, list:
- Papers that discuss it
- Key arguments/findings
- Points of agreement/disagreement"

Step 2: create methodological synthesis

"Create a methods summary table showing distribution of:
- Qualitative vs quantitative approaches
- Sample sizes and contexts
- Data collection methods
- Analysis techniques"

Step 3: perform gap analysis

"Based on all papers, identify:
- Methodological gaps
- Theoretical gaps
- Empirical/contextual gaps
- Temporal gaps

For each gap, explain significance and future research implications."

Phase 4: writing & refinement (Weeks 9-12)

Step 1: draft sections

"Using themes from @03_synthesis_and_writing/themes.md,
draft a literature review section. Structure:
- Introduction to theme
- Discussion of each paper's contribution
- Synthesis of consensus and contradictions
- Implications for research"

Step 2: run quality control

/critique @04_manuscript_drafts/literature_section_v1.md

Step 3: generate bibliography

"Extract all citations from @04_manuscript_drafts/full_draft.md
and resolve them against the reviewed Zotero/Better BibTeX bibliography.
Report missing keys; format only verified entries in APA 7th style."

Section 5: quality control & verification

5.1 common failure modes in SLR

Reference the Failure Museum for:

  • Citation confusion: AI inventing plausible citations
  • Context stripping: Missing nuances from papers
  • Coherence fallacy: Creating false consensus

5.2 verification checklist

After each AI-generated output:

  • Verify all citations exist in your Zotero library
  • Cross-check extracted data against original papers
  • Review for logical consistency
  • Check for hallucinated claims
  • Validate statistical information

5.3 human judgment gates

Critical checkpoints requiring human review:

  1. Inclusion decisions (borderline cases)
  2. Theme identification (theoretical framing)
  3. Gap analysis (novelty assessment)
  4. Theoretical contribution (intellectual merit)
  5. Final argument (coherence and originality)

Section 6: advanced SLR techniques

6.1 iterative screening

First pass - conservative:

/screen ID: S002; Title: [title]; Authors: [authors]; Year: [year]; Abstract: [abstract]
Decision: UNCERTAIN
→ Add to manual review queue

Second pass - human refinement: Review uncertain cases personally, then update screening criteria in CLAUDE.md

6.2 forward/backward citation tracking

Using OpenAlex from the agent:

"For each paper in @00_literature_files/, resolve its DOI to an
OpenAlex ID. Record unresolved DOIs rather than inventing matches.
Fetch referenced_works and citing works (filter=cites:) through cursor
exhaustion. Label edge direction and seed ID; deduplicate candidate IDs
and repeated edges. List candidates connected to at least three distinct
seeds, not three responses or pages, and screen them under our protocol."

See the OpenAlex guide for the key and the query language.

Using Research Rabbit exports:

"Compare our paper list in @00_literature_files/ with the paper records
exported from ResearchRabbit. Match by DOI or title and list records
not yet in our library. Do not infer citation edges from a paper list;
resolve those through OpenAlex if we need citation-path analysis."

6.3 meta-analysis preparation

Extract quantitative data:

"From all papers in @00_literature_files/ with quantitative results,
extract effect sizes, sample sizes, and statistical significance.
Format as CSV for meta-analysis."

Section 7: parallel agent workflows

7.1 multi-agent paper analysis

Analyze from multiple perspectives:

"Ask 3 agents to independently evaluate @00_literature_files/smith2024a.md:
- Agent 1: Assess methodology rigor
- Agent 2: Evaluate theoretical contribution
- Agent 3: Identify practical implications

Keep the stable record/report ID and each assessment’s evidence locators.
Synthesize the assessments, flag disagreements and leave final judgments to me."

7.2 parallel screening

Screen batches simultaneously:

"Split the abstracts in @01_search_and_screening/batch1.txt
into 3 groups. Ask an agent to screen each group in parallel
with /screen command. Preserve IDs and source references. Compile results
without overwriting another agent’s file. Leave UNCERTAIN cases for human review;
do not pass them into extraction as final inclusions."

Section 8: export & deliverables

8.1 PRISMA flowchart

"Reconcile the PRISMA counts from:
- @01_search_and_screening/search_log.md
- @01_search_and_screening/record_ledger.csv
- @01_search_and_screening/screening_results.csv
- @01_search_and_screening/retrieval_ledger.csv
- @01_search_and_screening/study_mapping.csv

Stop on missing evidence, unresolved cases or inconsistent totals.
Do not equate included reports with included studies. When reconciled,
output the stage counts as a Markdown table and a Mermaid diagram;
keep the reviewer-approved ledger revisions with the diagram."

8.2 extraction table export

"Convert @02_data_extraction/master_extraction_table.md
to CSV format for:
1. Import into Excel/R for analysis
2. Appendix for manuscript submission
3. Supplementary materials

Preserve one row per report with stable ID, citation key, source filename
and per-field evidence locators. Quote CSV fields and double embedded quotes.
Do not merge different reports solely because their author-year labels match."

8.3 manuscript draft compilation

"Compile these sections into a complete draft:
- @04_manuscript_drafts/01_introduction.md
- @04_manuscript_drafts/02_methods.md
- @04_manuscript_drafts/03_results.md
- @04_manuscript_drafts/04_discussion.md

Add section numbers and format headers. Resolve citations against the
reviewed bibliography file; report missing keys instead of generating sources."

Export to Word for final editing:

Use Zettlr for final formatting and citation management with @citekey references.

Section 9: ethical guidelines & academic integrity

9.1 transparency requirements

Document in your methods section:

### AI-Assisted Analysis

[ACTUAL TASKS] were assisted by [CLIENT, PROVIDER, MODEL/VERSION] on
[DATES], using [PROMPT/PROTOCOL REVISION]. [REVIEWER] checked [ACTUAL
COVERAGE AND PROCEDURE]; [UNCHECKED OR UNRESOLVED SCOPE] remains.
The retained prompts, inputs, decisions and verification records are
[ACTUAL LOCATION/AVAILABILITY]. Describe only checks that were performed.

9.2 what to automate vs control

Automate (Tier 1):

  • Initial abstract screening (with human verification)
  • Basic data extraction
  • Bibliography formatting
  • Keyword counting

Work with (Tier 2):

  • Thematic coding
  • Methodology comparison
  • Drafting synthesis sections

Human Only (Tier 3):

  • Final inclusion decisions (borderline cases)
  • Theoretical framing
  • Novel gap identification
  • Argument construction
  • Quality assessment of contributions

9.3 verification protocol

For every AI-assisted task:

  1. Document the prompt used
  2. Review outputs for hallucinations
  3. Verify citations against Zotero library
  4. Check logical consistency
  5. Maintain audit trail

Section 10: troubleshooting SLR workflows

Screening inconsistencies

Problem: Different screening decisions for similar abstracts

Solution:

  • Refine inclusion criteria in CLAUDE.md
  • Add edge case examples
  • Use the existing /screen UNCERTAIN state for borderline cases
  • Maintain manual review log

Extraction errors

Problem: Missing or incorrect data in extraction table

Solution:

  • Verify against original papers
  • Update /extract template with more specific instructions
  • Add validation checks: "Review extraction for [paper] against original"

Citation hallucinations

Problem: AI invents citations that don't exist

Solution:

Section 11: example: complete screening workflow

Step 1: Prepare abstracts file

# Export from database to text file
# Format: One record per line, with stable ID, title, authors, year, and abstract

Step 2: Screen abstracts in batches

"Process @01_search_and_screening/web_of_science_export.txt:

For each abstract:
1. Apply /screen command
2. Log decision with ID
3. Track exclusion reasons
4. Flag uncertain cases for manual review

Output to 01_search_and_screening/screening_results.csv with columns:
ID, Title, Authors, Year, Decision, Reason, Confidence"

Step 3: Review uncertain cases

"Show me all abstracts marked 'UNCERTAIN' in 01_search_and_screening/screening_results.csv
for manual review"

Step 4: Generate screening stats

"Analyze 01_search_and_screening/screening_results.csv:
- Total abstracts screened
- Inclusion rate (%)
- Top 3 exclusion reasons
- Uncertain cases requiring manual review

Format as summary table."

Section 12: integration with Research Memex tools

12.1 Zotero → Claude Code pipeline

Workflow:

  1. Find candidates through OpenAlex or Research Rabbit and collect them in Zotero (see Zotero Guide)
  2. Export to markdown via OCR (see OCR Guide)
  3. Move to 00_literature_files/
  4. Process with Claude Code

12.2 Claude Code → Obsidian pipeline

Export synthesis for knowledge base:

  1. Complete analysis in Claude Code
  2. Export synthesis notes to markdown
  3. Import to Obsidian vault
  4. Link with literature notes

See: Obsidian Setup Guide

12.3 Claude Code → Zettlr pipeline

Final manuscript preparation:

  1. Draft sections in Claude Code
  2. Export to 04_manuscript_drafts/ folder
  3. Open in Zettlr for citation formatting
  4. Use @citekeys from Better BibTeX
  5. Export to Word/PDF for submission

See: Zettlr Setup Guide

Section 13: case study: scaling literature SLR

The prompts below illustrate the course workflow. The screening and extraction record is fictional; it is not evidence about a published study.

Initial setup:

"This SLR examines organizational scaling and scalability.
Inclusion: Peer-reviewed, 2020-2025, empirical studies on
business scaling. Exclusion: Non-English, opinion pieces,
case studies <3 companies."

Screening sample:

/screen ID: S001; Title: Fictional scaling study; Authors: Example only;
Year: 2024; Abstract: A multi-method study describes scaling across
50 firms. The supplied abstract does not establish peer-review status.

→ UNCERTAIN: ask the reviewer to verify the missing eligibility evidence.

Extraction sample, only after the reviewer has resolved S001 and confirmed full-text inclusion in the retrieval ledger:

/extract @00_literature_files/example_s001.md

→ Generated structured table with RQ, methods, findings, contribution

Synthesis:

"Analyze all papers with 'scalability' construct.
Compare definitions across studies. Identify conceptual confusion
vs. conceptual clarity. Draft 1-page synthesis."

Checklist: SLR with Claude Code

By the end of this workflow, you should have:

  • Created SLR project structure (5 folders)
  • Written CLAUDE.md with SLR protocol
  • Created /screen, /extract, /critique slash commands
  • Screened abstracts with quality verification
  • Extracted data into master table
  • Conducted thematic synthesis
  • Generated PRISMA flowchart
  • Drafted literature review sections
  • Verified all AI outputs against original papers
  • Documented work with AI for the methods section
  • Maintained audit trail of prompts

Resources

SLR methodology

Research Memex integration

Tool integration

cite this page

Lin, X. (2026). Building an SLR with Claude Code. Research Memex. https://research-memex.org/docs/case-studies/systematic-reviews/claude-code-slr-workflow

@misc{docs-case-studies-systematic-reviews-claude-code-slr-workflow-2026,
  author = {Xule Lin},
  title = {Building an SLR with Claude Code},
  year = {2026},
  howpublished = {\url{https://research-memex.org/docs/case-studies/systematic-reviews/claude-code-slr-workflow}},
  note = {ORCID: 0000-0001-7885-4194}
}

one renderingthe source remains