Skip to content

/ck:judge` fails permission check after fresh install #9

@ConVonKnorrisson

Description

@ConVonKnorrisson

/ck:judge fails after fresh install with Bash permission-check error

Summary

After a clean install and restart, /ck:judge fails immediately with a Bash permission-check error instead of running codex-review.sh.

Environment

  • Local Cavekit install from GitHub
  • Plugin enabled in Claude Code
  • Fresh reinstall performed before reproducing
  • Explicit Bash allow rules already present in settings.json

Reproduction

  1. Remove the existing Cavekit install and related Claude plugin artifacts.
  2. Reclone repo again and run ./install.sh.
  3. Restart Claude Code.
  4. Run /ck:judge.

Clean install done with

sudo rm -f /usr/local/bin/cavekit
rm -rf ~/.claude/plugins/local/cavekit-marketplace
rm -rf ~/.claude/plugins/cache/cavekit-local
rm -f ~/plugins/ck
rm -f ~/.codex/cavekit
find ~/.codex/prompts -maxdepth 1 -type l \( -name 'ck-*.md' -o -name 'bp-*.md' \) -delete 2>/dev/null || true
cd ..
rm -rf ~/.cavekit
git clone https://github.com/JuliusBrussee/cavekit.git ~/.cavekit
cd ~/.cavekit && ./install.sh

Example failure:

/ck:judge
  ⎿  Error: Shell command permission check failed for pattern "! 
     "/Users/data/.claude/plugins/local/cavekit-marketplace/ck/scripts/codex-review.sh"  ": This command requires approval

Actual Result

Claude Code rejects the command with a permission error for the script codex-review.sh path. The failing pattern includes the leading ! form instead of matching a normal Bash command string.

Expected Result

/ck:judge should run after install without requiring manual permission-rule tweaks.

Relevant Detail

The command definition currently combines these two pieces:

allowed-tools: ["Bash(${CLAUDE_PLUGIN_ROOT}/scripts/codex-review.sh:*)"]

and:

```!
"${CLAUDE_PLUGIN_ROOT}/scripts/codex-review.sh" $ARGUMENTS
```

That looks like reason its breakin is that:

  • the command executes through a fenced ```! block
  • the permission metadata uses Bash(...sh:*) and its difficult to not possible to match this

Seems claude is checking permission against the fenced command block, not the script

The same thing shows in other files like:

  • setup-build.sh
  • bp-config.sh

Related

Issue-7

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions