ralph-loop plugin: stop-hook.sh missing execute permission
Resolved 💬 2 comments Opened Mar 26, 2026 by AKhozya Closed Mar 27, 2026
Bug
The ralph-loop plugin's stop-hook.sh is missing the execute bit (-rw-r--r-- instead of -rwxr-xr-x), causing the stop hook to fail with:
Stop hook error: Failed with non-blocking status code: /bin/sh: /Users/.../.claude/plugins/marketplaces/claude-plugins-official/plugins/ralph-loop/hooks/stop-hook.sh: Permission denied
Reproduction
- Install ralph-loop plugin from claude-plugins-official marketplace
- End a Claude Code session
- Stop hook fails with "Permission denied"
Root Cause
The marketplace copy at plugins/ralph-loop/hooks/stop-hook.sh does not have the executable bit set in the distribution. The cached copy (b10b583de281) gets +x during plugin install, but the marketplace source file does not.
This also affects other .sh files in the marketplace:
plugins/ralph-loop/scripts/setup-ralph-loop.shplugins/explanatory-output-style/hooks-handlers/session-start.sh
Fix
Set the executable bit on all .sh files that are referenced in hooks.json commands.
Workaround
find ~/.claude/plugins -name "*.sh" ! -perm -u+x -exec chmod +x {} +
Environment
- macOS 15.5 (Darwin 25.4.0)
- Claude Code latest
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗