Research Paper Processing
Processes an academic paper into the knowledge repository following the
sources → extract → analysis → studies → synthesis pipeline.
Produces confidence-annotated claims traceable to exact source sections.
Apply kb-conventions skill for annotation markers, KB directory layout,
frontmatter schema, and synthesis impact rules.
Prerequisites
Add to .claude/settings.json before running:
{
"permissions": {
"allow": [
"Bash(xberg *)",
"Bash(uvx marker-pdf *)",
"Bash(curl *)",
"Bash(mkdir *)",
"Bash(cp *)"
]
}
}
When to use
- Single paper (PDF or URL) to integrate into a topic KB
- Need structured analysis with traceable claims
- Want synthesis impact assessment against existing KB
For multiple sources requiring multi-axis extraction, use research-extraction instead.
Step 1 — Identify paper and topic
Ask the user (or infer from context):
- Paper source: URL or local PDF path
- Target topic directory within the knowledge base
- Create the topic directory if it does not exist (see
kb-conventionsfor layout)
Step 2 — Acquire the source
URL
mkdir -p "<topic>/sources/<slug>"
curl -L "<url>" -o "<topic>/sources/<slug>/original.pdf"
Skip if file already exists.
Local PDF
Copy to <topic>/sources/<slug>/original.pdf if not already there.
Create source.md
Create <topic>/sources/<slug>/source.md using the template from kb-conventions.
Fill title, type, summary, tags, status: draft, last_updated from what is already known (title page, URL, user context).
Leave tldr, claims, concepts empty — populated after Step 4.
Step 3 — Extract text
Use the pdf-parse skill to extract text. It selects the right tool automatically
(xberg for machine-readable, marker-pdf via uvx for scanned) and handles tool installation.
For academic papers, pass --use_llm --force_ocr to the pdf-parse skill for best quality on scanned sources.
Output goes to <topic>/sources/<slug>/extracted.md.
Step 4 — Produce a structured analysis
Read <topic>/sources/<slug>/extracted.md and any existing KB documents in
<topic>/synthesis/ and <topic>/analysis/. Write the analysis to
<topic>/analysis/<slug>.md using the frontmatter schema from kb-conventions.
Required sections
- Publication details — title, authors, year, venue, DOI
- Core thesis — main research question and central claim in 2–3 sentences
[DIRECT] - Key contributions — bullet list, each with
[DIRECT],[INFERRED], or[SPECULATIVE]citation - Mathematical foundations — equations, proofs, formal definitions (if present)
- Algorithms — pseudocode or step-by-step for all algorithms, each with section reference
- Architecture / system design — component relationships, diagrams described in prose
- Experimental results — datasets, metrics, key findings with
[DIRECT]citations - Limitations and open problems — what the paper acknowledges as unsolved
- Relation to existing KB — cross-reference with
<topic>/analysis/and<topic>/synthesis/; use blockquote markers> ⚠ DIVERGES FROM KB:or> ✦ NEW:where relevant - Glossary — domain-specific terms introduced, each with
[DIRECT]definition
Step 4b — Apply anti-slop
Apply the anti-slop skill to <topic>/analysis/<slug>.md before proceeding.
Do NOT modify citation markers, confidence annotations, blockquotes, or code blocks — prose quality only.
Step 4c — Update source.md
After completing the analysis, update <topic>/sources/<slug>/source.md:
tldr: one-sentence key takeaway derived from the Core thesis sectionstatus:active(wasdraft)concepts: slugs of any<topic>/synthesis/pages this source informssources: slugs of cited papers if this is a surveyconfidence: 0.8–1.0 if claims are verified[DIRECT]; 0.5–0.7 if mostly[INFERRED]; 0.1–0.4 if mostly[SPECULATIVE]claims: add 3–7 key claims from the analysis using the claim schema inkb-conventions
Step 5 — Update analysis index
See kb-conventions for index format. Add entry to <topic>/analysis/README.md;
create it if absent.
Step 6 — Assess synthesis impact
See kb-conventions for synthesis impact rules and divergence markers.
Output summary
✓ Source: <topic>/sources/<slug>/original.pdf
✓ Extract: <topic>/sources/<slug>/extracted.md
✓ Metadata: <topic>/sources/<slug>/source.md
✓ Analysis: <topic>/analysis/<slug>.md
✓ Index: <topic>/analysis/README.md
~ Synthesis: <NEW / DIVERGES / no impact>