Plugin.json's version field had been stuck at 1.9.0 across three releases
(v2.0, v2.0.1, v2.1.0) while marketplace.json was bumped each time. Claude
Code uses plugin.json's version for the update check, so
`claude plugin update marketing-skills@marketingskills` reported "already
at the latest version (1.9.0)" and refused to pull anything new — even
when main had real new content (sms skill, refreshed ai-seo / image / video).
Three changes:
1. .claude-plugin/plugin.json: bumped 1.9.0 → 2.1.0 to clear the current
drift.
2. .github/scripts/sync-skills.js: added updatePluginVersion() that reads
marketplace.json's metadata.version and copies it into plugin.json's
version field. Idempotent — no-op when they already match.
3. .github/workflows/sync-skills.yml: added marketplace.json to the
`paths` filter so the sync workflow runs whenever marketplace.json
changes (previously it only ran on skills/** changes, which is why
release commits that only bumped marketplace.json never triggered the
sync). Also added .claude-plugin/plugin.json to the file_pattern so
the bot commit captures the auto-bump.
Verified locally: script bumped 1.9.0 → 2.1.0, then a second run reported
"Everything is already in sync."
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
- Add sync-claude-plugin workflow to auto-update marketplace.json when skills change
- Add validate-skill workflow to validate SKILL.md files on push/PR
- Add sync-marketplace.js script for skill discovery and count updates