Problem
Runtime scripts assume a POSIX shell, so they don't run on Windows (no native bash; only Git Bash/WSL). Claude Code runs on Windows, so this is a real gap.
scripts/session-start.sh (the SessionStart hook) is bash → Windows-incompatible.
- The skills also embed bash one-liners (
git worktree, gh, sed/awk), so full Windows support is a larger effort than just the helper scripts.
(validate.mjs / set-version.mjs are already Node and only run in dev/CI, so they're fine.)
Direction
Standardise runtime helpers on cross-platform Node .mjs, invoked as node "${CLAUDE_PLUGIN_ROOT}/scripts/x.mjs" in hooks.json — identical on Win/Mac/Linux. Trade-off: assumes Node on PATH (heavier than sh, but far more portable than assuming POSIX shell).
Acceptance
sh is fine for Mac/Linux today — this is about not silently baking in the limitation.
Problem
Runtime scripts assume a POSIX shell, so they don't run on Windows (no native bash; only Git Bash/WSL). Claude Code runs on Windows, so this is a real gap.
scripts/session-start.sh(theSessionStarthook) is bash → Windows-incompatible.git worktree,gh,sed/awk), so full Windows support is a larger effort than just the helper scripts.(
validate.mjs/set-version.mjsare already Node and only run in dev/CI, so they're fine.)Direction
Standardise runtime helpers on cross-platform Node
.mjs, invoked asnode "${CLAUDE_PLUGIN_ROOT}/scripts/x.mjs"inhooks.json— identical on Win/Mac/Linux. Trade-off: assumes Node on PATH (heavier than sh, but far more portable than assuming POSIX shell).Acceptance
session-start.sh→session-start.mjs; updatehooks.jsonto invoke vianode.mjs, not.shsh is fine for Mac/Linux today — this is about not silently baking in the limitation.