feat(lint): wire Vale as deterministic prefilter for skill-audit/agent-audit #85
@@ -55,7 +55,12 @@ fi
|
|||||||
# experiment tag reachable from the pushed ref must not shift the diff baseline.
|
# experiment tag reachable from the pushed ref must not shift the diff baseline.
|
||||||
# The tag is resolved from $PUSHED_REF, not HEAD, for the same reason the diff
|
# The tag is resolved from $PUSHED_REF, not HEAD, for the same reason the diff
|
||||||
# is: a tag reachable only from HEAD is not part of the history being pushed.
|
# is: a tag reachable only from HEAD is not part of the history being pushed.
|
||||||
LAST_TAG="$(git describe --tags --abbrev=0 --match 'v[0-9]*.[0-9]*.[0-9]*' "$PUSHED_REF" 2>/dev/null || true)"
|
# --match is a shell glob, not a regex: its trailing `*`s match any suffix, so
|
||||||
|
# without --exclude a pre-release/checkpoint tag like v1.2.3-checkpoint or
|
||||||
|
# v1.2.3-rc1 also satisfies 'v[0-9]*.[0-9]*.[0-9]*' and could be picked over the
|
||||||
|
# true last release tag. --exclude is glob syntax too, so '*-*' is what actually
|
||||||
|
# rules out any tag carrying a hyphenated suffix, leaving only bare vMAJOR.MINOR.PATCH.
|
||||||
|
LAST_TAG="$(git describe --tags --abbrev=0 --match 'v[0-9]*.[0-9]*.[0-9]*' --exclude '*-*' "$PUSHED_REF" 2>/dev/null || true)"
|
||||||
|
|
||||||
if [[ -z "$LAST_TAG" ]]; then
|
if [[ -z "$LAST_TAG" ]]; then
|
||||||
echo "FAIL: no release tag exists yet, but .pre-commit-hooks.yaml already exposes hooks to external consumers." >&2
|
echo "FAIL: no release tag exists yet, but .pre-commit-hooks.yaml already exposes hooks to external consumers." >&2
|
||||||
|
|||||||
@@ -419,6 +419,24 @@ else
|
|||||||
fail "the repo's own .pre-commit-hooks.yaml no longer satisfies the entry constraints: $OUT20"
|
fail "the repo's own .pre-commit-hooks.yaml no longer satisfies the entry constraints: $OUT20"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# --- 21. A vX.Y.Z-suffixed checkpoint tag must not satisfy the release gate ---
|
||||||
|
# git describe --match uses shell-glob semantics, not regex: the trailing `*` in
|
||||||
|
# 'v[0-9]*.[0-9]*.[0-9]*' matches any suffix, so a pre-release/checkpoint tag like
|
||||||
|
# v1.0.1-checkpoint also satisfies the glob and can be picked as LAST_TAG instead
|
||||||
|
# of the true last release tag — hiding a real release-relevant change that landed
|
||||||
|
# before the checkpoint tag from the diff.
|
||||||
|
echo ""
|
||||||
|
echo "--- ignores a vX.Y.Z-checkpoint tag and still flags the change since the real release tag ---"
|
||||||
|
FIXTURE21="$(make_tagged_fixture)"; track "$FIXTURE21"
|
||||||
|
echo "v2" > "$FIXTURE21/scripts/skill-size-check.sh"
|
||||||
|
(cd "$FIXTURE21" && git add -A && git commit -q -m "real release-relevant change" && git tag v1.0.1-checkpoint)
|
||||||
|
OUT21=$(run_check "$FIXTURE21" "refs/heads/main" || true)
|
||||||
|
if echo "$OUT21" | grep -q "skill-size-check.sh"; then
|
||||||
|
pass "still flags the release-relevant change since v1.0.0, ignoring the vX.Y.Z-checkpoint tag"
|
||||||
|
else
|
||||||
|
fail "a vX.Y.Z-checkpoint tag satisfied the glob and hid a real release-relevant change"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Results: $PASS passed, $FAIL failed"
|
echo "Results: $PASS passed, $FAIL failed"
|
||||||
[[ $FAIL -eq 0 ]]
|
[[ $FAIL -eq 0 ]]
|
||||||
|
|||||||
Reference in New Issue
Block a user