The version gate resolves `v$VERSION` with git, but actions/checkout does not fetch tags at its default depth — so the guard would have failed every release with "No tag v0.3.0" whether or not the tag existed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SAcqrz3FcadkYr3xG32CjK