Local CLI that verifies exported MDR/IVDR dossiers: it extracts claim and citation candidates, links them to local sources, runs deterministic checkers, and writes an Evidence Trace Audit package. It does not author CER, SSCP, or other regulatory submissions. It is not a notified-body tool and is not legal advice.
Python 3.12 or newer. From a git clone:
Windows (PowerShell):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"Unix:
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Dependency ranges and development extras are declared in pyproject.toml,
which is also the installation source used by CI. The repository does not
claim a fully locked transitive environment.
locus verify fixtures/demo_dossier --out tmp/demoEquivalent runner with artifact-path listing:
python scripts/run_demo.py --out tmp/demoExpected summary line:
18 claims, 5 citations, 3 sources, 18 evidence links, 7 findings, 104 graph records
Equivalent without the console script: python -m locuslab.cli verify ....
Every run:
| File | Role |
|---|---|
claims.jsonl |
Claim candidates |
citations.jsonl |
Parsed citation markers |
sources.jsonl |
Local bibliography / source files |
evidence_links.jsonl |
Claim-to-source links |
findings.jsonl |
Verification findings (JSONL) |
findings.csv |
Verification findings (CSV) |
graph.jsonl |
Graph-compatible records |
audit_manifest.json |
Run metadata and artifact hashes |
report.json |
Machine-readable report |
findings.xlsx |
Reviewer working matrix |
report.docx |
Primary Evidence Trace Audit |
SSCP runs (filename or content routed as SSCP) also write
guidance_review.json and guidance_review.md. Those are source-backed
review aids, not verification findings. The SSCP rule pack, inventory, and derived
Markdown travel with the installed package (locuslab.resources).
In artifact schemas, eco_id is the historical field name for a deterministic
finding ID with the ECO-* prefix; it does not identify a separate finding type.
Not produced: extracted_claims.csv, adjudication.csv. Adjudication
columns on findings.xlsx are empty stubs.
python -m pytest
python -m ruff check src tests scripts
python -m mypy src/locuslabThe same three commands run on GitHub Actions (.github/workflows/ci.yml).
Default CI installs .[dev] only; it does not install the optional
guidance-extract extra.
Original code and project documentation: Apache-2.0.
EU/MDCG texts under docs/guidance/sources/ are not Apache-2.0.
See NOTICE and docs/THIRD_PARTY.md.