Configuration for my NixOS based systems and Home Manager
nixos AGENTS.md
1.3 kB
Markdown

Noah's NixOS Agent Instructions #

Modules that are shared go into modules/ The common entrypoint is flake.nix

Host-specific configurations go in host-specific/ and can contain arbitrary organization of modules (keep it clean though).

Common operations go in the mkfile.

Always run nix check after finalizing functional changes.

When writing shell scripts, prefer plan9 rc scripts. If they should end up in PATH, put them in config/scripts/ otherwise put them next to the thing they modify or read.

If a shell script isn't sufficient, prefer nodejs scripts, but prefer shell scripts if they aren't too gnarly.

Use tsk for large multi-step task management.

Whenever writing text intended to be read by a human, use the simple-english skill.

Most hosts aggregate service logs into misaki's victorialogs instance, use that for diagnostics when possible.

Whenever a custom package, NixOS module, or home-manager module is necessary (because it doesn't exist in nixpkgs), put it in ngp-nur. It's usually cloned in ~/repos/ngp-nur but may need a git pull.

Trunk-based development, all commits go to master.

We use a split-DNS configuration, when adding DNS records put local/LAN records in the coredns config and public records in the porkbun dnscontrol config (both are in misaki's modules).