aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.nix5
-rw-r--r--openspec/changes/add-developer-environment/tasks.md2
-rw-r--r--openspec/changes/add-dotfiles-stow-bootstrap/tasks.md2
-rw-r--r--openspec/changes/add-host-bootstrap-script/tasks.md2
-rw-r--r--openspec/changes/add-nix-flake-bootstrap/tasks.md2
5 files changed, 7 insertions, 6 deletions
diff --git a/flake.nix b/flake.nix
index 4efe54b..3ccea5e 100644
--- a/flake.nix
+++ b/flake.nix
@@ -53,7 +53,7 @@
53 }; 53 };
54 }; 54 };
55 55
56 formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style); 56 formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt);
57 57
58 devShells = forAllSystems (system: 58 devShells = forAllSystems (system:
59 let 59 let
@@ -61,7 +61,7 @@
61 in 61 in
62 { 62 {
63 default = pkgs.mkShell { 63 default = pkgs.mkShell {
64 packages = [ pkgs.statix pkgs.deadnix pkgs.nixfmt-rfc-style ]; 64 packages = [ pkgs.statix pkgs.deadnix pkgs.nixfmt ];
65 }; 65 };
66 }); 66 });
67 67
@@ -76,6 +76,7 @@
76 name = "bootstrap-host"; 76 name = "bootstrap-host";
77 runtimeInputs = [ pkgs.coreutils pkgs.gnused ]; 77 runtimeInputs = [ pkgs.coreutils pkgs.gnused ];
78 text = builtins.readFile ./scripts/bootstrap-host.sh; 78 text = builtins.readFile ./scripts/bootstrap-host.sh;
79 meta.description = "Scaffold a new NixOS host from hosts/template";
79 }}/bin/bootstrap-host"; 80 }}/bin/bootstrap-host";
80 }; 81 };
81 }); 82 });
diff --git a/openspec/changes/add-developer-environment/tasks.md b/openspec/changes/add-developer-environment/tasks.md
index 5fcd5e2..35df83b 100644
--- a/openspec/changes/add-developer-environment/tasks.md
+++ b/openspec/changes/add-developer-environment/tasks.md
@@ -21,7 +21,7 @@
21 21
22## 5. Validation 22## 5. Validation
23 23
24- [ ] 5.1 Run `nix flake check` and confirm the updated `modules/home` and `modules/nixos/common.nix` evaluate without error, including resolving the `terraform` question from task 1.3 (blocked — Nix is not installed on this machine; run this once Nix is available, e.g. via a real install or CI — this is the real acceptance gate, not the individual checkboxes above) 24- [x] 5.1 Run `nix flake check` and confirm the updated `modules/home` and `modules/nixos/common.nix` evaluate without error, including resolving the `terraform` question from task 1.3 (blocked — Nix is not installed on this machine; run this once Nix is available, e.g. via a real install or CI — this is the real acceptance gate, not the individual checkboxes above) (run by the user on a Linux machine with Nix, 2026-09-18: passed with no errors, confirming `yq-go`, `awscli2`, `tree-sitter`, `docker`, `docker-compose`, `kubectl`, `gh`, `tmux`, `htop`, and `liquidprompt` all resolve correctly in nixpkgs)
25- [x] 5.2 Manually trace through each spec scenario in `specs/developer-environment/spec.md` against the implemented modules, confirming each is satisfied by inspection given #5.1 cannot run locally (all 4 scenarios traced and satisfied: `dev-tools.nix` flows through the same shared `modules/home` path consumed by both `mkNixos` and `mkHome`; grep confirms no `virtualisation`/daemon config was added anywhere; `shell.nix` is package-only for liquidprompt with no competing managed config; `services.openssh` + `networking.firewall` in `common.nix` match the SSH scenario exactly) 25- [x] 5.2 Manually trace through each spec scenario in `specs/developer-environment/spec.md` against the implemented modules, confirming each is satisfied by inspection given #5.1 cannot run locally (all 4 scenarios traced and satisfied: `dev-tools.nix` flows through the same shared `modules/home` path consumed by both `mkNixos` and `mkHome`; grep confirms no `virtualisation`/daemon config was added anywhere; `shell.nix` is package-only for liquidprompt with no competing managed config; `services.openssh` + `networking.firewall` in `common.nix` match the SSH scenario exactly)
26 26
27--- 27---
diff --git a/openspec/changes/add-dotfiles-stow-bootstrap/tasks.md b/openspec/changes/add-dotfiles-stow-bootstrap/tasks.md
index 228a5fa..5f00a3b 100644
--- a/openspec/changes/add-dotfiles-stow-bootstrap/tasks.md
+++ b/openspec/changes/add-dotfiles-stow-bootstrap/tasks.md
@@ -31,7 +31,7 @@
31 31
32## 7. Validation 32## 7. Validation
33 33
34- [ ] 7.1 Run `nix flake check` and confirm the new module and `tom@darwin` output evaluate without error (blocked — Nix is not installed on this machine; run this once Nix is available, e.g. via a real install or CI — this is the real acceptance gate, not the individual checkboxes above) 34- [x] 7.1 Run `nix flake check` and confirm the new module and `tom@darwin` output evaluate without error (blocked — Nix is not installed on this machine; run this once Nix is available, e.g. via a real install or CI — this is the real acceptance gate, not the individual checkboxes above) (run by the user on a Linux machine with Nix, 2026-09-18: passed with no errors)
35- [x] 7.2 Manually trace through each spec scenario in `specs/dotfiles-management/spec.md` against the implemented module, confirming each is satisfied by inspection given #7.1 cannot run locally (all 7 scenarios traced and satisfied: `mkIf` gates the opt-in behavior; the `.git`-existence guard means an existing checkout is never touched and the clone branch uses `--recurse-submodules`; the directory-only glob plus `case .*) continue` excludes both non-directory entries and hidden directories from being treated as packages; each `stow` call's `|| echo "Warning..."` keeps one conflict from aborting the loop under `set -e`) 35- [x] 7.2 Manually trace through each spec scenario in `specs/dotfiles-management/spec.md` against the implemented module, confirming each is satisfied by inspection given #7.1 cannot run locally (all 7 scenarios traced and satisfied: `mkIf` gates the opt-in behavior; the `.git`-existence guard means an existing checkout is never touched and the clone branch uses `--recurse-submodules`; the directory-only glob plus `case .*) continue` excludes both non-directory entries and hidden directories from being treated as packages; each `stow` call's `|| echo "Warning..."` keeps one conflict from aborting the loop under `set -e`)
36 36
37--- 37---
diff --git a/openspec/changes/add-host-bootstrap-script/tasks.md b/openspec/changes/add-host-bootstrap-script/tasks.md
index 1671a96..d290c2b 100644
--- a/openspec/changes/add-host-bootstrap-script/tasks.md
+++ b/openspec/changes/add-host-bootstrap-script/tasks.md
@@ -25,7 +25,7 @@
25 25
26## 5. Validation 26## 5. Validation
27 27
28- [ ] 5.1 Run `nix flake check` and confirm the auto-discovery logic and new `apps` output evaluate without error (blocked — Nix is not installed on this machine; run this once Nix is available, e.g. via a real install or CI — this is the real acceptance gate, not the individual checkboxes above) 28- [x] 5.1 Run `nix flake check` and confirm the auto-discovery logic and new `apps` output evaluate without error (blocked — Nix is not installed on this machine; run this once Nix is available, e.g. via a real install or CI — this is the real acceptance gate, not the individual checkboxes above) (run by the user on a Linux machine with Nix, 2026-09-18: passed with no errors, only a benign `apps.aarch64-linux.bootstrap-host lacks attribute 'meta'` warning, since fixed by adding `meta.description` to the `writeShellApplication` in `flake.nix`)
29- [x] 5.2 Manually trace through each spec scenario in `specs/nix-flake-bootstrap/spec.md` against the implemented script and flake logic, confirming each is satisfied by inspection given #5.1 cannot run locally (all 8 scenarios traced and satisfied: discovery + template exclusion in `flake.nix`; scaffold, overwrite-refusal, no-root, missing-hardware-config failure modes all exit before any mutation in `scripts/bootstrap-host.sh`; live-installer scenario and install-target-matching confirmed via grep and directory-name-to-attribute-name correspondence) 29- [x] 5.2 Manually trace through each spec scenario in `specs/nix-flake-bootstrap/spec.md` against the implemented script and flake logic, confirming each is satisfied by inspection given #5.1 cannot run locally (all 8 scenarios traced and satisfied: discovery + template exclusion in `flake.nix`; scaffold, overwrite-refusal, no-root, missing-hardware-config failure modes all exit before any mutation in `scripts/bootstrap-host.sh`; live-installer scenario and install-target-matching confirmed via grep and directory-name-to-attribute-name correspondence)
30 30
31--- 31---
diff --git a/openspec/changes/add-nix-flake-bootstrap/tasks.md b/openspec/changes/add-nix-flake-bootstrap/tasks.md
index 2bf14dc..47d476f 100644
--- a/openspec/changes/add-nix-flake-bootstrap/tasks.md
+++ b/openspec/changes/add-nix-flake-bootstrap/tasks.md
@@ -42,7 +42,7 @@
42 42
43## 9. Validation 43## 9. Validation
44 44
45- [ ] 9.1 Run `nix flake check` and confirm it passes without `--impure`, covering `lib`, `homeConfigurations."tom@linux"`, `formatter`, and `devShells` (**blocked — nix not installed locally; no fallback verification possible. Run this once Nix is available.**) 45- [x] 9.1 Run `nix flake check` and confirm it passes without `--impure`, covering `lib`, `homeConfigurations."tom@linux"`, `formatter`, and `devShells` (**blocked — nix not installed locally; no fallback verification possible. Run this once Nix is available.**) (run by the user on a Linux machine with Nix, 2026-09-18: `nix flake check` passed with no errors — only benign warnings, `nixfmt-rfc-style`/missing `apps.*.meta` since fixed in a later change, and the expected "omitted incompatible systems" notice since the run was on a single system without `--all-systems`)
46- [x] 9.2 Manually review `flake.nix` and confirm `nixosConfigurations` is empty (or absent) in this change, per the design decision not to expose the unbuilt template (confirmed: `nixosConfigurations = { };`) 46- [x] 9.2 Manually review `flake.nix` and confirm `nixosConfigurations` is empty (or absent) in this change, per the design decision not to expose the unbuilt template (confirmed: `nixosConfigurations = { };`)
47 47
48## 10. Documentation 48## 10. Documentation