mcpField
C
configuring-zsh

configuring-zsh

github.com/bostonaholic開発268 回インストール今日更新
リポジトリ

configuring-zsh について

dotfiles にある zsh の起動設定を編集・検証するためのスキルです。開発者向けに、ファイルの配置、シンボリックリンクの扱い、エイリアスの安全性、用途別の確認方法を示します。

主な機能

  1. 01適切な起動ファイルの選択
  2. 02リンク先ではなく dotfiles の編集
  3. 03エイリアスの競合確認
  4. 04構文とシェル動作の検証

活用シーン

  1. 01zsh への変数・オプション・プラグインの追加
  2. 02エイリアスによるスクリプトやエージェントへの影響防止
  3. 03起動ファイル変更のテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bostonaholic/skills --skill configuring-zsh

インストール後、Claude Code で/configuring-zshを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/oh-my-zsh-plugin-layout.md

詳細

zsh の設定

シンボリックリンクではなく、元のファイルを編集する

  • 起動ファイルは通常、dotfiles リポジトリに置かれ、$HOME (または $ZDOTDIR)にシンボリックリンクされます。
  • リンク先ではなくリポジトリ内のファイルに書き込みます。多くのエディターや書き込みツールは、シンボリックリンクを通常のファイルに置き換えてしまいます。
  • リポジトリがリンクを作成する場所に新しい起動ファイルを登録し、インストーラーを実行する前に確認してください。
  • リポジトリが <name>.plugin.zsh を ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/<name>/ にリンクする場合は、 oh-my-zsh プラグインのレイアウトに従ってください。

起動ファイルを選ぶ

  • .zprofile:PATH と、それを設定するツールの初期化処理(eval "$(brew shellenv)")、プログラム用の変数(EDITOR)。.zshenv に設定しないでください。macOS の path_helper が、そのエントリーをシステムパスの後ろに移動します。.zshrc に設定しないでください。対話型シェル以外から起動したプログラムでは実行されません。
  • .zshenv:スクリプトを含む、すべてのシェルで必要な変数(ZDOTDIR、ガードフラグなど)。高速かつ無出力に保ってください。
  • .zshrc:setopt、zstyle、プロンプト、フレームワーク、プラグイン一覧。FPATH の追加は compinit の前に行います(oh-my-zsh を使用する場合は、 oh-my-zsh.sh の読み込み前)。エイリアス、関数、その compdef、対話型変数(LESS)は compinit の後、またはカスタムプラグインファイルに記述します。

エイリアスや関数を追加する前に、有効なプラグインがすでに定義していないか確認してください:zsh -ic 'whence -v <name>'。

コマンドを上書きするエイリアス

  • 標準コマンド(ls、cat、grep、rm、cd)を置き換えるエイリアスは、この設定を通じてシェルコマンドを実行するスクリプトやエージェントを壊します。
  • エージェントのハーネスは対話型シェルから取得したエイリアスを再利用する場合があるため、対話性のチェックだけでは保護できません。
  • 設定にコマンドを上書きするエイリアス用のガードがすでにある場合は、新しいエイリアスもそのガードの内側に置いてください。
  • それ以外の場合は、追加する前にユーザーに確認し、CLAUDECODE などのエージェントマーカーも確認するガードを提案してください。
  • 新しい名前のエイリアス(lg、gti)にはガードは不要です。

検証

  1. 編集した各ファイルに対して zsh -n <file> を実行します。
  2. .zshenv は zsh -c、.zprofile は zsh -lc、.zshrc またはプラグインは zsh -ic で変更を確認します。
  3. ガード付きエイリアスの場合は、ガードが確認するすべてのマーカーを調べ、それらをすべて未設定にした状態で定義が表示されること (マーカーごとに -u を1つ指定します:env -u CLAUDECODE -u AI_AGENT zsh -ic 'alias <name>')、いずれか1つを設定するとエイリアスが表示されなくなること(CLAUDECODE=1 zsh -ic 'alias <name>')を確認します。

コメント