# Format all code
treefmt
# Check and fix Nix code quality
statix fix
deadnix -e
# Build configurations
nix build .#nixosConfigurations.shulkerbox.config.system.build.isoImage
nix build .#shulkerbox-installer-signed
# Enter development shell
nix develop- Use
nixfmt-rfc-stylefor formatting (RFC 140) - Use
lib.mkForceinstead oflib.mkDefaultwhen overriding - Keep module imports alphabetical where possible
- Use proper indentation (2 spaces for nested Nix expressions)
- Host configs in
hosts/ - User home configs in
users/ - NixOS modules in
nixos/andmodules/ - Disk configs in
disks/ - Secrets in
secrets/(encrypted with SOPS)
- Never commit secrets or keys directly
- Use SOPS for secret management
- Keep secure boot keys in
secrets/secureboot/ - All system packages must go through flake inputs
- Use
lib.optionalsfor conditional features - Provide clear error messages in shell scripts
- Validate inputs before processing
- Validate ISO builds before deployment
- Test SOPS decryption on target hosts
- Verify secure boot key enrollment