diff --git a/docs/shell-split-recipes.md b/docs/shell-split-recipes.md index 6909909f..a7fac825 100644 --- a/docs/shell-split-recipes.md +++ b/docs/shell-split-recipes.md @@ -151,6 +151,19 @@ emitting three files. records why `settings.yml` is mode 640 and not 600 (at 600 the granian worker dies with EACCES) — that comment is worth more than the code around it. +### A seam inside a heredoc produces a file that will not parse + +The worst failure in this effort: the split of `enforce_vbox_hosts.sh` cut +between `cat <` before believing a split. +Same in `kcd2_dice_solver`: `search.ts` and `badgeValue.ts` are mutually +recursive across any seam. -Next: the remaining `main()`-shaped shell scripts, then -`kcd2_dice_solver` / `focus_owner` / `billsplit` (TS+Dart+Kotlin, untouched so -far), then the four prose files — zero execution risk. +**The pre-commit `shellcheck` hook lints each lib alone**, with no view of the +caller's globals — stricter than `shellcheck -x` on the entry, and the check +that decides whether a seam is real. Run it before believing a split. + +Next: the remaining `main()`-shaped shell scripts, then `focus_owner` / +`billsplit` / `reverse_survivors` (Kotlin+Dart+TS, untouched so far). ## The live worklist