diff --git a/.claude/memory/rules.md b/.claude/memory/rules.md index 8d04c551..0dfb8692 100644 --- a/.claude/memory/rules.md +++ b/.claude/memory/rules.md @@ -84,3 +84,15 @@ v3 is not part of acceptance. There is no `make test`. Hosted `make` is compile - Never assume a running qemu is an orphan; one QEMU at a time; stop with SIGTERM to qemu itself. - Read the whole of v3's code before telling Bob what v3 does (rulings have been made on false readings). - Record corrections in place, dated, struck not deleted. + +## Learned 2026-11-11 (later the same day) +- **Acceptance runs in the FOREGROUND, one stage per command, check each result before the next.** I first ran + the stages with run_in_background and had to stop that run (its log, 20261111-170544, is kept). A stage takes + ~2 min here (amd64 build+boot), well inside the 10-minute foreground limit. Use `scripts/nightly.sh accept + ` then `scripts/nightly.sh test-32` -- the same stages the PR gate runs. +- **Every log and every CSV is evidence and is committed** (Bob: "We track all logs and all CSV's always as + evidence") -- passing, failing, stopped runs alike. Commit them together after the run, not mid-run. +- Empty DoE CSVs (0 bytes) are normal for v4 acceptance boots and are stored as empty files, not LFS pointers. +- Toolchain for acceptance: `make ARCH=amd64,aarch64,riscv64 init INIT_DOCS=0 INIT_PROOFS=0` (the repo's own). +- Clean tree: since 90c5c140 a build changes no tracked file (version.h untracked; BLOCK_MAP.md has no + timestamp). A *signed* build still rewrites BLOCK_MAP.md's Signed column -- open, Bob's call.