Skip to content
  • FDA AI-DSF lifecycle guidance: DRAFT (Jan 2025) — not for implementation
  • PCCP guidance: final (Dec 2024, updated Aug 2025)
  • FDA Statistical Guidance on diagnostic tests: final (2007)
  • Guidance map v1

Install ProofPack

  • Python 3.12. The engine is developed and tested on 3.12; proofpack doctor reports the interpreter it finds.
  • numpy. scipy is an optional extra used only by some statistics modules; import proofpack never requires it.
  • Write access to the directory you pass as --out. No document is written anywhere else.
  • No network. Nothing in the install or in a run needs one; see Egress and --offline.
Terminal window
python3.12 -m venv .venv
source .venv/bin/activate
pip install proofpack
proofpack doctor

proofpack doctor checks the interpreter version, the dependency set, the schema files and write access, and exits non-zero if anything it needs is missing. With --offline it also skips the network reachability line.

The reference platform for determinism is linux/amd64 on the published image. Two runs of the same input on that image produce an identical manifest hash.

Terminal window
docker run --rm -v "$PWD":/work ghcr.io/globalphoenix/proofpack:1.0 \
run --input /work/test.csv --criteria /work/criteria.yaml --offline

Docker Desktop on Windows is the usual first blocker on a first run: a corporate laptop often cannot run it, and a bind mount of a Windows path into the Linux image needs the path spelled the Docker way. If either applies, take the pip path instead — it is the primary install, not a fallback:

Terminal window
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install proofpack
proofpack doctor

The engine is the same package on every platform. The manifest hash of a pack rendered on Windows is compared against the reference platform within the documented tolerance rather than expected to be byte-identical; the T12 pack records which platform a run was made on.

Terminal window
proofpack --version
proofpack doctor --offline

doctor prints one row per check, [ok ] or [FAIL], and exits 0 only when every check it needs passes. Then go to the quickstart.

--offline opens zero sockets: no licence check, no telemetry, no narrative call. A continuous-integration job is specified to run the reference image under network capture on every release and publish the capture summary on the trust page; that job and the engine test that runs the suite with the network namespace removed do not exist yet, and the trust page says so.