Skip to content

原文(日本語に翻訳)

メインリポジトリ内にネストされたworktreeから実行した場合(例: claude -w)に CLAUDE.md、スラッシュコマンド、エージェント、ルールが重複していた問題を修正しました

原文(英語)

Fixed duplicate CLAUDE.md, slash commands, agents, and rules when running from a worktree nested inside its main repo (e.g. claude -w)

概要

claude -w--worktree フラグ)を使ってメインリポジトリ内にネストされた worktree を作成・使用した場合、CLAUDE.md の指示、スラッシュコマンド、エージェント、ルールなどの設定が重複して読み込まれるバグがありました。これにより、同じ指示が二重に処理されたり、スラッシュコマンドが重複表示されたりする問題が発生していました。修正後は設定が正しく1回だけ読み込まれます。

基本的な使い方

bash
# メインリポジトリ内の worktree で起動
claude -w

# 修正後: CLAUDE.md やスラッシュコマンドが重複しない

実践例

問題が発生していたディレクトリ構造

my-repo/                      ← メインリポジトリ
├── .claude/
│   ├── CLAUDE.md             ← ここが重複して読み込まれていた
│   └── commands/
│       └── deploy.md         ← スラッシュコマンドも重複
├── src/
└── .git/
    └── worktrees/
        └── feature-branch/   ← worktree(メインリポジトリ内にネスト)
            └── .claude/      ← 同じ設定が再度読み込まれていた

修正前の問題

bash
cd my-repo
claude -w

# 修正前:
# → /deploy コマンドが2回リストされる
# → CLAUDE.md の指示が2回適用される
# → エージェントの定義が重複する

# 修正後:
# → 設定は1回だけ正しく読み込まれる
# → スラッシュコマンドは重複しない

正しい worktree の使用方法

bash
# メインリポジトリで作業
cd ~/projects/my-app
claude

# worktree を作成して別のブランチで作業
claude -w  # または claude --worktree

# 修正後: worktree でも設定が正確に1回読み込まれる
/deploy  # コマンドが重複せず正しく表示される

注意点

  • この問題は worktree がメインリポジトリの内部ディレクトリにネストされている場合に発生していました
  • 独立した場所に worktree がある場合(例: ~/worktrees/feature)は影響しません
  • git worktree list で現在の worktree の場所を確認できます
  • 修正後は通常の使用と worktree 使用で一貫した設定読み込みが行われます

関連情報