Rigorously
Automated research quality assurance.
Rigorously catches the mistakes that slip past manual review — fabricated citations, overclaimed results, irreproducible numbers, and statistical misinterpretations. One command. Eight checks.
Tested on: Python CLI, Claude Code, pre-commit hooks · Compatible with: 16+ AI coding platforms via the Agent Skills standard and MCP
The Problem
Citation errors appear in 25% of published papers. "Statistically significant" gets misused in half of biomedical literature. Overclaimed results are the #1 reason reviewers reject computational papers. Manual review catches some of these. Rigorously catches the rest.
pip install rigorously
rigorously check paper.tex
What It Catches
| Check | What It Does |
|---|---|
| Citation Verification | Verifies every bib entry against CrossRef — DOIs, titles, authors, journals |
| Overclaim Detection | Flags "proven," "validated," "novel," "impossible" — suggests precise alternatives |
| Number Consistency | Cross-checks every number across abstract, body, tables, and captions |
| Parameter Auditing | Verifies code parameters match paper claims and docstrings |
| Statistical Auditing | Checks p-values, sample sizes, test appropriateness, power analysis |
| Evidence Mapping | Traces every claim to supporting code, data, or citation |
| Reproducibility | Runs referenced scripts, compares output to paper numbers |
| Adversarial Review | Compiles findings into a simulated hostile peer review |
Sample Output
$ rigorously check paper.tex
Overclaim Detection: 4 findings
┌──────────┬────────┬───────────────────────┬─────────────────────────────┐
│ CRITICAL │ L.56 │ validated │ Use "consistent with" unless│
│ │ │ │ quantitatively compared │
│ CRITICAL │ L.216 │ proof_language │ Models provide evidence, │
│ │ │ │ not proof │
│ WARNING │ L.502 │ confirms_demonstrates │ Models predict or suggest; │
│ │ │ │ they do not confirm │
│ INFO │ L.89 │ significant_ambiguous │ Specify p < X or use │
│ │ │ │ "substantial" │
└──────────┴────────┴───────────────────────┴─────────────────────────────┘
Citation Verification: 12 entries checked
✓ Best2010 — DOI resolves, metadata matches
✓ Karin2020 — DOI resolves, metadata matches
✗ LePoul2000 — Author mismatch: bib has "Bhatt" x4, PubMed has "Hanoun"
VERDICT: 4 critical issues. Fix before submission.
Platform Support
| Platform | Command |
|---|---|
| CLI | pip install rigorously |
| Claude Code | claude plugin install rigorously |
| Cursor | cursor plugin install rigorously |
| Codex CLI | codex plugin install rigorously |
| Kiro | Add power → rigorously |
| Windsurf | Add skill → rigorously |
| Continue.dev | Add MCP → rigorously |
| Aider | aider --read rigorously |
| Any MCP client | "command": "rigorously", "args": ["serve"] |
| Pre-commit | rigorously install-hook |
| CI/CD | rigorously check paper.tex |
How It Works
paper.tex + refs.bib
│
▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ Parse │───▶│ Extract │───▶│ Verify │
│ LaTeX/MD │ │ claims, │ │ against │
│ │ │ numbers, │ │ CrossRef,│
│ │ │ citations│ │ code, │
│ │ │ │ │ PubMed │
└─────────┘ └──────────┘ └──────────┘
│
▼
┌──────────┐
│ Report │
│ GO/NO-GO │
└──────────┘
MCP Server
For AI agent integration:
pip install "rigorously[mcp]"
python -m rigorous.mcp_server
Tools: check_paper, verify_citation, check_overclaims, audit_parameters, generate_report
Pre-commit Hook
rigorously install-hook
# Blocks commits with critical integrity issues in paper files
vs. Alternatives
| Feature | Rigorously | RefChecker | ACL pubcheck |
|---|---|---|---|
| Citation verification | ✓ | ✓ | ✗ |
| Overclaim detection | ✓ | ✗ | ✗ |
| Number consistency | ✓ | ✗ | ✗ |
| Parameter auditing | ✓ | ✗ | ✗ |
| Statistical auditing | ✓ | ✗ | ✗ |
| Evidence mapping | ✓ | ✗ | ✗ |
| Reproducibility | ✓ | ✗ | ✗ |
| Adversarial review | ✓ | ✗ | ✗ |
| AI agent integration | ✓ (16+ platforms) | ✗ | ✗ |
| Pre-commit hook | ✓ | ✗ | ✗ |
| Format checking | ✗ | ✗ | ✓ |
Origin
Built to catch real mistakes in real research. During development of a computational neuroscience paper, Rigorously caught 5 fabricated bibliography entries, 4 overclaimed results, and a parameter bug that was disguised as a scientific discovery — all before submission. It now runs on every commit.
Contributing
See CONTRIBUTING.md.
Citation
If you use Rigorously in your research workflow:
@software{rigorously,
author = {Miraj, Mansib},
title = {Rigorously: Automated Research Quality Assurance},
url = {https://github.com/XenResearch/rigorously},
year = {2026}
}
License
MIT
Metadata
Release files for rigorously 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rigorously-0.1.0.tar.gz | 37.0 kB | Without provenance | Details for rigorously-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rigorously-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for rigorously-0.1.0-py3-none-any.whl |
Total release size: 79.8 kB
Release files / rigorously-0.1.0.tar.gz
| Download URL | rigorously-0.1.0.tar.gz |
|---|---|
| Size | 37.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa149bd133dd9d882e0cd631a107fb1fe64f9b6a97269d30473733fa5432cb12
|
|
BLAKE2b-256 checksum How to use checksums |
33bb0431cd2db6db1617b390dbb0ebbd0f3f66a650bdfededfa371249c92d861
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / rigorously-0.1.0-py3-none-any.whl
| Download URL | rigorously-0.1.0-py3-none-any.whl |
|---|---|
| Size | 42.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31a1103004b617aefcb25a9e5345ad4cd184c67f5ba34ab63420068cf0ea5f10
|
|
BLAKE2b-256 checksum How to use checksums |
778f50a562f858a1288c9cb861740b6d406f07630f3d3c08fd515bc24531e6f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for rigorously 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.