By ctoth
Build annotated collections of research papers by retrieving PDFs from arXiv, DOIs, titles, or sci-hub; extract structured notes, claims, concepts, justifications from them; cross-reference citations, identify new leads, tag, audit directories, and integrate into propstore knowledge stores via CLI workflows.
Systematically adjudicate disagreements across a paper collection. Produces ruthless verdicts on who was wrong, what supersedes what, and what the best current understanding is. Organized by topic clusters with actionable replacement values for implementation.
Enrich an existing claims.yaml generated by generate_claims.py. Fixes page numbers, aligns concept references with the paper-local concepts.yaml inventory, converts SymPy expressions, adds variable bindings, conditions, notes, uncertainty, and missing claims.
Extract propositional claims from a paper directory, building claims.yaml from scratch using notes.md. Produces machine-readable claims conforming to the propstore claim schema. If a concepts.yaml exists (from register-concepts), uses canonical concept names.
Extract intra-paper justification structure from a paper's notes.md and claims.yaml. Produces justifications.yaml mapping premise sets to conclusions via typed inference rules. Requires claims to already exist.
Extract inter-claim stances from a paper collection. Reads each paper's notes.md and claims.yaml, identifies argumentative relationships between claims across papers, and writes standalone stances.yaml files. Requires claims to already exist.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A plugin for managing annotated research paper collections. Works with Claude Code, Codex CLI, and Gemini CLI.
This repo supports two distribution models:
.claude-plugin/marketplace.jsonscripts/install_skills.pyThis plugin provides skills for retrieving, reading, and annotating scientific papers into a structured, cross-referenced collection. Each paper gets:
| Skill | Description |
|---|---|
paper-retriever | Download a paper PDF from arxiv, DOI, ACL Anthology, or sci-hub |
paper-reader | Read a paper and extract structured notes (handles small/medium/large papers) |
paper-process | Combined retrieve + read in one step |
lint-paper | Audit paper directories for completeness and format compliance |
reconcile | Cross-reference a paper against the collection bidirectionally |
tag-papers | Add tags to untagged papers using their existing notes |
research | Web research on a topic, structured findings report |
extract-claims | Extract/enrich propositional claims from a paper into claims.yaml |
make-skill | Create new skills from prompt files |
Repository-level installer utilities live in scripts/. Paper-collection helper scripts live in plugins/research-papers/scripts/.
| Script | Description |
|---|---|
lint_skill_frontmatter.py | Parse every SKILL.md frontmatter block and fail on invalid YAML |
generate-paper-index.py | Rebuild papers/index.md and papers/tagged/ symlinks |
cross-reference-papers.py | Find cross-references between papers in the collection |
migrate-format.py | Convert legacy Tags: lines → YAML frontmatter, bold refs → wikilinks |
generate_claims.py | Parse notes.md and generate claims.yaml for a single paper |
batch_generate_claims.py | Generate claims.yaml for all papers in a directory |
bootstrap_concepts.py | Deduplicate and group concept names from claims files |
The claims pipeline extracts machine-readable propositional claims from paper notes. The typical workflow:
generate_claims.py — Parses notes.md (parameter tables, equations, key findings) and produces a draft claims.yaml marked with stage: draft. Fast, deterministic, no LLM needed.extract-claims skill — LLM-powered enrichment of the draft claims (adds context, fixes types, fills gaps). Can also create claims from scratch if no draft exists.batch_generate_claims.py — Runs step 1 across an entire papers directory. Use --skip-existing to avoid re-processing.bootstrap_concepts.py — Collects concept names from all claims files, deduplicates similar names, and outputs a unified concepts list.# Single paper: generate draft, then enrich with LLM
uv run plugins/research-papers/scripts/generate_claims.py papers/Author_2024_Title
$extract-claims papers/Author_2024_Title
# Batch: generate drafts for all papers missing claims.yaml
uv run plugins/research-papers/scripts/batch_generate_claims.py papers/ --skip-existing
# After batch: deduplicate concepts across all claims
uv run plugins/research-papers/scripts/bootstrap_concepts.py papers/ --output concepts.yaml
Use the repo itself as a Claude Code marketplace source. The marketplace manifest lives at .claude-plugin/marketplace.json and currently exposes the plugin ID research-papers@research-papers-marketplace.
git clone https://github.com/ctoth/research-papers-plugin
cd research-papers-plugin
claude plugin marketplace add . --scope user
claude plugin install research-papers@research-papers-marketplace --scope user
If your clone already exists somewhere else, replace . with that repo path.
Use the bundled installer when you want the skills installed into Codex and/or Gemini user skill directories:
uv run scripts/install_skills.py doctor
uv run scripts/install_skills.py install --platform codex --platform gemini
What the installer does:
plugins/*/skills/*~/.agents/skills~/.gemini/skillsUseful variants:
npx claudepluginhub ctoth/research-papers-plugin --plugin research-papersBehavioral protocol skills for Claude Code agents — foreman coordination, gauntlet pipeline, investigation debugging, and more. Integrates with ward for mechanical tool restriction enforcement.
A research infrastructure for AI agents. Search, read, and analyze papers from your local knowledge base while coding. Includes arXiv discovery, layered reading, ingestion, topic modeling, citation graphs, insights analytics, Office document inspection, scientific tool docs, and academic writing workflows. Requires Python 3.10+ and pip install.
Semi-automated research assistant for academic research and software development, with skills for literature review, experiments, analysis, writing, and project knowledge management
Automated research paper discovery, PDF monitoring, and AI-powered summarization for academic and technical literature
Specialized research analysis agents for critical thinking, evidence verification, synthesis, and parallel paper analysis
完整学术流水线 — 从 idea 到论文的全流程编排:状态机追踪、完整性验证、claim 校验
Karpathy-style LLM wiki for research papers. Ingest a URL / arXiv ID / DOI / PDF, write a structured summary into a local Obsidian vault, and maintain a finding-level knowledge graph via wikilinks + Dataview.