# Pre15 Stage0 Execution Evidence ## Scope B01 establishes the only Pre15 runner interface and the evidence contract used by later gates, builds, directed tests, and smoke runs. It does not modify `src/**`, run the full feature suite, or convert host parser results into KLD runtime claims. ## Entrypoints ```sh timeout -k 10 240 tests/pre15/run-host.sh CASE timeout -k 30 1200 tests/pre15/run-build.sh zstdio0 timeout -k 30 1200 tests/pre15/run-build.sh zstdio1 timeout -k 30 1200 tests/pre15/run-qemu.sh CASE timeout -k 30 1500 tests/pre15/run-smoke.sh final-four-codec ``` Cases are discovered as exact files under `tests/pre15/cases/`; no shared case registry or historical result runner is consulted. `run-build.sh` reports a Linux invocation as `INFRA_BLOCKED` because `build.sh` requires a native FreeBSD host. ## Evidence Set `PRE15_EVIDENCE_ROOT` to a new evidence parent. Every invocation creates a unique run directory and never overwrites an earlier run. `manifest.json` conforms to `tests/pre15/EVIDENCE-SCHEMA.json` and records exact argv, DUT and source identities, worktree diff hash, fixture/module hashes, timestamps, deadline, exit code, target marker, status, cleanup, and raw-output paths. The only case statuses are `PASS`, `DUT_FAIL`, `RUNNER_FAIL`, `INFRA_BLOCKED`, `STOP`, and `NOT_RUN`. A nonzero guest command without a target marker is not a DUT failure. Cleanup failure always changes the run to `RUNNER_FAIL`. ## Ownership The runner records each owned process, path, forwarded port, SSH ControlMaster, guest mount, md unit, loaded EROFS KLD, and base image before use. Cleanup runs in reverse order and refuses to remove paths outside the current run directory. QEMU always writes to a fresh overlay. The base image is read-only input for the runner and its SHA256 must remain unchanged. Mount, md, and KLD cleanup applies only to resources explicitly registered by the current run. Kernel ZSTDIO is a kernel option, not an unloadable dependency. ## B01 Controls - `B01-runner-selftest`: known-good, target-marked DUT mismatch, pre-target command failure, SSH failure, QEMU early exit, timeout, owned PID cleanup, and deliberate cleanup-boundary failure. - `B01-g3-equivalence`: verifies the two archived script identities, compares their source/artifact inventories with the stable helper, and repeats stable generation. - `TC162-xattr-legacy`: verifies checksum-valid legacy primary, explicit plain, packed, and metabox prefix carriers plus exact single-field `EINTEGRITY` negatives. The authoritative B01 and initial gate verdicts are recorded under `planning/pre15/evidence/` after execution from a committed B01 tree.