You run three agents in three worktrees. One of them keeps starting the API on the default port, uses the wrong subscription and ignores your workflow rules. Nothing errors. That worktree simply has no CLAUDE.local.md, so the session never saw your personal instructions.
CLAUDE.local.md is a private, per-developer instructions file at the repository root. Claude Code loads it alongside the project's shared CLAUDE.md. It holds things that are true only for you: local ports, your test subscription, how you run the app, and personal workflow rules.
It is never committed. Either add it to .gitignore, or list it in .git/info/exclude so the rest of the team doesn't even see the entry. See Do you keep personal Claude Code overrides in CLAUDE.local.md?
A new Git worktree is a fresh checkout of tracked files. Git leaves CLAUDE.local.md behind in the main checkout. Whether a session in the new worktree still sees your instructions depends on where the worktree lives and which tool created it.
Claude doesn't warn you when the file is missing. A session in that worktree reads the shared CLAUDE.md, misses your personal file, and carries on without your instructions.
claude --worktree puts the new worktree inside the main checkout, at .claude/worktrees/<name>. Claude Code loads CLAUDE.local.md from the folder you start in and every folder above it, so a session in that worktree picks up the main checkout's CLAUDE.local.md with no setup.
You get one file and one source of truth. Edit it in the main checkout and every Claude Code worktree sees the change.
Worktrees created by other tools usually live outside the main checkout, so there is no parent folder to inherit from. Only a CLAUDE.local.md inside the worktree itself loads:
git worktree add ../my-app-feature creates a sibling folder with no CLAUDE.local.md. You have to copy it in by hand, every time.worktreeinclude file at the repository root. It uses .gitignore syntax, and the tool copies the files it lists into each new worktreeTo check any tool, create a worktree with it, start Claude Code in the new folder and run /memory. If CLAUDE.local.md isn't listed, the session can't see your personal instructions.
git worktree add ../my-app-feature -b featurecp CLAUDE.local.md ../my-app-feature/
Forget the second line once and the agent in that worktree runs without your personal instructions. Nothing warns you.
❌ Figure: Bad example - A native Git worktree needs CLAUDE.local.md copied in by hand
claude --worktree my-app-feature
The worktree lands in .claude/worktrees/my-app-feature, inside the main checkout, so the session loads the main checkout's CLAUDE.local.md. There is nothing to copy.
✅ Figure: Good example - A Claude Code managed worktree inherits CLAUDE.local.md from the main checkout
.worktreeinclude
CLAUDE.local.md
Create the worktree in Orca, or from its CLI:
orca worktree create --name my-app-feature
Orca copies CLAUDE.local.md into the new worktree. Keep CLAUDE.local.md gitignored so the copy never shows up in git status.
✅ Figure: Good example - A one-line .worktreeinclude file gets CLAUDE.local.md into every worktree an ADE such as Orca creates
Commit .worktreeinclude when it lists files the whole team needs, such as .env. If it only lists your personal files, list it in .git/info/exclude so it stays out of the team's .gitignore as well.
Claude Code reads .worktreeinclude too. Inside .claude/worktrees the copy is redundant: the session then loads both the main checkout's file and the worktree's copy, and the two can drift apart once you edit one.
Copies go stale. When you edit your instructions in the main checkout, worktrees that already exist keep the old version. To keep one source of truth everywhere, put your instructions in a file in your home folder and make CLAUDE.local.md a one-line import of it:
# Individual Preferences- @~/.claude/my-app-instructions.md
Copy that stub into each worktree (by hand or with .worktreeinclude). Every worktree then reads the same file, whichever tool created it. Claude Code asks you to approve an import from outside the project the first time it sees one.