Summary
Five suites fail on a Windows 11 Git Bash host and pass in CI (Linux), byte-identical on main:
plugins/guardrails/hooks/block-windows-drive-tmp.test.sh: 15 cases (path-qualified writers such as /usr/bin/mkdir /tmp/x expected exit 2, got 0).
plugins/guardrails/hooks/hardcoded-path-check.test.sh: 2 cases.
plugins/markdown-format/hooks/markdown-format.test.sh: 4 PATH-shape cases (PATH probed trim wrong, PATH probed empty-component trim wrong, out-of-repo missing markdownlint remediation wrong, out-of-repo ~/.local/bin preference wrong).
.claude/hooks/cloud-bootstrap-plugins.test.sh: every case (shells out to the real claude plugin list --json).
plugins/claude-ops/skills/audit-skill-visibility/scripts/audit_skill_visibility.test.sh: the shell fixture errors no installed skills resolved from '<mktemp>/cfg'; expected installed_plugins.json there after its 96 Python unit tests pass.
Impact
Every contributor on this host learns the same five by trial, and every worker in the hook-performance program had to carry the list in its brief to tell a real regression from host noise. The phase 5 PR (#3666) added visible SKIP (host: ...) lines to four other suites for the same reason.
Ask
Either give each suite the host-skip pattern #3666 established (probe the host condition, print a counted skip, exit 0) or fix the underlying path assumptions. The block-windows-drive-tmp cases look like a real gap (an MSYS-resolved /usr/bin/mkdir is still a writer) and deserve a fix rather than a skip.
Summary
Five suites fail on a Windows 11 Git Bash host and pass in CI (Linux), byte-identical on
main:plugins/guardrails/hooks/block-windows-drive-tmp.test.sh: 15 cases (path-qualified writers such as/usr/bin/mkdir /tmp/xexpected exit 2, got 0).plugins/guardrails/hooks/hardcoded-path-check.test.sh: 2 cases.plugins/markdown-format/hooks/markdown-format.test.sh: 4 PATH-shape cases (PATH probed trim wrong,PATH probed empty-component trim wrong,out-of-repo missing markdownlint remediation wrong,out-of-repo ~/.local/bin preference wrong)..claude/hooks/cloud-bootstrap-plugins.test.sh: every case (shells out to the realclaude plugin list --json).plugins/claude-ops/skills/audit-skill-visibility/scripts/audit_skill_visibility.test.sh: the shell fixture errorsno installed skills resolved from '<mktemp>/cfg'; expected installed_plugins.json thereafter its 96 Python unit tests pass.Impact
Every contributor on this host learns the same five by trial, and every worker in the hook-performance program had to carry the list in its brief to tell a real regression from host noise. The phase 5 PR (#3666) added visible
SKIP (host: ...)lines to four other suites for the same reason.Ask
Either give each suite the host-skip pattern #3666 established (probe the host condition, print a counted skip, exit 0) or fix the underlying path assumptions. The
block-windows-drive-tmpcases look like a real gap (an MSYS-resolved/usr/bin/mkdiris still a writer) and deserve a fix rather than a skip.