fix(marketplace-author): require version bump on every catalog mutation

## Why
The skill had no instruction to bump the catalog version after ADD, REMOVE, or UPDATE operations. Clients cache the marketplace catalog and use the version field to detect changes — without a bump, the new state is invisible until a forced refresh.

## Implementation Notes
Added a Gotcha explaining the rule and semver convention (ADD/REMOVE → minor, UPDATE → patch). Added a dedicated "Bump catalog version" step to each mutating flow. Updated README to match.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-28 15:15:59 +00:00
parent 28ce4a279b
commit 528ba05b37
4 changed files with 19 additions and 6 deletions

View File

@@ -8,5 +8,5 @@
"keywords": [], "keywords": [],
"license": "MIT", "license": "MIT",
"name": "kyberforge", "name": "kyberforge",
"version": "1.0.2" "version": "1.0.3"
} }

View File

@@ -13,5 +13,5 @@
"skills": [ "skills": [
"skills/" "skills/"
], ],
"version": "1.0.2" "version": "1.0.3"
} }

View File

@@ -4,7 +4,7 @@ Adds, removes, and updates plugin entries in the holocron marketplace manifest.
## What it does ## What it does
Manages entries in the `plugins[]` array of `marketplace.json`. Always updates both `.claude-plugin/marketplace.json` and `.github/plugin/marketplace.json` in the same edit pass — never one without the other. Routes automatically to add, remove, update, or create-from-scratch based on whether the files exist and whether the named plugin is already in the catalog. Runs `claude plugin validate .` after every mutating operation. Manages entries in the `plugins[]` array of `marketplace.json`. Always updates both `.claude-plugin/marketplace.json` and `.github/plugin/marketplace.json` in the same edit pass — never one without the other. Routes automatically to add, remove, update, or create-from-scratch based on whether the files exist and whether the named plugin is already in the catalog. Bumps the catalog version on every mutation (minor for ADD/REMOVE, patch for UPDATE). Runs `claude plugin validate .` after every mutating operation.
## Before you start ## Before you start

View File

@@ -25,6 +25,7 @@ metadata:
## Gotchas ## Gotchas
- Both marketplace files must be identical after every operation — never update one without the other in the same edit pass. - Both marketplace files must be identical after every operation — never update one without the other in the same edit pass.
- Every catalog mutation (ADD, REMOVE, UPDATE) requires a catalog `version` bump in both files in the same edit pass. Clients cache the catalog and use the version to detect changes — skipping the bump means the new state is invisible until a forced refresh. Convention: ADD and REMOVE → minor bump (e.g. `0.1.1` → `0.2.0`); UPDATE → patch bump (e.g. `0.2.0` → `0.2.1`). The `version` field may be at the top level or nested inside `metadata` — bump whichever form is present.
- `source` for local plugins is a relative path from the marketplace root, not the plugin directory name alone (e.g. `"./plugins/kyberforge"`, not `"kyberforge"`). - `source` for local plugins is a relative path from the marketplace root, not the plugin directory name alone (e.g. `"./plugins/kyberforge"`, not `"kyberforge"`).
- The `{ "source": "github", ... }` object form is only for GitHub. For GitLab, Gitea, or any other git host, use `{ "source": "git", "url": "https://..." }` with a full URL. - The `{ "source": "github", ... }` object form is only for GitHub. For GitLab, Gitea, or any other git host, use `{ "source": "git", "url": "https://..." }` with a full URL.
@@ -161,7 +162,11 @@ Append the new entry to the end of the `plugins[]` array in `.claude-plugin/mark
Apply the identical addition to `.github/plugin/marketplace.json` in the same edit pass. Apply the identical addition to `.github/plugin/marketplace.json` in the same edit pass.
### Step 4 — Validate ### Step 4 — Bump catalog version
Apply a **minor bump** to the `version` field in both files in the same edit pass (e.g. `0.1.1` → `0.2.0`). Find the field at the top level or inside `metadata` — bump whichever form is present.
### Step 5 — Validate
Follow the **VALIDATE** flow. Follow the **VALIDATE** flow.
@@ -189,7 +194,11 @@ Remove the entry from `plugins[]` in `.claude-plugin/marketplace.json`.
Apply the identical removal to `.github/plugin/marketplace.json` in the same edit pass. Apply the identical removal to `.github/plugin/marketplace.json` in the same edit pass.
### Step 4 — Validate ### Step 4 — Bump catalog version
Apply a **minor bump** to the `version` field in both files in the same edit pass (e.g. `0.1.1` → `0.2.0`). Find the field at the top level or inside `metadata` — bump whichever form is present.
### Step 5 — Validate
Follow the **VALIDATE** flow. Follow the **VALIDATE** flow.
@@ -211,7 +220,11 @@ State which fields will change and to what values, then edit `.claude-plugin/mar
Apply the identical change to `.github/plugin/marketplace.json` in the same edit pass. Apply the identical change to `.github/plugin/marketplace.json` in the same edit pass.
### Step 3 — Validate ### Step 3 — Bump catalog version
Apply a **patch bump** to the `version` field in both files in the same edit pass (e.g. `0.2.0` → `0.2.1`). Find the field at the top level or inside `metadata` — bump whichever form is present.
### Step 4 — Validate
Follow the **VALIDATE** flow. Follow the **VALIDATE** flow.