Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EXieurDfDSsDFdnSyusuWo
std79-doe LaTeX report: the fleet conservation invariant K
Read report/std79_doe_report.pdf — this supersedes ../analysis-20260912/
(the first, markdown-only pass) as the primary deliverable for this dataset.
That first pass was correctly flagged as inadequate: it never captured K
(the fleet-wide execution-heat conservation invariant) at all, and presented
results as a plain markdown page rather than in this project's established
LaTeX report style (see experiments/bare_metal/analysis/report/ for the
precedent this follows — same document class, packages, colour palette,
light/dark figure pairs, abstract-first structure with headline numbers).
What changed to make this possible
src/starkernel/doe_log.c's per-heartbeat-tick CSV gained two new columns
(fleet_k_q48, fleet_conserved — see the file's own header comment for
the full 20-column schema), requiring a kernel rebuild and a fresh DoE
campaign rerun on all three architectures
(../results-20260912-with-k/*-doe-raw.log + *-heartbeat.csv).
Pipeline (same shape as ../analysis-20260912/, extended for K)
correlate_doe.py <raw_log> <out_csv>— per architecture, against../results-20260912-with-k/{amd64,aarch64,riscv64}-doe-raw.log→{amd64,aarch64,riscv64}-correlated.csv(committed, not scratch).combine.py <in1.csv> [in2.csv ...] <out.csv>→combined.csv(775 rows). Decodesfleet_k_q48to a plain float and derivesfleet_conservedfromfleet_k_q48directly (using the same epsilonvm_physics_conserved()uses,capsule_vm_physics.c) rather than trusting the rawfleet_conservedfield — that field isdoe_log_tick_row()'s very last printed column, with nothing after it in the row to bound a regex match against, so a resumed trial digit can merge into it with zero separator on the wire (confirmed live: raw values like19223372036854775807where0/1was expected). See the script's own comment for the full explanation.analysis.R(run from this directory) — computes the K result (trivial: one distinct value,sd = 0, reported directly rather than via a formal test — see the report's own \S5.1 for why), per-cell architecture × identity summaries, and two-way ANOVA for 12 secondary metrics; writescharts/*.svg(light+dark pairs, matchingexperiments/bare_metal/analysis/analyse_bare_metal.R's theme convention) andtables/*.csv.- SVGs converted to PDF for LaTeX via
rsvg-convertintoreport/figures/. report/std79_doe_report.tex, hand-authored followingexperiments/bare_metal/analysis/report/bare_metal_doe_report.tex's structure and conventions; compiled withpdflatex(three passes for cross-references/TOC).
Headline result
K = 1.0000000000 (raw Q48.16 65536) on every one of 775
heartbeat-tick observations, sd(K) = 0, fleet_conserved = 1 on 100% of
rows, across all three architectures, nine identities, and three
replicates. Zero deviation. See the report for the full discussion,
including why this is also a free regression check on the two Stadium
subsystem fixes (FABRIC-3.md §XVI–XVII) that landed the same week.
Known limitation
Same interleaving-correlation caveat as ../analysis-20260912/: 1 of 27
run_id markers was unrecoverable on 2 of 3 architectures this run
(aarch64/riscv64: run_id 1 folded into run_id 0). fleet_k_q48 itself
is entirely unaffected by this — it's read directly at each tick regardless
of trial attribution, so the K result does not depend on trial labeling
being correct at all. See report §2.3/§6.4 for the full explanation.