Bump version in all manifests, commit, tag, and push a release
Automate the ccq release process: bump versions, commit, tag, and push.
Parse version argument: Extract the version from $ARGUMENTS. Strip a leading v if present (e.g., v0.3.0 → 0.3.0).
Validate semver format: The version must match MAJOR.MINOR.PATCH (digits only, no pre-release suffix). If invalid, tell the user and stop.
Check for clean working tree: Run git status --porcelain. If there are uncommitted changes, warn the user and stop — they should commit or stash first.
Run tests: Execute make test. If any test fails, report the failure and stop.
Update version in all 3 locations using the Edit tool:
.claude-plugin/marketplace.json — metadata.version.claude-plugin/marketplace.json — plugins[0].versionplugins/ccq/.claude-plugin/plugin.jsonversionStage and commit:
git add .claude-plugin/marketplace.json plugins/ccq/.claude-plugin/plugin.json
git commit -m "release: v{version}"
Create annotated git tag: git tag -a v{version} -m "v{version}"
Ask before pushing: Tell the user the commit and tag are ready locally, then ask for confirmation before running git push origin main --follow-tags. Pushing the tag triggers the GitHub Actions release workflow.