一键导入
darwin-update
nix-darwin の flake update + switch を実行。キャッシュミスで重いソースビルドが発生するパッケージは自動で pin し、過去の pin はキャッシュが追いつけば自動解除する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
nix-darwin の flake update + switch を実行。キャッシュミスで重いソースビルドが発生するパッケージは自動で pin し、過去の pin はキャッシュが追いつけば自動解除する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
プロジェクトの用語一貫性チェック。diff・PR・実装計画に登場する用語(識別子・コメント・テストタイトル)を、リポジトリ別の用語集(glossary)と既存コードの語彙(inventory)に照らしてチェックし、新出概念の命名を確定して glossary を育てる。用語チェック・命名の相談・表記揺れの確認で発動。
Control herdr from inside it. Manage workspaces and tabs, split panes, spawn agents, read output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1).
Create, list, switch, or delete git worktrees for parallel branch work. Use when the user wants to work on multiple branches simultaneously.
GitHub に画像をアップロードし Markdown 画像リンクを返す。PR 作成や Issue 作成時に画像を添付したい場合に使用。
Commit changes by splitting into logical units. Defaults to Conventional Commits but adapts to the repo's existing format if consistently different. Auto-detects commit message language from git history.
Create a pull request. Follows PR templates if present. Validates checklist items via sub-agents before submitting.
| name | darwin-update |
| description | nix-darwin の flake update + switch を実行。キャッシュミスで重いソースビルドが発生するパッケージは自動で pin し、過去の pin はキャッシュが追いつけば自動解除する。 |
chezmoi dotfiles リポジトリの nix-darwin 環境を更新する skill。 ソースビルド回避のための pin 管理を全自動で行う。
~/.local/share/chezmoinix/flake.nixnix/profile ファイルに work または private が書かれているdarwin-switch / darwin-update レシピがある以下のステップを順番に実行する。各ステップで何をしているかユーザーに報告する。
nix/flake.nix を読み、nixpkgs-<pkg> パターンの input を探す。
各 pin の rev を控える(Step 4 で再 pin が必要な場合に使う)。
flake update 前の nixpkgs rev を取得する(新規 pin 時に使う):
python3 -c "
import json
lock = json.load(open('nix/flake.lock'))
key = lock['nodes']['root']['inputs']['nixpkgs']
print(lock['nodes'][key]['locked']['rev'])
"
nix/flake.nix の inputs から nixpkgs-<pkg> を削除nix/flake.nix の overlay から該当パッケージの差し替えを削除nix flake lock nix/ を実行(flake.nix から消えた input は自動的に lock からも除去される)nix flake update --flake nix/
PROFILE=$(cat nix/profile)
nix build "./nix#darwinConfigurations.${PROFILE}.system" --dry-run --accept-flake-config 2>&1
出力を分析する。will be built に列挙される derivation を以下に分類:
無視する derivation(毎回リビルドされるローカル設定系):
home-manager-*, activation-*, etc.drv, user-environmentdarwin-system-*, home-manager-path, home-manager-fileshome-manager-generation, *-fonts*, *hm_*system-applications, system-path, Brewfile重いソースビルド(pin 対象):
重いソースビルドがなければ Step 5 に進む。 (以前 pin されていたパッケージがここに現れなければ、キャッシュが追いついたので unpin 成功。)
pin 対象のパッケージごとに mise パターンで pin する。
pin に使う revision の選択:
# <pkg> はキャッシュ済み revision に pin してソースビルドを回避
nixpkgs-<pkg>.url = "github:nixos/nixpkgs/<rev>";
既存の overlay ブロック内に追加:
<pkg> = inputs.nixpkgs-<pkg>.legacyPackages.${prev.stdenv.hostPlatform.system}.<pkg>;
nix flake lock nix/
pin 後に再度 nix build --dry-run を実行して、重いソースビルドが解消されたか確認する。
まだ残っていれば、pre-update rev でキャッシュが効かない可能性がある。 その場合は既存 pin rev や、さらに古い revision を試す。
pin したことをユーザーに報告する。
sudo が必要なため、ユーザーにターミナルで実行してもらう:
! just darwin-switch
switch が成功したらユーザーに報告する。
pin の追加・解除で nix/flake.nix や nix/flake.lock に変更があればコミットする。
コミットメッセージの形式:
nix: flake update (pin: watchman, unpin: mise)
pin も unpin もなければ:
nix: flake update
nix/flake.nix を編集する際は既存のコードスタイル・コメントスタイルに合わせるnixpkgs.follows を付けない(キャッシュヒットのため意図的に独立させる)just darwin-switch 経由で実行する(sudo / HOME の設定が justfile に集約されているため)