config/agents/skills/nix-darwin/SKILL.md
This skill should be used when the user asks about "nix-darwin options", "darwin-rebuild", "homebrew in nix-darwin", "macOS defaults in Nix", "launchd agents", "system.defaults", "nix-darwin services", or wants help writing, debugging, migrating, or reviewing nix-darwin configuration.
npx skillsauth add ayuukumakuma/dotfiles nix-darwinInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides focused guidance for reading, writing, debugging, and reviewing nix-darwin configurations. Use it for macOS system configuration expressed through Nix modules, especially when the task involves nix/nix-darwin/, flake.nix, darwin-rebuild, Homebrew management, launchd services, macOS defaults, users, Nix daemon settings, or system packages.
Start by locating the relevant local configuration before proposing changes:
nix/flake.nix, nix/local.nix, and the modules under nix/nix-darwin/.rg "option.name|service-name|package-name" nix.nixfmt <file> after editing Nix files.cd nix && nix flake check when feasible.When an option might have changed recently, verify against current official nix-darwin documentation or the pinned nix-darwin source in the flake before making a claim.
Reference files live in references/ as Markdown files with source metadata.
references/options-catalog.md - Curated option index from the nix-darwin 26.05 manual snapshot.references/configuration-patterns.md - Practical patterns for common macOS and Nix tasks.Use the search script for quick lookup:
python scripts/search_docs.py "homebrew cleanup"
python scripts/search_docs.py "system.defaults dock"
python scripts/search_docs.py "launchd agents" --json
Options:
--json - Output as JSON.--max-results N - Limit results, default 10.Prefer declarative options in this order:
homebrew.*, services.*, programs.*, system.defaults.*, users.*, and nix.settings.*.environment.systemPackages for packages available to all users.users.users.<name>.packages only when a package should be scoped to one user.system.activationScripts.* only when no specific nix-darwin option exists and the change must happen during activation.Avoid embedding secrets in Nix expressions. Paths to token files, private keys, or credentials should point to runtime files outside the Nix store.
Use these option families as first stops:
homebrew.* - Taps, formulae, casks, MAS apps, VS Code extensions, activation cleanup, and update behavior.system.defaults.* - macOS preferences for Dock, Finder, trackpad, keyboard, Control Center, screenshots, WindowManager, and global domains.services.* - launchd-managed daemons and agents such as AeroSpace, jankyborders, sketchybar, tailscale, openssh, postgresql, redis, and GitHub runners.programs.* - Shells, tmux, vim, direnv, GnuPG, SSH known hosts, and helper programs.launchd.* - Lower-level launchd agents, daemons, user agents, labels, paths, environment, and plist keys.nix.* and nixpkgs.* - Nix daemon behavior, caches, trusted users, sandboxing, GC, store optimization, flake registry, overlays, and platforms.security.* - Touch ID or Apple Watch sudo, sudoers, CA certificates, and sandbox profiles.networking.* and power.* - Hostnames, DNS, firewall, WireGuard, Wake-on-LAN, and sleep behavior.Treat these changes as higher risk:
homebrew.onActivation.cleanup = "uninstall" or "zap" can remove packages not listed in the generated Brewfile.security.pam.services.sudo_local.* changes affect sudo authentication.services.github-runners.*.tokenFile, CI tokens, SSH keys, and other secret paths must not enter the Nix store.system.patches can modify arbitrary paths under /; prefer narrower modules first.users.knownUsers and users.knownGroups mark accounts as managed by nix-darwin; avoid adding normal admin or system users without clear intent.nix.enable = false stops nix-darwin from managing the Nix installation and can break systems that rely on it.When answering configuration questions:
cd nix && nix flake check after Nix changes.For code changes in this repository, edit only the necessary module files and preserve unrelated local modifications.
tools
Search tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly and training weights contain obsolete patterns. Trigger immediately for: - UI/Layout: Modals, dialogs, popovers, Glassmorphism/backdrop-filters, anchor positioning, container queries, `:has()`, `:user-valid`. - Scroll/Motion: View Transitions, Scroll-driven animations, scroll parallax/reveals. - Performance: CWV (LCP, INP), content-visibility, Fetch Priority, image optimization. - System/APIs: Local filesystem access, WebUSB, WebSockets sync, WebAssembly widgets. - Frameworks: Adapting layout/styles in React, Vue, Angular. - General Frontend: Forms, autofill, advanced inputs, custom scrollbars, modern component states, etc. DO NOT trigger for: - Backend: Database SQL, ORMs, Express API routes. - Pipelines: CI/CD deployment, Docker, Actions. - Generic: Local scripts (Python/Go tools), ESLint, Git.
testing
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
development
Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
development
SPEC(仕様書)を実装しながら、SPEC からの逸脱・解釈・トレードオフ・残課題を `implementation-notes.html` に発生直後に追記し続けるスキル。Design decisions / Deviations / Tradeoffs / Open questions の 4 カテゴリで、判断が起きた瞬間に逐次記録するためバッチ更新はしない。ユーザーが SPEC ファイルや要件記述を渡して「実装して」「仕様書のとおり作って」と頼んだとき、特に後で第三者がレビューしたり未来の自分が再現できるよう実装側の判断を残したいときに使う。