install-wrapperlisted
Install: claude install-skill devbasex/ai-plugins
# 中継の導入・取り外し・状態
**中継(`relay.py`)を使うかは利用者が決める。** この Skill が、利用者���シェル設定を書き換える
唯一の入口である。SessionStart hook はシェル設定を書かない。中継の振る舞いは
`development-workflow` の [references/relay.md](../development-workflow/references/relay.md) にある。
例: 中継を初めて入れる。
1. claude の中で `/ndf:install-wrapper` を打つ
2. 写しを `~/.claude/ndf/relay.py`、`claude` の関数を `~/.claude/ndf/shellrc` に置き、`~/.bashrc`(macOS の bash では
`~/.bash_profile`)をバックアップしてから、`shellrc` を読む 1 行を囲み(`# >>> ndf relay >>>` 〜 `# <<< ndf relay <<<`)で足す
3. 次に開いたシェルで `claude` と打つと、中継を通って起動する
## 引数
| 引数 | 副命令 | すること |
| --- | --- | --- |
| 無し・`install` | `install` | 写し・写しの版・中継の rc を置き(あれば今の版で置き直す)、読み込みの 1 行を置く。10.17.4〜10.17.6 が足した囲み(alias を直に持つ)は、中だけを読み込みの行へ置き換える |
| `uninstall` | `uninstall` | `~/.bashrc`・`~/.bash_profile`・`~/.zshrc` の囲みを外し(バックアップの後)、読み込み先のファイル・中継の rc・写し・10.17.4〜10.17.6 の写しを消す |
| `status` | `status` | 読み込み先・囲みの有無と形・写しの有無と版を示す。macOS の bash で読み込みの行が `~/.bashrc` にしか無く、ログインシェルが読むファイルが `~/.bashrc` を読まないときは警告を出す。何も書かない |
それ以外の引数では、この表を示して何もしない。
## 手順
プラグインのルートを決め、`relay.py` の副命令を **1 回だけ** 実行して、出力と終了コードを
そのまま示す。`<副命令>` は上の表で決めた値に置き換える。
```bash
PLUGIN_ROOT='${CLAUDE_PLUGIN_ROOT}'
case "$PLUGIN_ROOT" in '$'*) PLUGIN_ROOT= ;; esac
RELAY="$PLUGIN_ROOT/scripts/relay.py"
[ -n "$PLUGIN_ROOT" ] && [ -f "$RELAY" ] || { echo "ndf のプラグインのルートを解決できない" >&2; exit 1; }
python3 "$RELAY" <副命令>; echo "exit=$?"
```
| 終了コード | 意味 | 伝えること |
| ---: | --- | --- |
| 0 | 置いた・外した・既にそうなっていた | 出力のとおり |
| 1 | 何も変えていない(既存の `claude` の定義・bash と zsh 以外のシェル・閉じの無い囲み・