From dd84a45c5f791f6a5435da7c2cf1b0afea49f4d7 Mon Sep 17 00:00:00 2001 From: alexion Date: Wed, 16 Sep 2026 14:33:34 -0400 Subject: [PATCH] refactor(dotfiles): order default let bindings --- docs/TODO.md | 2 +- src/dotfiles/default.nix | 19 +++++++++---------- src/skills/nix-style/rules/let.md | 12 ++++++++++++ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/docs/TODO.md b/docs/TODO.md index daa860a..fab6e15 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -107,7 +107,7 @@ Review Nix files in entrypoint order: - [x] `flake.nix` -- [ ] `src/dotfiles/default.nix` +- [x] `src/dotfiles/default.nix` - [ ] `src/dotfiles/util.nix` - [ ] `src/dotfiles/formatter.nix` - [ ] `src/dotfiles/apps.nix` diff --git a/src/dotfiles/default.nix b/src/dotfiles/default.nix index bfc653c..d012438 100644 --- a/src/dotfiles/default.nix +++ b/src/dotfiles/default.nix @@ -19,6 +19,15 @@ let root = root + "/modules"; }; + specialArgs = { + inherit + inputs + self + util + ; + registry = registry.collected; + }; + guestModules = import ./guests.nix { inherit inputs @@ -30,16 +39,6 @@ let repositoryModules = modules; root = root + "/guests"; }; - - specialArgs = { - inherit - inputs - self - util - ; - registry = registry.collected; - }; - in { formatter.${system} = diff --git a/src/skills/nix-style/rules/let.md b/src/skills/nix-style/rules/let.md index 1eff1d2..8ebf157 100644 --- a/src/skills/nix-style/rules/let.md +++ b/src/skills/nix-style/rules/let.md @@ -14,3 +14,15 @@ Do not make an output attrset recursive only to reference sibling outputs. Shared convenience bindings hide dependency direction. Explicit references show which value owns a concept and which value consumes it. +## Order `let` bindings by dependency + +### Rule + +Define a `let` binding before other bindings that reference it. +Use forward references only for intentional recursion or fixed-point wiring. + +### Rationale + +Nix permits recursive `let` bindings. +Top-down dependency order makes ordinary wiring easier to read. +