Skip to content

docs(adr): M4 entry — ADR-0012 nix bootstrap wiring + ADR-0013 per-user nix.conf#53

Merged
UnbreakableMJ merged 1 commit into
mainfrom
docs/m4-entry
Apr 28, 2026
Merged

docs(adr): M4 entry — ADR-0012 nix bootstrap wiring + ADR-0013 per-user nix.conf#53
UnbreakableMJ merged 1 commit into
mainfrom
docs/m4-entry

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Summary

  • ADR-0012: Wire LiveNixInstaller (M3 PR feat(userenv): NixInstaller trait + LiveNixInstaller + MockNixInstaller #45) from a dedicated pearlite bootstrap subcommand, not auto-phase-0 of apply. Apply halts at preflight with NIX_NOT_INSTALLED when nix is missing and any host has home_manager.enabled = true. Per-host expected SHA-256 lives in the Nickel host config under nix.installer.expected_sha256.
  • ADR-0013: ~/.config/nix/nix.conf stays Home Manager territory. Pearlite writes only the system-wide /etc/nix/nix.conf minimum (experimental-features = nix-command flakes) once during bootstrap. No [[managed.nix_conf]] block in state.toml; HM's nix.settings is the documented per-user surface.

Both ADRs answer the two architectural questions rolled forward from the M3 retrospective (docs/retrospectives/M3.md §"Actions for M4" items 1 and 3). Index updated in docs/adr/README.md. Mirrors the M2 entry pattern (PR #20: ADR-008 + ADR-009).

Test plan

  • scripts/ci/check-spdx.sh — markdown exempt; passes
  • pearlite-audit check . — 1 check, 0 violations
  • CI green on T1 / T2 / T3 (no code changes; verifying)

🤖 Generated with Claude Code

M4 entry ADRs answering the two architectural questions rolled
forward from the M3 retrospective:

- ADR-0012: Wire LiveNixInstaller from a dedicated `pearlite
  bootstrap` subcommand, not auto-phase-0 of `apply`. Apply halts
  at preflight with NIX_NOT_INSTALLED when nix is missing and any
  host needs Home Manager. Per-host SHA pin lives in the Nickel
  config under `nix.installer.expected_sha256`.
- ADR-0013: `~/.config/nix/nix.conf` stays HM territory; Pearlite
  writes only the system-wide `/etc/nix/nix.conf` minimum during
  bootstrap. No `[[managed.nix_conf]]` block; HM's `nix.settings`
  is the documented per-user surface.

Index updated in docs/adr/README.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ merged commit 8cd539c into main Apr 28, 2026
3 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the docs/m4-entry branch April 28, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant