This was generated by AI during triage.
Converted from a #657 sweep line (source: 2026-07-22 work lane, T3, PR #1030 / #972 fix — dispatched-worker self-observation).
Problem
bash-format, biome-format, eol-normalizer, go-format, guardrails, powershell-format, ruff-format, typos-format, actionlint all carry the same hook::read_file_path() gap #972 fixed for markdown-format alone: project-membership scoping is skipped when CLAUDE_PROJECT_DIR is unset, so a PostToolUse hook fires on scratchpad/temp .md-or-equivalent files outside any repo.
Why this isn't status: ready
PR #1030 scoped the #972 fix to markdown-format only after an attempted shared-lib fix (editing lib/hook-utils.sh + syncing all 12 carriers) caused 9 genuine plugins/guardrails/hooks/cli-flag-verify.test.sh regressions and was reverted. Fixing the other 9 as a class needs an opt-in shared scoping mechanism — each formatter hook opts in explicitly; the shared guardrail-adjacent code stays location-agnostic so a future guardrails-side change doesn't cascade into unrelated formatters again. This is a real design call (opt-in mechanism shape), not a mechanical port of #972's fix to 9 more files — hence needs-human rather than status: ready.
Source
PR #1030: #1030
Sweep line: claude-code-plugins#657
This was generated by AI during triage.
Converted from a #657 sweep line (source: 2026-07-22 work lane, T3, PR #1030 / #972 fix — dispatched-worker self-observation).
Problem
bash-format,biome-format,eol-normalizer,go-format,guardrails,powershell-format,ruff-format,typos-format,actionlintall carry the samehook::read_file_path()gap #972 fixed formarkdown-formatalone: project-membership scoping is skipped whenCLAUDE_PROJECT_DIRis unset, so a PostToolUse hook fires on scratchpad/temp.md-or-equivalent files outside any repo.Why this isn't
status: readyPR #1030 scoped the #972 fix to
markdown-formatonly after an attempted shared-lib fix (editinglib/hook-utils.sh+ syncing all 12 carriers) caused 9 genuineplugins/guardrails/hooks/cli-flag-verify.test.shregressions and was reverted. Fixing the other 9 as a class needs an opt-in shared scoping mechanism — each formatter hook opts in explicitly; the shared guardrail-adjacent code stays location-agnostic so a future guardrails-side change doesn't cascade into unrelated formatters again. This is a real design call (opt-in mechanism shape), not a mechanical port of #972's fix to 9 more files — henceneeds-humanrather thanstatus: ready.Source
PR #1030: #1030
Sweep line: claude-code-plugins#657