Bug: claude-plugins-official - learning/explanatory-output-style hook scripts missing execute permission

Resolved 💬 3 comments Opened Mar 25, 2026 by debop Closed Mar 27, 2026

Summary

The session-start.sh hook scripts in learning-output-style and explanatory-output-style plugins are distributed without execute permission (644 instead of 755), causing SessionStart hook failures at every Claude Code session startup.

Affected Files

  • plugins/learning-output-style/hooks-handlers/session-start.sh
  • plugins/explanatory-output-style/hooks-handlers/session-start.sh

Symptom

Every session startup shows:

SessionStart:startup hook error
SessionStart:startup hook error

The hooks fail with exit code 126 (Permission denied).

Root Cause

The .sh files are committed to the plugin source without executable permission. When Claude Code installs the plugin, the files are copied as-is from the cache with rw-r--r-- (644) permissions.

The cached files at:

  • ~/.claude/plugins/cache/claude-plugins-official/learning-output-style/unknown/hooks-handlers/session-start.sh
  • ~/.claude/plugins/cache/claude-plugins-official/explanatory-output-style/unknown/hooks-handlers/session-start.sh

both have 644 permissions.

Fix

In the source repository, run:

git update-index --chmod=+x plugins/learning-output-style/hooks-handlers/session-start.sh
git update-index --chmod=+x plugins/explanatory-output-style/hooks-handlers/session-start.sh

Or, the plugin installer should automatically apply chmod +x to all .sh files during installation.

Environment

  • Claude Code CLI
  • macOS Darwin 25.3.0
  • Plugin: claude-plugins-official (internal Anthropic plugins)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗