mcpField
L
lit-synthesis

lit-synthesis

github.com/nealcarenProductivity9153 installsUpdated 2w ago
Repository

About lit-synthesis

lit-synthesis is a research skill for sociologists who need to turn a local paper collection into an organized understanding of a field. It combines deep reading with theoretical, thematic, and debate mapping to support literature review writing.

Key features

  1. 01Audit corpus coverage and reading priorities
  2. 02Create structured notes for papers
  3. 03Map theories and citation lineages
  4. 04Cluster papers by themes and methods
  5. 05Identify debates and contribution gaps

Use cases

  1. 01Prepare a paper corpus before writing a literature review
  2. 02Compare theoretical traditions across a collection
  3. 03Organize findings and disagreements among studies

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nealcaren/social-data-analysis --skill lit-synthesis

After installing, type/lit-synthesisin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

mcp/
zotero-setup.md
phases/
phase0-corpus-audit.md
phase1-deep-reading.md
phase2-theoretical-mapping.md
phase3-thematic-clustering.md
phase4-debate-mapping.md
phase5-field-synthesis.md
scripts/
ingest.py
pdf-to-md.sh
rag.py
read-paper.sh
reading-agent-prompt.md

Details

From the project README

Literature Synthesis

Script paths below are relative to this skill's base directory ($SKILL_DIR), which Claude Code reports when the skill loads.

You help sociologists move from a corpus of papers to a deep understanding of a field. This is the analytical bridge between finding papers (lit-search) and writing your own literature review.

Project Integration

This skill reads from project.yaml when available:

# From project.yaml
paths:
  lit_synthesis: literature/synthesis/

Project type: This skill works for all project types. Literature synthesis is essential for qualitative, quantitative, and mixed methods research.

Updates progress.yaml when complete:

status:
  lit_synthesis: done
artifacts:
  field_synthesis: literature/synthesis/field-synthesis.md

Where This Fits

This skill picks up where lit-search leaves off:

SkillRoleKey Output
lit-searchFind papers via OpenAlexdatabase.json, references.bib, download checklist
lit-synthesisAnalyze & organize via local libraryfield-synthesis.md (with theoretical map, thematic clusters, debate map as sections)

Input: Papers as markdown files in library/ (converted from PDFs) and references.bib (from lit-search or user's existing library) Output: Organized understanding of the field to support your literature review

When to Use This Skill

Use this skill when users:

  • Have a corpus of papers (from lit-search or their own collection)
  • Need to understand the theoretical landscape before writing
  • Want to identify debates, tensions, and competing positions
  • Need to organize papers thematically or by theoretical tradition
  • Want deep reading notes, not just metadata extraction

Core Principles

  1. Read deeply, not widely: Better to understand 15 papers thoroughly than 50 superficially.

  2. Theoretical traditions matter: Papers exist within intellectual lineages. Map who cites whom and why.

  3. Debates are gold: Competing positions create space for contributions. Find the tensions.

  4. Organization serves writing: The clusters and maps you create should give your literature review its structure.

  5. Full text when possible: Abstracts tell you what; full text tells you how and why.

File Management

This skill uses git to track progress across phases. Before modifying any output file at a new phase:

  1. Stage and commit current state: git add [files] && git commit -m "lit-synthesis: Phase N complete"
  2. Then proceed with modifications.

Do NOT create version-suffixed copies (e.g., -v2, -final, -working). The git history serves as the version trail.


Local Library Integration

This skill reads papers from a local library of markdown-converted PDFs alongside references.bib for bibliographic metadata.

Expected Library Layout
project/
├── references.bib          # BibTeX from lit-search (or user's reference manager)
└── library/
    └── markdown/
        ├── smith2020-cultural-frames.md
        ├── jones2019-institutional.md
        └── ...             # One .md per paper, converted from PDF
Converting PDFs to Markdown

Use the ingest script to add papers to your library:

uv run "$SKILL_DIR"/scripts/ingest.py --file /path/to/paper.pdf

This converts the PDF to markdown in library/markdown/ and adds metadata to references.bib.

Semantic Search

For conceptual/semantic search across your library (e.g., finding passages about a concept even when exact terms differ), use the RAG index:

# Build/update the index (run after adding new papers)
uv run "$SKILL_DIR"/scripts/rag.py index

# Search by meaning
uv run "$SKILL_DIR"/scripts/rag.py search "cultural capital and educational attainment"

For exact keyword search, grep the markdown files directly:

grep -ril "cultural capital" library/markdown/
Using reading-agent Skill

For structured reading notes, use the bundled reading-agent skill:

/reading-agent

Paper: [Author Year - Title]
PDF: /path/to/paper.pdf
DOI: [doi]

The reading-agent skill handles PDF conversion and produces structured notes with:

  • Bibliographic info and identifiers
  • Core arguments and theoretical frameworks
  • Methods and empirical strategy
  • Key findings and contribution claims
  • Key quotes with page numbers
Batch Processing

For batch processing many papers:

  1. Convert PDFs: Run "$SKILL_DIR"/scripts/ingest.py --file on each paper
  2. Use reading-agent in batch mode:
    /reading-agent
    
    Batch process these papers:
    - /papers/smith2020.pdf (DOI: 10.1086/123456)
    - /papers/jones2019.pdf (OpenAlex: W2123456789)
    
  3. Collect outputs: Notes saved to reading-notes/ directory

Workflow Phases

Phase 0: Corpus Audit

Goal: Assess what's in the corpus and identify gaps.

Process:

  • Review the database from lit-search (or user's reference library)
  • Count papers by year, journal, author, theoretical tradition
  • Identify potential gaps in coverage
  • Prioritize which papers need deep reading vs. skimming

Output: Corpus audit results presented in conversation (statistics and reading priorities).

Pause: User confirms corpus coverage and reading priorities.


Phase 1: Deep Reading

Goal: Close read priority papers and extract analytical insights.

Process:

  • For each priority paper, read full text from library/markdown/
  • Extract: argument structure, theoretical framework, key concepts, methodological approach
  • Note: how theory is deployed, what evidence supports claims, limitations acknowledged
  • Create structured reading notes

Output: reading-notes/ directory with per-paper notes.

Pause: User reviews reading notes for key papers.


Phase 2: Theoretical Mapping

Goal: Identify intellectual traditions and lineages.

Process:

  • Identify which theoretical frameworks appear across papers
  • Use uv run "$SKILL_DIR"/scripts/rag.py search "theoretical concept" to find conceptually related passages across the library
  • Map citation relationships (who cites whom)
  • Note foundational texts and their descendants
  • Identify "camps" or schools of thought
  • Document key concepts and how they're used

Output: ## Theoretical Map section written into field-synthesis.md.

Pause: User reviews theoretical landscape.


Phase 3: Thematic Clustering

Goal: Organize papers by what they study and how.

Process:

  • Group papers by empirical focus (population, setting, phenomenon)
  • Group papers by theoretical approach
  • Group papers by methodological strategy
  • Identify papers that bridge multiple clusters
  • Note within-cluster consensus and variation

Output: ## Thematic Clusters section appended to field-synthesis.md.

Pause: User reviews clustering logic.


Phase 4: Debate Mapping

Goal: Identify tensions, disagreements, and competing positions.

Process:

  • Find explicit disagreements (papers that critique each other)
  • Find implicit tensions (contradictory findings or incompatible assumptions)
  • Identify unresolved questions the field is grappling with
  • Note where evidence is mixed or contested
  • Document the "state of the debate" for each tension

Output: ## Debate Map section appended to field-synthesis.md.

Pause: User reviews debates and selects focus areas.


Phase 5: Field Synthesis

Goal: Create comprehensive understanding ready for writing.

Process:

  • Synthesize across phases into coherent field understanding
  • Identify the most productive gaps for contribution
  • Outline candidate contributions and how each fits the user's project

Output: field-synthesis.md completed with integrated understanding and contribution opportunities (builds on sections added in Phases 2–4).


Output Files

lit-synthesis/
├── reading-notes/            # Phase 1: Per-paper notes (kept for batch production)
│   ├── smith2020-cultural-frames.md    # Filename: author-year-short-title
│   ├── jones2019-institutional.md
│   └── ...                             # Each file has identifier frontmatter
└── field-synthesis.md        # Comprehensive synthesis with sections for theoretical map, thematic clusters, debate map

Note: Filenames use author-year-short-title.md for human readability, but the frontmatter identifiers (citation_key, OpenAlex ID, DOI) are the authoritative way to match notes back to source papers. The citation_key is preferred because it enables [@citationKey] Pandoc citation syntax in downstream writing skills.

Reading Note Template

For each paper in Phase 1, notes must include identifier frontmatter to enable reliable retrieval across the workflow:

---
# Required: At least one unique identifier
citation_key: smithCulturalFrames2020  # Preferred: from lit-search database or references.bib
openalex_id: W2123456789    # From lit-search database
doi: 10.1086/123456         # Digital Object Identifier

# Recommended: Additional metadata for filtering
first_author: Smith
year: 2020
short_title: cultural-frames
---

# Smith 2020 - Cultural Frames

## Bibliographic Info
- Full citation: [from references.bib or database]
- DOI: [link]
- OpenAlex: https://openalex.org/W2123456789

## Core Argument
[1-2 sentences: What is the paper arguing?]

## Theoretical Framework
- Tradition: [e.g., Bourdieusian, institutionalist, interactionist]
- Key concepts used: [list]
- How theory is deployed: [description vs. extension vs. critique]

## Empirical Strategy
- Data: [what kind]
- Methods: [how analyzed]
- Sample: [who/what]

## Key Findings
1. [Finding 1]
2. [Finding 2]
3. [Finding 3]

## Contribution Claim
[What does the paper claim to contribute?]

## Limitations (as noted by authors)
- [Limitation 1]
- [Limitation 2]

## My Notes
[Your analytical observations, connections to other papers, questions raised]

## Key Quotes
> "[Quote 1]" (p. X)

> "[Quote 2]" (p. Y)

## Tags
[theoretical-tradition] [empirical-focus] [method] [relevant-to-my-project]

Model Recommendations

PhaseModelRationale
Phase 0: Corpus AuditSonnetData processing, statistics
Phase 1: Deep ReadingSonnetAnalytical reading of converted markdown
Phase 2: Theoretical MappingOpusPattern recognition, intellectual history
Phase 3: Thematic ClusteringSonnetOrganization, categorization
Phase 4: Debate MappingOpusTension identification, nuance
Phase 5: Field SynthesisOpusIntegration, strategic judgment

Starting the Synthesis

When the user is ready to begin:

  1. Identify the corpus:

    "Where are your papers? A folder of PDFs? A references.bib from lit-search? How many papers total?"

  2. Verify local library setup:

    "Do you have PDFs converted to markdown in library/markdown/? If not, we'll run "$SKILL_DIR"/scripts/ingest.py --file on each PDF before Phase 1."

  3. Set priorities:

    "Which papers are most central to your project? We'll deep-read those first and skim the rest."

  4. Clarify goals:

    "What are you trying to understand about this field? Are you looking for gaps, debates, or a specific theoretical tradition?"

  5. Proceed with Phase 0 to audit the corpus.

Key Reminders

  • Identifiers are essential: Every reading note must have at least one unique identifier (citation_key, OpenAlex ID, or DOI) in its frontmatter. Prefer citation_key when available.
  • Convert before reading: Run uv run "$SKILL_DIR"/scripts/ingest.py --file <pdf> for each PDF before Phase 1 begins
  • Quality over quantity: Deep reading 15 papers beats skimming 50
  • Debates are opportunities: Every tension you find is a potential contribution space

Comments

Markdown supported