Skip to main content

Rigorously

PyPI Python 3.10+ License: MIT

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)

Source distribution for rigorously 0.1.0
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)

Table of built distributions (wheels) for rigorously 0.1.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page