Worktree-isolated sessions refuse claude plugin eval (guard reads 'eval' as shell eval)

Open Beginner friendly
#5,696 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
62/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Active
Tech stack
shell

Research direction

The Claude Code binary guard cannot be changed in this repo. Locate the /evals:plugin-eval skill (plugin evals) and document that worktree-isolated sessions refuse claude plugin eval because the guard treats eval as the shell builtin. State the workaround: run the exact command in a separate terminal outside Claude Code. Recheck on new Claude Code releases as described in the issue.

Written by the indexing model from the issue text.

Description

needs-human priority: low work-class: read-only

Summary

In a worktree-isolated Claude Code session, the Bash tool refuses any command that contains eval as a word, including claude plugin eval and claude plugin eval --help. The guard reads the subcommand as the shell builtin eval. Plugin skills that run plugin evals (/evals:plugin-eval) therefore cannot run from an isolated worktree session.

The guard is built into Claude Code: its message text is in the 2.1.285 binary, not in any plugin in this repo. Per our rule against filing on Anthropic's repositories, this issue tracks the limitation here.

Repro

  1. Start a session isolated in a git worktree (Claude Code 2.1.285, Linux/WSL2).
  2. Have the model run claude plugin eval --help.
  3. Observed: refused with "this command runs a string through eval, which can't be verified to stay inside the worktree."
  4. Expected: claude plugin eval is a CLI subcommand, not shell eval, so it should run.

claude --version and claude plugin --help pass. Another message from the same guard: "uses a subshell in a command inside a construct too complex to verify".

Workaround

Run the command in a separate terminal outside Claude Code. The ! prefix does not work: the user's own ! command in the same session is refused with the identical message (verified 2026-10-01). Do not bypass the guard with wrapper scripts.

Follow-ups

  • /evals:plugin-eval should name this limitation and give the user the exact command to run in a separate terminal when it runs in a worktree-isolated session.
  • The refusal message ends "a worktree-isolated session's git operations must target its own worktree", which is misleading because this command is not a git operation.
  • Recheck on each Claude Code release: run claude plugin eval --help from an isolated worktree session, and close this issue once it passes.

Found while running an approved observation run during the eval-design/hillclimbing digest interview (branch feat/eval-design-hillclimbing-digest).

🤖 Generated with Claude Code

Dominant language
Shell
Stars
22
Forks
2
Avg merge
1h 29m
Merged PRs (30d)
895

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from melodic-software/claude-code-plugins

All issues in melodic-software/claude-code-plugins

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.