← ClaudeAtlas

naming-conventionlisted

Nix naming conventions for files, variables, packages, and NixOS options based on nixpkgs official coding standards. Use when writing or reviewing Nix code.
ncaq/konoka · ★ 3 · Code & Development · score 72
Install: claude install-skill ncaq/konoka
# Nix命名規則 [nixpkgsの公式コーディング規約](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md)に基づきます。 ## ファイル名・ディレクトリ名 kebab-caseを使用します。 例: `all-packages.nix`, `claude-code.nix` ## 変数名・属性名 | 種類 | スタイル | 例 | | ----------------------------- | ------------------ | -------------------------------------- | | 単純な変数・関数・設定値 | lowerCamelCase | `hostName`, `removePrefix` | | パッケージ・derivation | kebab-case | `github-mcp-server`, `claude-code-bin` | | Flake input等の外部ソース参照 | 参照先の名前に従う | `nixpkgs-unstable`, `treefmt-nix` | | システム識別子 | Nixの規定形式 | `x86_64-linux`, `aarch64-linux` | 単純な識別子はlowerCamelCaseを使用します。 パッケージやプログラムを示す変数は、 pnameと同様にkebab-caseを使用します。 2012年以降、 Nix言語では識別子にハイフンを使用できます。 Flake inputなど外部ソースを参照する変数は、 参照先のリポジトリ名やチャンネル名をそのまま使用します。 多くの場合はkebab-caseですが、 参照先の命名に従うのが原則です。 `.emacs.d` -> `dot-emacs`のような例外もあります。 システム識別子は`<arch>-<os>`の形式で、 `x86_64-linux`, `aarch64-linux`, `aarch64-darwin`などNixが規定する文字列をそのまま使用します。 Flake outputの`packages`や`devShells`の属性名として頻出します。 ## NixOSオプション 原則camelCaseを使用します。 例: - `environment.systemPackages` - `security.tpm2.tctiEnvironment.enable` 例外: - パッケージ名を参照する場合はkebab-case: `services.nix-serve` - `nix.settings`など外部設定ファイルをマッピングするオプションは、その設定ファイルの命名規則に従う(nix.confはkebab-case) ### booleanオプションの`enable`プレフィックス booleanオプションには`enable`プレフィックスを使用します。 `enabled`, `isEnabled`, `useXxx`などは使用しません。 例: - `services.nginx.enable`