Context
scripts/ contains 11 different build entry points:
build-all.sh
build-home-simple.sh
build-home-zig.sh
build-home.sh
build-initramfs.sh
build-legacy-boot.sh
build-pi-image.sh
build-pi3-minimal.sh
build-rpi5.sh
build-standalone.sh
build-unified.sh
build.shThese contradict each other (different paths, different compilers, different output layouts) and no contributor can tell which is the right one. The README points at build-rpi5.sh and kernel/zig build qemu; CLAUDE.md mentions a build-home-zig.sh flow; build.config is consumed by build-unified.sh. Nobody can say which is canonical.
Proposal
- Pick one orchestrator (
scripts/build.shis the obvious name) with flags:./scripts/build.sh --target=x86_64 # default ./scripts/build.sh --target=rpi5 ./scripts/build.sh --target=rpi3 ./scripts/build.sh --profile=minimal # from build.config ./scripts/build.sh --profile=desktop ./scripts/build.sh --run # build + boot in QEMU ./scripts/build.sh --iso # produce bootable ISO - Move the other 10 scripts to
scripts/legacy/with a deprecation banner, OR delete them outright if they're dead code - Update README to show only the new entry
- Update CLAUDE.md to point at the new entry
- CI uses the new entry exclusively (see separate CI issue)
Why this matters
- New contributors can't onboard when 11 scripts compete to be "the build"
- Reduces drift — all build paths share one config-resolution code path
- Required precondition for meaningful CI
Open questions
- Some of the legacy scripts (e.g.
build-pi-image.sh) might do things the unified one doesn't yet (image creation vs ELF). Need to enumerate the unique outputs each produces before deleting.