原文(日本語に翻訳)
同一リポジトリのGit worktreeにおいて、プロジェクトスコープのプラグインが正しく読み込まれない問題を修正しました。
原文(英語)
Fixed project-scoped plugins not loading correctly from git worktrees of the same repository
概要
claude --worktree や isolation: "worktree" などを使って同一リポジトリの複数のworktreeを扱う場合、プロジェクトスコープ(リポジトリ単位)で有効化しているプラグインがworktree側のセッションで正しく読み込まれないことがありました。原因は、worktreeからは元のリポジトリのプラグイン設定やマーケットプレイス情報の参照解決がずれてしまう点にありました。この修正により、worktreeで作業していてもメインの作業ツリーと同じプロジェクトスコープのプラグインが期待通りに読み込まれるようになりました。
基本的な使い方
# メインの作業ツリーでプロジェクトスコープのプラグインを有効化
cd ~/projects/my-repo
claude plugin install org/my-project-plugin
# 同じリポジトリのworktreeを作成してClaude Codeを起動
git worktree add ../my-repo-feature feature-branch
cd ../my-repo-feature
claude修正前: worktree側のセッションでは、メインの作業ツリーで有効化したはずのプロジェクトスコープのプラグインが読み込まれず、コマンドやagents/skillsが利用できなかった。
修正後: worktree側のセッションでも、同一リポジトリのプロジェクトスコープのプラグインが正しく読み込まれ、メインの作業ツリーと同様に利用できる。
実践例
/worktree やbackground agentのworktree分離機能を使った並行開発
複数のブランチを別々のworktreeで並行して作業したり、isolation: "worktree" を指定したagent/subagentがworktree内で動作したりする場合に、プロジェクトで共通利用しているプラグイン(社内ツールやレビュー支援コマンドなど)がどのworktreeからでも一貫して使えるようになります。
git worktree add ../repo-hotfix hotfix-branch
cd ../repo-hotfix
claude
> /my-plugin-command
# worktreeからでもプロジェクトスコープのプラグインコマンドが利用できる手動で複数worktreeを切り替えながら作業するワークフロー
1つのリポジトリに対して複数のworktreeを手動で作成し、機能ごとに作業ディレクトリを分けている開発者は、worktreeを切り替えるたびにプラグインが有効/無効になるといった不整合がなくなります。
マーケットプレイス経由でインストールしたプラグインの利用
ローカルディレクトリやファイルソースのマーケットプレイスからインストールしたプラグインは、worktreeから実行してもメインの作業ツリーを基準にパスが解決される仕組みになっているため、この修正と合わせてworktree間で一貫した挙動になります。
注意点
- この修正はプロジェクトスコープ(リポジトリ単位で有効化された)のプラグインが対象です。ユーザースコープやマシン全体で有効化しているプラグインには元々影響しません。
- worktreeはメインの作業ツリーと同じマーケットプレイス設定を共有します。worktree側だけでプラグイン設定を変えることはできません。
- 修正後も期待通りに読み込まれない場合は、
claude plugin listで有効化状態を確認してください。