Two new pre-flight guards in scripts/release.sh, evaluated right after the
branch check:
1. Reject if HEAD subject matches `(X.Y.Z)` — historical pattern where the
feature commit itself bumped the version (e.g. `feat(...) (0.9.14)`).
Forces every release to land in a dedicated `chore(release): X.Y.Z`
commit so the changelog + tag point at a clean release boundary.
2. Reject if HEAD is already `chore(release): …` — prevents re-running the
script with no new commits since the previous release (would otherwise
produce an empty release on top of itself).
Scope deliberately `chore(scripts)` (not `chore(release)`) so this very
commit doesn't trip guard 2 the next time release.sh runs.