Skip to content
audit documentation

The verification docs, before you download anything

These are the exact documents shipped inside the signed bundle — published here so you can read the method first. The copies in the zip are covered by SHA256SUMS and the bundle signature; treat this page as a preview and the zip as the source of truth.

VERIFICATION.md

# How to independently verify this audit bundle

**Ryedore Predictive-Maintenance — Competitive Benchmark Audit** — generated 2026-09-01T13:39:43Z

You do NOT need Ryedore's source or trust to verify these numbers. Three levels:

## 1. File integrity (any machine, no dependencies)
```
sha256sum -c SHA256SUMS      # every file matches its recorded hash
```

## 2. Cryptographic authenticity (needs python + `cryptography`)
The whole bundle is signed with RSA-PSS/SHA-256 under the public key shipped here
as `license_public.pem` (MD5 fingerprint recorded in each report's integrity block).
```
python build_audit_bundle.py --verify manifest.json
# => ✓ BUNDLE AUTHENTIC — manifest_hash + files + signature all True
```
Each per-task report under `evidence/` is *also* independently signed:
```
python generate_benchmark_report.py --verify evidence/<name>.json
# => ✓ REPORT AUTHENTIC
```
Signatures are over a canonical JSON payload with the integrity block excluded, so
the numbers cannot be changed without breaking the signature.

## 3. Reproduce the numbers (needs the public datasets + harness)
The benchmark harness (`scripts/benchmark/`) is Apache-2.0, isolated (read-only over
`audit_results/`, writes only to its out-dir), uses **public datasets only**, and
reports multi-seed mean±std + ensemble (no single-seed cherry-picking). Provenance of
this run: `v2.0.0+harness:a244307a` · Python 3.10.18 · deps in `environment.json`.

## Trust summary
- **Tamper-evident:** SHA256SUMS + a signed manifest over every file.
- **Attributable:** one canonical signing key; public key included.
- **Honest:** losses and academic-SOTA gaps are disclosed in the report, not hidden.
- **Reproducible:** public data + open harness + pinned environment.

verify.sh

The one-command offline verifier shipped in the bundle root. Requires Python with the cryptography package.

#!/bin/bash
# Offline verification of this audit bundle. Requires python + cryptography.
cd "$(dirname "$0")"
python -c "import sys; sys.path.insert(0,'scripts/benchmark')" 2>/dev/null
python "$(git rev-parse --show-toplevel 2>/dev/null || echo .)/scripts/benchmark/build_audit_bundle.py" --verify manifest.json 2>/dev/null   || python - <<'PY'
import json,hashlib,base64,glob
m=json.load(open('manifest.json')); itg=m.pop('integrity',{})
canon=json.dumps(m,sort_keys=True,separators=(',',':')).encode()
print('manifest sha256:', hashlib.sha256(canon).hexdigest()==itg.get('sha256'))
ok=all(hashlib.sha256(open(f['path'],'rb').read()).hexdigest()==f['sha256'] for f in m['files'])
print('all files intact:', ok)
PY

What the bundle contains

  • · SHA256SUMS — a recorded hash for every file (integrity, level 1)
  • · manifest.json + manifest.sig + license_public.pem — the RSA-PSS/SHA-256 signature over the canonical manifest (authenticity, level 2)
  • · evidence/*.json — 14 per-task signed reports: remaining life, anomaly, classification, forecast, serving performance
  • · environment.json — Python version and pinned dependencies for the reproduction (level 3)
  • · the report in HTML and PDF, and this VERIFICATION.md

Download the bundle on Verify → · The four audit steps → · Security register → · Pricing →

Read enough? Run it.

The bundle, the public key and the re-run script are one click away — and nothing about them requires talking to us.