Capture
$ sciproof capture --name baseline \
--input examples/experiment.py --input examples/params.json \
--output examples/out/results.json \
--output-numeric examples/out/convergence.csv --rtol 1e-9 \
-- python examples/experiment.py
Evidence written to baseline.sciproof.json
command exit code: 0
inputs recorded: 2
outputs recorded: 2
Note: stdout/stderr are stored in the manifest; check them for secrets before sharing it.
Inspect
$ sciproof inspect baseline.sciproof.json
SciProof manifest: baseline
format: sciproof.manifest 1.0
captured: 2026-10-17T18:47:12+00:00
Command (recorded, NOT executed by 'inspect'):
python examples/experiment.py
...
Outputs (2):
examples/out/results.json sha256:723d792e1b1ad975... 69 bytes compare: exact hash
examples/out/convergence.csv sha256:131eb2551a942bb9... 89 bytes compare: numeric (rtol=1e-09, atol=0.0)
Verify integrity
$ sciproof verify baseline.sciproof.json
[PASS] input examples/experiment.py: unchanged (SHA-256 matches)
[PASS] input examples/params.json: unchanged (SHA-256 matches)
[PASS] output examples/out/results.json: unchanged (SHA-256 matches)
[PASS] output examples/out/convergence.csv: unchanged (SHA-256 matches)
note: scope: artifact integrity only. The recorded command was NOT executed, so this does not show that the results can be reproduced.
basis: PASS because all 4 performed checks succeeded; this covers only the checks listed above, not what is under 'not checked'
not checked: reproducibility: the recorded command was not executed
not checked: scientific validity: a matching result is not shown to be correct
not checked: files that were not declared as inputs or outputs
not checked: authenticity: manifests are unsigned, so who produced this evidence is not verified
RESULT: PASS
Verify by re-execution
$ sciproof verify baseline.sciproof.json --rerun --yes
...
[PASS] exit code: 0, same as recorded
[PASS] rerun output examples/out/results.json: identical to the recorded output (exact SHA-256)
[PASS] rerun output examples/out/convergence.csv: numerically equivalent (rtol=1e-09, atol=0.0)
RESULT: PASS
A modified output is detected:
$ sciproof verify baseline.sciproof.json
[FAIL] output examples/out/results.json: modified since capture (SHA-256 differs)
basis: FAIL because 1 (output examples/out/results.json) check(s) contradict the evidence; one failed check is enough
...
RESULT: FAIL