1.0.1
Versioning And Release Tooling (milestone 17)
- Added
scripts/set_version.py, a one-argumentMAJOR.MINOR.PATCHscript that writes every in-repo version literal —.claude-plugin/plugin.json,.claude-plugin/marketplace.json,pyproject.toml, anduv.lock— in a single all-or-nothing pass, never touching git,gh, or the generated tree. - Taught
scripts/migrate_skills_to_agy.pyto read the source manifest's version at generation time and copy it into the generated.agents/plugins/cairn/plugin.json, so the Antigravity manifest carries a version on every regeneration path while.claude-plugin/plugin.jsonstays the single source of truth. - Added a maintainer-only
/release-plugin <MAJOR.MINOR.PATCH>skill as the sole documented home of the release procedure, gated behind four hard pre-flight stops (clean tracked tree, HEAD onmain,mainnot behindorigin/main, no untracked sources) and three pre-mutation version refusals (malformed literal, an existing tag, a version not strictly greater than the last release). - Made the skill compose its own release notes from the
Milestone-finish:commits since the last release, cross-checked against the### Milestoneheadings added tomilestones/README.mdover the same range, stopping on a mismatch in either direction and falling back to commit-derived notes — on explicit confirmation only — when no milestone was finished. - Standardised a release on the bare
MAJOR.MINOR.PATCHtag and exactly one path-scopedRelease: <VERSION>commit, followed by a single pre-publish pause and check-then-do branch push, tag push, andghrelease creation, so a re-run with the same version resumes from the first incomplete step instead of duplicating work.
Full Changelog: 0.9.9...1.0.1