versioning
npx skills add https://github.com/ncssm-robotics/ftc-claude --skill versioning
Agent 安装分布
Skill 文档
FTC Versioning Guardrail
STOP: Do Not Manually Change Version Numbers!
This repository uses an automated release process. Contributors should NEVER manually change version numbers in any file.
Files You Should NOT Edit (Version Fields)
| File | Field | Why Not |
|---|---|---|
plugins/<name>/plugin.json |
version |
Release script updates this |
plugins/<name>/skills/<name>/SKILL.md |
metadata.version |
Release script updates this |
.claude-plugin/marketplace.json |
plugin version |
Release script updates this |
The Correct Workflow
For Contributors
-
Make your changes to the skill (SKILL.md, scripts, etc.)
-
Add changelog entries to
## [Unreleased]section in CHANGELOG.md:## [Unreleased] ### Added - New calibration script for pod offset calculation ### Fixed - Corrected coordinate transformation formula -
Use the update-skill command to help generate entries:
/update-skill <skill-name> -
Submit PR to the
developbranch -
Done! – Versions are bumped automatically during the release process
For Maintainers (Release Process)
- Go to GitHub Actions
- Run “Prepare Release” workflow
- Script automatically:
- Parses changelog categories (Added â MINOR, Fixed â PATCH, etc.)
- Calculates new version numbers
- Updates all three version locations atomically
- Creates release PR
Why This Matters
Deterministic Versioning
Version bumps are calculated from changelog categories:
| Changelog Category | Version Bump |
|---|---|
### Removed |
MAJOR (X.0.0) |
### Changed |
MAJOR (X.0.0) |
### Added |
MINOR (0.Y.0) |
### Deprecated |
MINOR (0.Y.0) |
### Fixed |
PATCH (0.0.Z) |
### Security |
PATCH (0.0.Z) |
Consistency Guarantee
The release script ensures:
- All three version locations match
- Changelog is properly formatted
- Release notes are generated
- Git tags are created
Avoiding Merge Conflicts
Manual version bumps cause:
- Merge conflicts when multiple PRs touch versions
- Inconsistency between files
- Confusion about which version is correct
Exception: New Skills (1.0.0)
When creating a new skill with /create-skill, the version IS set to 1.0.0. This is the only time a version is “manually” set, and it’s done by the create-skill command.
New skills should:
- Start at version 1.0.0
- Have this in plugin.json, SKILL.md, and marketplace.json
- Have initial 1.0.0 entry in CHANGELOG.md
If You’re Tempted to Bump a Version
Ask yourself:
- Did I add entries to the
## [Unreleased]section? (Do this instead!) - Am I running the release process? (Only maintainers do this)
- Is this a new skill? (Let create-skill handle it)
If none of these apply, you probably shouldn’t be changing version numbers.
Commands Reference
| Command | Purpose |
|---|---|
/create-skill |
Creates new skill at 1.0.0 |
/update-skill |
Generates changelog entries (NO version bump) |
/validate-skill |
Validates structure (NO version bump) |
/review |
Runs code review (NO version bump) |
None of these commands change version numbers after initial creation.
See Also
RELEASES.md– Full release process documentation.github/scripts/prepare-release.sh– The release automation script.github/workflows/prepare-release.yml– The release workflow