phase1: complete — GH-runner 20-session calibration is trust anchor #2

Full-protocol calibration on a GitHub-hosted runner: A/A false-positive
0/20, injected-5%-slowdown detection 20/20, per-session CIs transcribed
with run provenance (artifacts expire; the md is the durable record).
With the local-container anchor and gates running end-to-end on both
targets in CI, all SPEC §5 Phase 1 exit criteria are met on free
infrastructure. CLAUDE.md phase line moved to Phase 2 (agent);
dedicated pinned hardware remains listed in docs/infra.md as the bar
for Phase 3/4 customer-facing case studies.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EcKPWQ3MQD4NdEHwar96u2
This commit is contained in:
Claude
2026-07-09 22:38:43 +00:00
parent dcfcb11bf7
commit 2813b0b96a
2 changed files with 63 additions and 1 deletions
@@ -0,0 +1,62 @@
# GitHub-hosted runner — full 20-session calibration (trust anchor #2)
**PASS.** A/A false-positive rate 0.000 (< 0.05 required);
injected-5%-slowdown detection rate 1.000 (≥ 0.95 required).
- Run: https://github.com/bdbrown4/peltier.io/actions/runs/29054680971
(job `runner-calibration`, 2026-07-09; JSON artifact
`runner-calibration`, artifact ID 8213166804 — artifacts expire, this
transcription is the durable record)
- Protocol: identical to the local anchor — 20 A/A sessions + 20
injection sessions, 30 measured + 3 warm-up runs/side, interleaved,
bootstrap 95% CI, per-session seeds. Workload: `head -c 3000000
/dev/urandom | sha256sum` (synthetic, CPU-bound). No CPU pinning
(shared VM; `taskset` target cores unknown a priori).
- Environment: GH-hosted `ubuntu-latest` VM, rustc 1.97.0.
Per-session results (from job log, verbatim):
```
session 1/20: A/A [------,------] fp=0; inj (see artifact) det=1
session 2/20: A/A [0.9949,1.0087] fp=0; inj [0.9404,0.9530] det=2
session 3/20: A/A [0.9956,1.0038] fp=0; inj [0.9469,0.9570] det=3
session 4/20: A/A [0.9938,1.0030] fp=0; inj [0.9489,0.9559] det=4
session 5/20: A/A [0.9963,1.0057] fp=0; inj [0.9462,0.9601] det=5
session 6/20: A/A [0.9934,1.0133] fp=0; inj [0.9463,0.9539] det=6
session 7/20: A/A [0.9971,1.0052] fp=0; inj [0.9480,0.9557] det=7
session 8/20: A/A [0.9963,1.0016] fp=0; inj [0.9478,0.9568] det=8
session 9/20: A/A [0.9943,1.0012] fp=0; inj [0.9454,0.9599] det=9
session 10/20: A/A [0.9950,1.0091] fp=0; inj [0.9503,0.9580] det=10
session 11/20: A/A [0.9990,1.0061] fp=0; inj [0.9473,0.9575] det=11
session 12/20: A/A [0.9955,1.0020] fp=0; inj [0.9515,0.9584] det=12
session 13/20: A/A [0.9976,1.0033] fp=0; inj [0.9493,0.9572] det=13
session 14/20: A/A [0.9944,1.0054] fp=0; inj [0.9462,0.9520] det=14
session 15/20: A/A [0.9911,0.9985] fp=0; inj [0.9470,0.9562] det=15
session 16/20: A/A [0.9947,1.0041] fp=0; inj [0.9460,0.9550] det=16
session 17/20: A/A [0.9972,1.0058] fp=0; inj [0.9489,0.9573] det=17
session 18/20: A/A [0.9951,1.0100] fp=0; inj [0.9489,0.9541] det=18
session 19/20: A/A [0.9945,1.0028] fp=0; inj [0.9475,0.9558] det=19
session 20/20: A/A [0.9925,1.0030] fp=0; inj [0.9488,0.9541] det=20
```
(Session 1's line scrolled past the retained log window; its outcome is
included in the summary counters and the JSON artifact.)
Reading: A/A CIs are ~±0.5% wide and 19/20 straddle 1.0 (session 15's
upper bound grazes 0.9985 — still a null verdict, since accept requires
lower bound ≥ 1.02). Every injection CI sits entirely below 1.0,
centered ~0.950 — the harness recovers the injected 5% almost exactly.
## Phase 1 exit criteria (SPEC §5) — status with this anchor
- A/A false-positive < 5%: met on two independent environments
(local container 0/20 with pinning; GH runner 0/20 without).
- Injected 5% regression caught ≥ 95%: 19/20 local, 20/20 GH runner.
- Gates end-to-end on 2 targets: comrak + tokei via `just gates`,
re-verified mechanically on every CI run (`target-gates-no-net`).
Caveat that stays attached: shared-VM placement varies; this evidence
trusts the *protocol* on this runner class, not any specific machine.
Every CI run re-calibrates, so drift is caught per-run. Dedicated
pinned hardware (docs/infra.md) remains the standard for Phase 3/4
customer-facing case studies.