Skip to content

Cross-platform: runtime hooks/scripts assume POSIX shell (no Windows) #9

Description

@VirtueMe

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

  • Port session-start.shsession-start.mjs; update hooks.json to invoke via node
  • New runtime helpers (e.g. checklist-sync) authored as .mjs, not .sh
  • Document the remaining caveat: skills embed bashisms, so native-Windows skill execution is a separate, larger effort

sh is fine for Mac/Linux today — this is about not silently baking in the limitation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions