Nix naming conventions for files, variables, packages, and NixOS options based on nixpkgs official coding standards. Use when writing or reviewing Nix code.
From nix-tasukenpx claudepluginhub ncaq/konoka --plugin nix-tasukeThis skill uses the workspace's default tool permissions.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
nixpkgsの公式コーディング規約に基づきます。
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の属性名として頻出します。
原則camelCaseを使用します。
例:
environment.systemPackagessecurity.tpm2.tctiEnvironment.enable例外:
services.nix-servenix.settingsなど外部設定ファイルをマッピングするオプションは、その設定ファイルの命名規則に従う(nix.confはkebab-case)enableプレフィックスbooleanオプションにはenableプレフィックスを使用します。
enabled, isEnabled, useXxxなどは使用しません。
例:
services.nginx.enableprograms.git.enableデータを生成するヘルパー関数はmkプレフィックスを使用します。
例:
mkDefaultmkEnableOptionmkForcemkIfmkMergemkOptionmkOverrideデータ生成系ではない場合mkプレフィックスのないこともあります。
lib.types, lib.attrsets, lib.stringsなどのモジュールに属する関数はlowerCamelCaseです。
例:
concatStringsSepfilterAttrsmapAttrsoptionalStringoverlayの引数名はfinal/prevが現在の推奨です。
final: prev: {
myPackage = prev.myPackage.overrideAttrs (oldAttrs: { });
}
旧来のself/superは非推奨です。
selfはFlakeのselfと紛らわしいため避けてください。
Nixエコシステムで意味を持つ特別なファイル名があります。
default.nix: ディレクトリをインポートした際に自動的に読み込まれるファイルflake.lock: Flakeの依存関係のロックファイル、自動生成されますflake.nix: Flakeの定義ファイル