huix-standardlisted
Install: claude install-skill rokokol/huix-standard-skill
# huix-standard
A repo in this family is Nix-first: the flake is the source of truth for what the tool needs and how it is configured. `install.sh` is the same mechanism for everyone else — not a second product, but a faithful projection of the flake onto `/usr/local`. This skill is the checklist and the parts box for building that projection the same way every time
Read the reference for the piece you are working on before writing code; copy templates from `templates/` (they mirror the target repo's paths, except `templates/github/`, which lands as `.github/`) and replace `@NAME@` / `@OWNER@` / `@REPO@` tokens
## Non-negotiable decisions
Apply these decisions consistently:
- **One source of version.** The rule, and everything about changelogs and releases, is the [versioning](https://github.com/rokokol/versioning-skill) skill's and is not restated here. What is a family fact: `nix/package.nix` reads the `VERSION` file with `lib.fileContents ../VERSION`, `install.sh -v|--version` prints it, and an installed copy carries it at `share/<name>/VERSION`. See [references/versioning.md](references/versioning.md)
- **Short flags.** Wherever a tool or installer accepts `--help`, `--version`, `--force`, it also accepts `-h`, `-v`, `-f`. Completions update in the same commit — the drift check enforces it
- **One flag per boolean.** Named so its presence flips the default (`--tailscale`, `--no-restore`); never a `--x`/`--no-x` pair. Consequence: install.sh is declarative — each run