Find research risks before they shape results.
RigorPath is a deterministic, local-first Python tool for inspecting the alignment of configured research datasets, codebooks, scripts, outputs, and manuscript artifacts. It is for researchers and research-support teams who want an auditable preflight check before analysis, validation, or publication.
It checks configured local files for duplicate records, credential-like patterns, privacy-risk headers, codebook structure, outcome–predictor overlap, simple analytical circularity, declared lineage, lifecycle completeness, and basic reproducibility evidence. It does not certify research validity, guarantee quality, eliminate bias, detect misconduct, replace peer review, or make autonomous scientific decisions.
All processing happens locally. RigorPath does not upload project files, use external services, or include an AI, LLM, or Brain component.
Use Python 3.12 or later from the repository root:
python -m pip install --no-build-isolation -e ".[dev]"
rigorpath --project examples/synthetic_project runThe bundled flawed project is intentional and exits with 2 (Must fix).
Inspect the generated reports/ folder inside that synthetic project. For the
local Body, run:
rigorpath app --project examples/synthetic_projectThe Body binds to loopback (127.0.0.1) and opens a local interface. It shows
priority actions, executed checks, skipped-check reasons, and an Export audit
package action. No account is required.
rigorpath --project PROJECT run inventories, profiles, checks, and writes
local reports. Other commands are init, inventory, profile, check,
report, and lint-docs. Run rigorpath --help for the command reference.
Lifecycle state is explicit in rigorpath.yaml; it is not inferred solely from
missing downstream artifacts. Common states include data preparation, human
coding pending, model validation pending, manuscript alignment pending, and
complete. A pending state can legitimately return Needs attention.
| Exit code | Meaning |
|---|---|
0 |
Ready — no automated blocking finding; not permission to publish. |
1 |
Needs attention — review, evidence, or lifecycle work remains. |
2 |
Must fix — a high-risk or confirmed-error finding was produced. |
3 |
Configuration or input error, not a research conclusion. |
4 |
I/O execution error, not a research conclusion. |
Start with rigorpath init, then declare the local input/output scope,
codebooks, keys, outcomes, predictors, and lifecycle stage in
rigorpath.yaml. See the configuration guide
and check reference.
Reports contain structured findings and execution records. The Body export is a local ZIP containing the rendered audit files and a redacted Body summary; it does not upload anything. Review report contents before sharing them.
Keep the configuration, input fingerprints, generated report package, and
Python environment together for a rerun. RigorPath records byte-level hashes;
these establish file identity, not scientific equivalence. Run the test suite
with python -m pytest.
The public examples are synthetic. Their expected outcomes are: flawed 2,
corrected 0, and human-coding-pending 1.
RigorPath is conservative and scope-driven. It does not execute arbitrary analysis code, infer hidden lineage, validate statistical methods, parse every document or spreadsheet feature, or determine legal/privacy compliance. See known limitations.
See CITATION.cff for SoftwareX-ready citation metadata,
LICENSE for the Apache License 2.0, and TRADEMARK.md
for separate brand-use guidance. The intended public repository is
chenla2026/rigorpath. RigorPath
is an unregistered brand owned by Nophea Sasaki; the Apache License covers the
included code and materials, while branding remains separately controlled.