SKILL.md
Upgrade NixOS Release
Upgrade NixOS to a new stable release version. This involves updating version-pinned flake inputs and handling any breaking changes.
Process
- Check current state
``bash nixos-version nix --version ``
- Identify version-pinned inputs in flake/flake.nix that need updating:
- nixpkgs (e.g., nixos-25.05 → nixos-25.11) - home-manager (e.g., release-25.05 → release-25.11) - nix-darwin (e.g., nix-darwin-25.05 → nix-darwin-25.11) - stylix (e.g., release-25.05 → release-25.11)
- Research the target release
- Use web search to find the latest stable NixOS release - Check release notes for breaking changes relevant to this config - Verify release branches exist for home-manager, stylix, nix-darwin
- Identify breaking changes that affect this config:
- Scan modules for services/packages that might be affected - Key areas: Niri, Docker, Steam, Secure Boot, impermanence
- Create upgrade plan (use creating-plans skill):
- Save to overlay/issues/NN-nixos-<version>-upgrade/plan.md - Include exact file changes with line numbers - Include verification commands - Include rollback instructions
- Execute upgrade (when user is ready):
``bash # Edit flake/flake.nix with new versions just update # Update flake.lock just check # Build without applying (safe) just switch # Apply the upgrade ``
- Post-upgrade verification:
``bash nixos-version nix --version docker --version systemctl status docker tailscaled niri --version ``
What stays pinned (don't change)
lanzaboote- explicit version pin (e.g., v0.4.2), not tied to NixOS releasesnixpkgs-unstable- always tracks unstable- Inputs that
follownixpkgs - automatically updated
Rollback
Print out the instructions to:
sudo nixos-rebuild switch --rollback
git checkout flake/flake.nix flake/flake.lock
$ARGUMENTS