From 348dd9f6654606073a81fe1cc649f1f5e15c674f Mon Sep 17 00:00:00 2001 From: Defame1297 Date: Sun, 9 Aug 2026 13:06:37 +0000 Subject: [PATCH] fix(lint): restore release-gate coverage of bundled Vale assets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The gate derived release-relevant paths from the dirname of each entry's --config target. Dropping --config from .pre-commit-hooks.yaml left that loop dead, silently removing both assets/vale/ trees from coverage — a Vale rule change could land on main without demanding a release tag, leaving consumers pinned to an old rev: with stale rules. Coverage now derives from tokens[0] instead: double-dirname for the .. normalization, guarded on the tree existing and on the bundle root not resolving to "." so skill-size-check.sh cannot invent a bogus path. The --config branch is removed rather than kept as dead code. Since pre-commit rewrites only entry[0], no argument in any entry can ever name a file this repo ships, so that shape is broken by design. Known gap: deleting a hook's entire assets/ tree is not flagged, as the candidate path stops existing. Deletions within a surviving tree are. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01MCQ648fLSFXPHGZdQ8gn58 --- scripts/check-release-needed.sh | 26 +++++++--- tests/test-check-release-needed.sh | 79 +++++++++++++++++++++++------- 2 files changed, 80 insertions(+), 25 deletions(-) diff --git a/scripts/check-release-needed.sh b/scripts/check-release-needed.sh index 8f1f285..cc1927f 100755 --- a/scripts/check-release-needed.sh +++ b/scripts/check-release-needed.sh @@ -34,19 +34,29 @@ fi # instead of hand-maintaining a parallel list — the manifest is the single # source of truth for what external consumers actually pull at a pinned rev, # so a hook added/removed/renamed there can't silently drift out of sync here. -# Each entry is "