by AOROM
Evidence-grounded AI research workflow for traceable claims, explicit uncertainty, causal-language checks, and reviewable JSON, Markdown, and Excel exports.
# Add to your Claude Code skills
git clone https://github.com/AOROM/paperreadingLast scanned: 8/13/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-13T05:41:08.039Z",
"npmAuditRan": true,
"pipAuditRan": false,
"promptInjectionRan": true
}paperreading is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by AOROM. Evidence-grounded AI research workflow for traceable claims, explicit uncertainty, causal-language checks, and reviewable JSON, Markdown, and Excel exports. It has 50 GitHub stars.
Yes. paperreading passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/AOROM/paperreading" and add it to your Claude Code skills directory (see the Installation section above).
paperreading is primarily written in Python. It is open-source under AOROM on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh paperreading against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
PaperReading is an alpha-stage Python core and Codex Skill for researchers and research-tool builders who need more than a fluent summary. Its schemas and validators preserve the chain from a source location to a claim, distinguish paper-reported content from later interpretation, guard causal language, and keep legacy research exports reviewable.
[!IMPORTANT] Current scope: v0.3.1 ingests UTF-8 text, Markdown, and text-based PDFs; replays staged extraction through an auditable JSON provider; enforces Draft → Review → Finalize; and verifies quotations with local fuzzy alignment. PDF support does not provide OCR, layout geometry, table reconstruction, or figure extraction. Hosted AI providers, batch jobs, SQLite search, cross-paper synthesis, and automatic gap discovery remain planned.
| Research requirement | PaperReading rule |
|---|---|
| Traceability | Claims reference de-duplicated evidence spans with source and locator metadata |
| Epistemic separation | Paper-reported content and researcher or AI-assisted analysis live in different objects |
| Inference discipline | Causal wording requires an eligible design and an explicit identification strategy |
| Explicit uncertainty | Verification returns verified, partial, or failed; migration never implies source checking |
| Reproducibility | Versioned schemas, run metadata, deterministic migrations, and inspectable local files preserve provenance |
| Compatibility | JSON, Markdown, legacy 13-field projection, and safe Excel append share one validated domain model |
These rules make five questions answerable: what the paper reported, where the supporting evidence lives, whether that locator was checked, what the design permits us to infer, and how the artifact changed over time.
Clone the repository, install the Core package, and validate the checked-in research package:
git clone https://github.com/AOROM/paperreading.git
cd paperreading
python -m pip install -e .
paperreading validate examples/paper-package.example.json
The fixture returns valid: true, evidence_count: 4, and finding_count: 1. It also returns four explicit EVIDENCE_NOT_VERIFIED warnings because the example was migrated from v0.2 and has not been checked against source content. That visible limitation is part of the contract, not hidden noise.
| If you want to… | Start here |
|---|---|
| Evaluate the artifact model | examples/paper-package.example.json and versioned schemas |
| Use the Codex workflow | skills/papers-reading-skill |
| Integrate from Python | Python API |
| Preserve an Excel workflow | Safe Excel compatibility |
| Understand research safeguards | Research Principles |
| Help shape the project | Roadmap and contribution guide |
| Capability | Status | Public contract |
|---|---|---|
| v0.3 research package | Implemented | PaperPackage separates document, grounded record, normalized evidence, analysis, audit, and run metadata |
| Source-aware ingestion | Implemented | Deterministic UTF-8 text/Markdown plus optional text-based PDF parsing behind one DocumentParser port |
| Extraction lifecycle | Implemented | Provider-neutral staged extraction, candidate/conflict preservation, explicit human review, and guarded finalization |
| Offline JSON provider | Implemented | Replays inspectable candidate and evidence output without a network call or hidden model dependency |
| Evidence graph | Implemented | Research objects reference de-duplicated EvidenceSpan nodes by stable ID |
| Evidence verification v2 | Implemented | Source, page, block, section, text-hash, and local-window fuzzy quotation checks with explicit states |
| v0.2 migration | Implemented | Deterministic PaperRecord → PaperPackage migration with visible provenance limitations |
| Analysis separation | Implemented | Researcher assessments and extensions live outside the source-grounded record |
| Causal-language guard | Implemented | Causal wording requires an eligible design and an explicit identification strategy |
| Export and compatibility | Implemented | Lossless JSON, reviewable Markdown, legacy 13-field projection, and safe Excel append |
| Local project storage | Implemented | Atomic, inspectable JSON files under .paperreading/; no database required |
| OCR / hosted LLM / PDF geometry / batch / search / synthesis | Planned | Sequenced in the roadmap and never presented as shipped |
flowchart LR
S["Text / Markdown / text-based PDF"] --> I["Parser adapters"]
I --> D["PaperDocument"]
D --> E["Staged provider extraction"]
E --> R["PaperDraft: candidates + conflicts"]
R --> H["Explicit human review"]
H --> P["Finalized PaperPackage"]
V2["v0.2 PaperRecord"] --> M["Deterministic migration"]
M --> P["v0.3 PaperPackage"]
D --> V["Evidence verifier"]
P --> V
V --> O{"Validated artifact"}
O --> J["JSON"]
O --> MD["Markdown"]
O --> L["Legacy 13-field projection"]
L --> X["Safe Excel exporter"]
The dependency direction is deliberate:
domain <- migrations / ingestion / verification / validation / projections
<- application use cases <- CLI / Skill / exporters / repositories
The domain layer imports no Typer, OpenPyXL, model SDK, storage adapter, or Codex runtime. File storage and Excel are replaceable adapters; the schemas remain the center of the system.
The normative Research Principles derive project decisions from academic validity, traceability, falsifiability, reproducibility, and research ethics. They take precedence over compatibility, convenience, performance, and growth metrics. A capability that cannot state its research object, evidence, inference boundary, uncertainty, and failure behavior is not ready to ship.
Install optional PDF and Excel adapters only when they are needed:
python -m pip install -e ".[pdf,excel]"
Initialize an inspectable local project:
paperreading init
This creates .paperreading/config.toml, a manifest, and separate directories for documents, drafts, records, analyses, audits, and cache data.
Exercise the source-ingestion contract with the synthetic Markdown fixture:
paperreading ingest examples/source.example.md
Run the complete, network-free Draft → Review → Finalize fixture:
paperreading ingest examples/source.example.md --output document.json
paperreading extract document.json \
--provider-manifest examples/extraction-manifest.example.json \
--output bundle.json
paperreading review bundle.json \
--decisions examples/review-decisions.example.json \
--output reviewed.json
paperreading finalize reviewed.json \
--document document.json \
--output package.json
paperreading verify package.json --document document.json --strict
paperreading read combines ingestion and extraction when a project repository is desired. The JSON provider is a deterministic replay adapter for evaluation and integration; it is not a hosted LLM. A future model adapter must implement the same provider contract and preserve candidate evidence, uncertainty, and run metadata.
Exercise deterministic v0.2 migration without mutating the project:
paperreading migrate examples/paper-record.example.json \
--output paper-package.json
Validate, export, and project either version:
paperreading validate examples/paper-record.example.json
paperreading validate examples/paper-package.example.json
paperreading export examples/paper-package.example.json review.md --format markdown
paperreading project examples/paper-package.example.json
Verify a package whose evidence IDs reference an ingested document:
paperreading verify package.json \
--document .paperreading/documents/<document-id>.json \
--strict \
--output verified-package.json
The extraction fixture is linked to the synthetic Markdown source and can be strictly verified end to end. It contains invented, non-citable materi