원클릭으로
update-flake-inputs
Update flake inputs in a Nix flake repo with minimal churn, validate the result, and report exactly what changed.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Update flake inputs in a Nix flake repo with minimal churn, validate the result, and report exactly what changed.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | update-flake-inputs |
| description | Update flake inputs in a Nix flake repo with minimal churn, validate the result, and report exactly what changed. |
| compatibility | opencode |
| metadata | {"audience":"maintainers","repo":"nixos","workflow":"dependency-updates"} |
I update normal flake inputs that are managed through flake.nix and flake.lock.
I am for inputs that should be updated through the flake tooling itself, not for manual version pins, container tags, Firefox addon XPI URLs, or custom fetchers. Manual pins are maintained in the separate suderman/pins flake.
Use me when the user wants to:
flake.lockDo not use me for manual dependency pins handled by inputs.pins. Maintain those in ~/src/suderman/pins.
flake.lock.AGENTS.md and any repo-local docs that define the preferred validation flow.nix develop so repo wrappers and formatter are available.nixos and agenix wrappers for unattended automation unless their side effects are explicitly wanted.blueprint, so top-level directories map directly to flake outputs.hosts/<name>/configuration.nix defines nixosConfigurations.<name>.modules/nixos/; shared Home Manager modules live under modules/home/.modules/nixos/default/default.nix imports configs, options, and overlays; the matching Home Manager default imports configs and options.modules/{home,nixos}/desktop/; avoid assuming those modules apply to headless hosts.hosts/sim is the VM/test host used for simulation and installer work. It is a useful targeted validation host when update fallout hits virtualization or installer-related options.enableWayland, mkScript, mkApplication, and wrapWithFlags out of exported packages and checks; do not treat their absence from flake outputs as an update regression.Use two levels of validation and choose deliberately:
Use this unless the user explicitly asks for a full build-heavy validation.
nix develop -c nix eval .#nixosConfigurations.<relevant-host>.config.system.build.toplevel.outPathnix develop -c nix flake check --no-buildWhy:
Pick the most relevant host for the changed inputs and paths when possible:
hubiso for disko or hosts/iso/ changessim for hardware, hosts/sim/, or modules/nixos/hardware/ changescog for home-manager, stylix, hyprland, hyprland-plugins, nix-flatpak, modules/home/desktop/, modules/nixos/desktop/, or host user config changes unless another desktop host is clearly more relevantOnly run this when the user asks for stronger assurance, or when quick validation reveals an issue that requires realization/build confirmation.
nix develop -c nix build .#nixosConfigurations.<relevant-host>.config.system.build.toplevelnix develop -c nix flake checkWarn in the report when full validation was skipped because it may require substantial time, network, and store space in this repo.
Identify the requested scope.
flake.nix and flake.lock and choose a conservative update scope.Inspect the current state.
flake.nix and flake.lock.Perform the update.
flake.lock churn unless the user explicitly asked for a full refresh.nix develop -c nix flake lock --update-input <name> for targeted updates.nix develop -c nix flake update only when the user asked for a broad refresh.flake.nix first so you can call out intentionally pinned inputs like hyprland and hypr-dynamic-cursors separately from floating inputs.Review the diff.
Validate.
nix flake check --no-build.Report.
~/src/suderman/pins as part of a flake-input update unless the user explicitly includes that repo in scope.nix flake check as the default validation path in this repo.Use this structure in the final report:
<input>: <old> -> <new><input>: <reason><command>: passed/failed<command>: passed/failed/skipped