# Flake rules ## Keep `flake.nix` as flake wiring ### Rule Add flake inputs in `flake.nix`. Put root flake output composition in `src/flake/default.nix`. Keep `src/flake` focused on composing public outputs from implementation files it imports. Put project-specific package implementation in that project's source tree, for example `src/xatu/package.nix`. Put NixOS and dotfiles implementation in `src/dotfiles`. Use `flake.nix` to pass inputs into the root flake implementation. ### Rationale This keeps dependency declarations separate from output logic.