Five version locations must agree on every release. The
scripts/check-versions.sh script enforces this and is run by CI on every
tag push. Maintainer flow:
-
Bump the five version locations to the new semver string (e.g.
2.2.0):.claude-plugin/plugin.json→version.copilot/plugin.yaml→versionskills/compose-expert/SKILL.md→ frontmatterversion:- The git tag you will push (e.g.
v2.2.0) CHANGELOG.md→ new## [2.2.0] - YYYY-MM-DDheading
-
Update
CHANGELOG.mdwith an entry that includes, for any breaking change, a### Migration notessubsection. -
Run the version check locally before tagging:
bash scripts/check-versions.sh v2.2.0Expected:
OK: versions aligned at 2.2.0. -
Commit, tag, and push:
git add -A git commit -m "release: v2.2.0" git tag v2.2.0 git push && git push --tags -
Verify the GitHub Release was created by the
release.ymlworkflow. It should contain the CHANGELOG section plus the install/update header.
| Change type | Bump |
|---|---|
| Typo fix, link fix, small rewording | patch |
| New reference file, new example, clarifying text | minor |
| Plugin manifest schema change (new host, new field) | minor |
| Removed/renamed reference, changed trigger routing, banner escalation | major |
Run before tagging a release:
- Fresh Claude Code install: marketplace add + install works; SKILL.md loads.
-
/plugin updatepicks up a trivial change tagged as the next patch. - Copilot CLI install works.
- Codex symlink install works.
- Stale-install banner surfaces when old-format SKILL.md (no
version:) is loaded.