Skip to content

formatter hooks: 9 siblings share the out-of-tree noise gap #972 fixed for markdown-format only #1091

Description

@kyle-sexton

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions