feat(nix): install-nix.zsh + README 整備で一発セットアップを実現 (S12 / KISSA-32)#19
Merged
gotomts merged 3 commits intoMay 13, 2026
Merged
Conversation
Determinate Nix インストーラの薄ラッパー。新規 PC のブートストラップを README 手順 1 本に圧縮する目的で追加。 - 既存 Nix を検出して skip する idempotent 動作 - Full Disk Access の事前チェック (`sudo touch /etc/fstab`)。macOS 15 では FDA なしでは root でも /etc 書き込みが TCC で拒否されるため、 インストール途中で詰むのを防ぐ - Determinate flavor + 非対話モードで起動 (`--determinate --no-confirm`) - setup/util.zsh の message 関数を共用 (Phase B で setup/ 削除時に ローカル定義に置換予定) zsh -n で syntax 確認済み。実機動作確認は PR #18 のローカル検証時に行う。
旧 setup.zsh ベースの 3 ステップ手順から、Determinate Nix + nix-darwin + home-manager を前提とした 6 ステップ手順に全面書き換え。 - 「READMEを見て進めるだけでセットアップ完了」を実現するため、FDA 付与 から darwin-rebuild switch までを 1 本のフローに整理 - 詳細 (ロールバック、別 PC 展開、トラブルシュート) は nix/README.md に 逃がし、ルートはコンパクトに保つ - homebrew.onActivation.cleanup = "zap" によるパッケージ削除の警告を 明示 - 完了確認チェックリストを追加 (zsh / starship / yazi / claude / rtk / node / dart / brew / sudo / Touch ID の確認項目) - setup/ と Brewfile を「Phase B で削除予定のレガシー資産」として明記
ルート README に新規セットアップ手順を集約したのを受け、nix/README は 詳細・運用・トラブルシュートに役割を絞った。 - 初回セットアップ手順セクションを削除しルート README に委譲 - ディレクトリ構造に `modules/overlays/`, `scripts/install-nix.zsh`, `scripts/tests/inventory.bats` を追記して実態と一致させる - 別 PC 展開セクションを 2 シナリオ (m5mbp 再現 / 新ホスト追加) に再構成 - トラブルシュートに FDA 未付与エラー、Determinate 競合 (S14 で解消済)、 Homebrew zap、初回ブートストラップ等を追加 - 「現在の状態 (S2 完了時点)」を「Phase A の進捗」に書き換え、S1〜S14 と Linear issue ID (KISSA-21〜KISSA-46) を反映。S10 (KISSA-30) のみ 棚卸 triage 待ちで未完了として残す
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
新規 PC で「README を上から実行するだけで Nix 一元化された環境が再現できる」状態を作る S12 の実装。
KISSA-32 のスコープ拡張で計画されていた
nix/scripts/install-nix.zsh(Determinate Nix インストーラの薄ラッパー)を追加し、ルート README をその新スクリプトに沿った 6 ステップに全面書き換え。詳細・運用・トラブルシュートはnix/README.mdに役割分離。変更内容
1.
nix/scripts/install-nix.zsh(新規)Determinate Nix インストーラの薄ラッパー。
/nix/var/nix/daemon-socket/socketとcommand -v nixで検出して skip する idempotent 動作sudo touch /etc/fstab)。macOS 15 では FDA なしでは root でも /etc 書き込みが TCC で拒否されるため、インストール途中で詰むのを防ぐ--determinate --no-confirm)setup/util.zshの message 関数を共用 (Phase B で setup/ 削除時にローカル定義へ置換予定)set -eu+if ! cmd; thenパターンで早期 exit2. ルート
README.md(全面書き換え)旧
setup.zshベースの 3 ステップ手順から、Nix 一元化版の 6 ステップ手順に書き換え。install-nix.zsh→ flake check & build → switchhomebrew.onActivation.cleanup = \"zap\"によるパッケージ削除の警告を明示setup/とBrewfileを「Phase B で削除予定のレガシー資産」と明記3.
nix/README.md(役割整理)ルート README に新規セットアップを集約したのを受け、詳細・運用・トラブルシュートに役割を絞った。
modules/overlays/,scripts/install-nix.zsh,scripts/tests/を反映KISSA-32 受入条件との対応
nix/scripts/install-nix.zshが存在し、zsh -nで構文 OK--determinate --no-confirm)darwin-rebuild build --flake .#m5mbpがエラーなしで完了 → 親 PR feat(nix): 環境構築 Nix 一元化 (Phase A) を統合 (KISSA-20) #18 のローカル検証時に確認darwin-rebuild switch適用後、shell と CLI ツールが期待通り動作 → 親 PR feat(nix): 環境構築 Nix 一元化 (Phase A) を統合 (KISSA-20) #18 のローカル検証時に確認検証系の 2 項目は親 PR #18 のローカル検証フローで担保する設計。
スコープから外したもの
KISSA-32 spec の「baseline diff (
nvd diff) を PR コメントに記録」「docs/inventory/<host>-2026-05-02.mdへの追記」は S10 (defaults.nix 翻訳) と密接に絡むため、S10 着手時に併せて実施する想定。本 PR には含めない。Test plan
zsh -n nix/scripts/install-nix.zsh(syntax check) 通過nix flake checkがエラーなく完了 (CI 自動実行)Refs: KISSA-32, KISSA-20