For developers
Run Ring 0 on your own system
The developer tiers are fixed public packs you run on your own memory system or agent harness. They take from seconds to 89 minutes, the slowest measured T2-lite run. Their results are signals for you, never certifications, and none is presented as predicting the full tier until that has been measured.
Every Ring 0 card carries the label "Ring 0 developer signal; not predictive of the full tier; never certifies".
The tiers
| Tier | Time | What you get | Ships in |
|---|---|---|---|
| T0 probe packs | seconds | Per-ability micro-tests with no model calls, for your own CI. | v0.1 · released |
| T1 CI smoke | minutes (budget) | A deterministic merge gate against your own previous accepted card, with a regression corpus. | v0.1 · released |
| T2-lite | 72-89 min per run, measured | A live smoke on T1's lives: only the probe answers come from the live pinned model. Returns a per-item flip list against your baseline, with a rerun command. | v0.2 · released |
| T2 live smoke | about an hour | A paired diff against your own previous version, with its uncertainty, at the pre-registered size. | v0.3 |
| T3 dev | about an hour | Public 20-session lives with a bundle budget chosen before the run. It moves to v0.4 if it is the last lane open in v0.3. | v0.3 |
| Fault finder | about 15 + 15 minutes | A failure shrunk to a minimal public life, with a one-command repro. | v0.4 |
Beyond Ring 0: Ring 1 reruns the public templates on fresh seeds at each release and at least monthly, so a gain is confirmed before it is claimed. Ring 2 checks transfer to a held-out template family each month and returns one bit per organisation: "transfer gap detected" or "no gap detected".
Measured loop time
From the accepted v0.1 run (2026-11-01)
T0: slowest pack 97 s on an idle host, against a 60 s budget.
T1: slowest run 89 min on an idle host, against a 10 min budget.
The run →T1 loop time, measured in v0.2
a T1 run takes 61-85 min on an idle bench host, against a 10 min budget; the shorter wait saved 19-24%, but its A/B could not decide whether T1's record changed (the digest it compared differs between any two commits), so it does not ship in v0.2.
The run →Start with T0
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
export PYTHONHASHSEED=0
bicentennial build --tier T0 --out build/ring0
mkdir -p runs
PACK_HASH="$(python -m bicentennial.packs.install install build/ring0/T0 runs/ring0-t0-packs)"
python -m bicentennial.packs.install verify runs/ring0-t0-packs --pack-hash "$PACK_HASH"
bicentennial t0 --system reference_store --pack all --packs runs/ring0-t0-packs --pack-hash "$PACK_HASH" --out runs/ring0-t0-reference_storeWhat a run gives you
A card per unit
Stable fields only, so a repeat on the same machine and pins gives the same card, apart from the gate verdict, which differs by design.
A gate against yourself
T1 compares your system with your own previous accepted card; the wiped-store control must fail.
A flip list (T2-lite)
Each item that changed against your baseline, with a rerun command and a repeat count.
The stage that broke
Each failure attributed to stored, retained, retrieved or used; a stage that cannot be observed reads unknown.
Guarded loops
The pack is installed read-only and the pinned scorer, harness and controls are hash-checked. An edit to any pinned artifact voids the run.
Coming in v0.3
Repro bundles, a repro command that checks every pin first, and a developer report with the noise band and the smallest detectable effect.