| name | nix-release |
| description | Execute Nix release validation for x-gateway by verifying flake reproducibility, lockfile integrity, and optional lock updates. |
| allowed-tools | Bash, Read, Write, Grep, Glob |
| user-invocable | true |
| argument-hint | ["validate-only|update-lock"] |
Nix Release Skill
Use this skill for release-time Nix validation and optional lock refresh.
Release Intent In This Repository
x-gateway defines a development shell and release-backed Darwin package
outputs in flake.nix.
Package outputs:
.#x-gateway-reader: installs only x-gateway-reader
.#x-gateway-writer: installs only x-gateway-writer
App outputs:
.#x-gateway-reader
.#x-gateway-writer
For this repository, Nix release scope means:
- Validate flake health (
nix flake check)
- Validate command-specific package builds (
nix build .#x-gateway-reader,
nix build .#x-gateway-writer)
- Validate command-specific apps (
nix run .#x-gateway-reader -- version,
nix run .#x-gateway-writer -- version)
- Validate dev shell reproducibility (
nix develop -c ...)
- Optionally update and commit
flake.lock when requested
Standard Validation Commands
nix flake show
nix flake check
nix build .#x-gateway-reader
nix build .#x-gateway-writer
nix run .#x-gateway-reader -- version
nix run .#x-gateway-writer -- version
nix develop -c task --version
Optional Lock Update Flow
Only when user requests dependency refresh:
nix flake update
git diff -- flake.lock
If updates are accepted, include flake.lock in the release commit before tagging.
Verification Checklist
nix flake check passes.
nix build .#x-gateway-reader and nix build .#x-gateway-writer pass on a
supported Darwin system.
nix run .#x-gateway-reader -- version and
nix run .#x-gateway-writer -- version report the release version.
nix develop successfully exposes the expected toolchain.
flake.lock diff is intentional and reviewed.
- No uncommitted lockfile drift remains at release tag time.
Failure Handling
- If
nix flake check fails, stop release and report exact failing derivation or check.
- If upstream input is unavailable/transient, retry once then report deterministic failure.
- If lock update introduces breakage, revert lock update and proceed with validate-only mode.