Instead of duplicating the release logic locally, `make release` now
just validates the version format and triggers the create-release
workflow via `gh workflow run`.
https://claude.ai/code/session_0158SxS2ATe6PL8zTpsoHRFn
- Add SHELL declaration to Makefile for bash compatibility
- Add check that release is run from main branch
- Use jq instead of grep -oP for JSON parsing in release.yml
- Move checkout before git ls-remote in create-release.yml
- Add --allow-empty to commit in create-release.yml
https://claude.ai/code/session_0158SxS2ATe6PL8zTpsoHRFn
Update `make release` to write the version into manifest.json and commit
it before tagging, so the packaged artifact always carries the correct
version. Also add a CI guard in the release workflow that fails early if
the tag and manifest versions ever diverge.
https://claude.ai/code/session_0158SxS2ATe6PL8zTpsoHRFn