SuperClaude-Org/SuperClaude_Framework

Using SuperClaude with git worktrees

Opened this issue ยท 0 comments

jwagon commented

Hi,

I'm trying to get SuperClaude to work with a git worktree. Here's what I did:

cd ~/my_repo
git worktree add ../worktree1 -b feature1 main
cd ../worktree1
claude

Then once Claude Code + SuperClaude fire up, I'll do something like

/sc:implement "implement new feature blah blah blah"

It'll go through and do its thing, but only apply code changes to the working copy in ~/my_repo instead of ~/worktree1 (!)

When I asked in Claude Code why this happened, it said:

Fix Worktree Issue & Prevent Future Occurrences

 ๐Ÿ” Problem Analysis

 What Happened:
 - Changes applied to: ~/my_repo on branch main โŒ
 - Should have been applied to: ~/worktree1 on branch
 feature1 โœ…

 Root Cause:
 When I used /sc:analyze and Serena MCP activated the project, it switched to the registered project path at
 ~/my_repo, completely ignoring your current worktree context.

 ๐Ÿ“‹ Recovery Plan

 Step 1: Discard Changes from Wrong Branch

 cd /Users/jwagon/Documents/GitHub/MyMedStudy
 git restore ~/my_repo/file1.cs
 git restore ~/my_repo/file1.cs

 Step 2: Re-Apply Changes to Correct Worktree

 Apply the exact same changes to files in:
 - git restore ~/worktree1/file1.cs
 - git restore ~/worktree1/file2.cs
 - etc

 ๐Ÿ›ก๏ธ Prevention Strategy

 Option A: Deactivate Serena MCP in Worktrees (Recommended)

 Update .claude/settings.local.json to disable Serena when in worktrees:
 {
   "mcpServers": {
     "serena": {
       "disabled": true
     }
   }
 }
 Pros: Simple, prevents the issue entirelyCons: Loses Serena's symbolic tools (but you still have native Read/Edit/Grep/Glob)

 Option B: Keep Serena but Always Use Relative Paths

 When using Serena tools, explicitly pass relative_path parameter starting from current working directory. However, this is error-prone as Serena still
 operates on its registered project path.

 Option C: Create Worktree-Specific Serena Project Registration

 Register the worktree as a separate Serena project, but this requires manual setup for each worktree.

 โœ… Recommendation

 Use Option A - Disable Serena MCP in the worktree's .claude/settings.local.json. This ensures:
 - All file operations respect current working directory
 - No accidental cross-branch contamination
 - Native Claude Code tools are sufficient for most development tasks
 - You can still use Serena in the main repository when needed

 Would you like me to proceed with this plan?

I don't think any of those options are appealing. Am I doing this wrong, and/or is there some way to configure SuperClaude + Serena to behave as one would expect?

Thanks!