Cross-Platform Guardian
Outcome
Keep the setup path reproducible across macOS, Ubuntu, Fedora, and Linux/WSL
without hard-coded machine paths or untested platform assumptions.
Current Setup Boundary
bootstrap.sh is the supported entry point. It loads Nix, enters nix develop .#default, and runs uv run --locked python -m dotfiles_setup.
- macOS delegates missing-Nix installation to the Determinate package handoff.
- Linux and WSL require
./bootstrap.sh --install-nix --yes before the
bootstrapper runs the official Determinate installer.
- Python modules under
src/dotfiles_setup/ own profile, link, cleanup,
diagnostics, Rust, Git identity, and opt-in shell handoff behavior.
- The default install must not edit Bash or zsh startup files;
shell-handoff
is explicit.
Review Workflow
- Inspect
bootstrap.sh, the affected Python module, flake.nix, and the
matching pytest coverage before proposing a change.
- Check macOS and Linux/WSL behavior separately. Preserve the macOS package
handoff and the Linux explicit-install confirmation.
- Resolve HOME, XDG, CODEX, and platform paths through
paths.py. Keep the
managed destination inventory in links.py.
- Run
make test-pre, then the focused suite: make test-local for links,
make test-shell for handoff, and make test-docker for Ubuntu/Fedora
acceptance when the blast radius is cross-platform.
- Report platform evidence, skipped checks, and the rollback path. Nix package
regressions roll back with
nix profile rollback; managed links preserve
timestamped backups.
Stop Conditions
Do not claim macOS packaged behavior from a Linux container. Do not add a
second installer, restore retired shell setup scripts, or mutate user startup
files without the explicit shell-handoff request.
1---2name: cross-platform-guardian3description: Protect macOS, Ubuntu, Fedora, and Linux/WSL compatibility in this dotfiles repository. Use for portability reviews, Nix changes, bootstrap changes, and platform test failures.4---56# Cross-Platform Guardian78## Outcome910Keep the setup path reproducible across macOS, Ubuntu, Fedora, and Linux/WSL11without hard-coded machine paths or untested platform assumptions.1213## Current Setup Boundary1415- `bootstrap.sh` is the supported entry point. It loads Nix, enters `nix16 develop .#default`, and runs `uv run --locked python -m dotfiles_setup`.17- macOS delegates missing-Nix installation to the Determinate package handoff.18- Linux and WSL require `./bootstrap.sh --install-nix --yes` before the19 bootstrapper runs the official Determinate installer.20- Python modules under `src/dotfiles_setup/` own profile, link, cleanup,21 diagnostics, Rust, Git identity, and opt-in shell handoff behavior.22- The default install must not edit Bash or zsh startup files; `shell-handoff`23 is explicit.2425## Review Workflow26271. Inspect `bootstrap.sh`, the affected Python module, `flake.nix`, and the28 matching pytest coverage before proposing a change.292. Check macOS and Linux/WSL behavior separately. Preserve the macOS package30 handoff and the Linux explicit-install confirmation.313. Resolve HOME, XDG, CODEX, and platform paths through `paths.py`. Keep the32 managed destination inventory in `links.py`.334. Run `make test-pre`, then the focused suite: `make test-local` for links,34 `make test-shell` for handoff, and `make test-docker` for Ubuntu/Fedora35 acceptance when the blast radius is cross-platform.365. Report platform evidence, skipped checks, and the rollback path. Nix package37 regressions roll back with `nix profile rollback`; managed links preserve38 timestamped backups.3940## Stop Conditions4142Do not claim macOS packaged behavior from a Linux container. Do not add a43second installer, restore retired shell setup scripts, or mutate user startup44files without the explicit shell-handoff request.