diff --git a/docs/shell-split-harness.md b/docs/shell-split-harness.md new file mode 100644 index 00000000..2af75a0a --- /dev/null +++ b/docs/shell-split-harness.md @@ -0,0 +1,211 @@ +# Shell split verification: the harness + +Split out of `docs/shell-split-verification.md` when that file hit the 250-line +cap. That file covers **what makes a green split wrong**; this one covers the +tooling that catches it — the trace harness, its `--prefix` mode, the +regression fixtures, and two traps that have each cost a revert. + +Read `docs/shell-split-verification.md` first: the hazards there decide whether +the harness can prove anything about your target at all. + +### `trace_shell_split.sh` — the run, made routine + +`meta/scripts/trace_shell_split.sh` (added 2026-08-16) does the stubbed run for +you. It shadows ~30 mutating binaries (`sudo`, `pacman`, `systemctl`, `adb`, +`nft`, `mount`, `mkinitcpio`, `reboot`, …) with `PATH` stubs that record each +call and exit 0, runs the script, and prints a diffable trace: exit status, +stubbed calls in order with arguments, stdout, stderr. + +```bash +# baseline, in a detached worktree at the pre-split commit +meta/scripts/trace_shell_split.sh