Skip to main content

Automated research quality assurance — catches fabricated citations, overclaimed results, irreproducible numbers, and statistical misinterpretations.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rigorously-0.1.0.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rigorously-0.1.0-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file rigorously-0.1.0.tar.gz.

File metadata

  • Download URL: rigorously-0.1.0.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for rigorously-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fa149bd133dd9d882e0cd631a107fb1fe64f9b6a97269d30473733fa5432cb12
MD5 f566671807c8f0e6da8470e147702229
BLAKE2b-256 33bb0431cd2db6db1617b390dbb0ebbd0f3f66a650bdfededfa371249c92d861

See more details on using hashes here.

File details

Details for the file rigorously-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rigorously-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for rigorously-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31a1103004b617aefcb25a9e5345ad4cd184c67f5ba34ab63420068cf0ea5f10
MD5 0e8da162c9bf0301008446595dd12964
BLAKE2b-256 778f50a562f858a1288c9cb861740b6d406f07630f3d3c08fd515bc24531e6f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page