Forráskód Böngészése

feat: add renames map for auto-migration of renamed plugins (#3176)

Adds a top-level "renames" map to marketplace.json with the four
historical renames (adlc, airwallex, convex-backend, vals) so that
users who installed under the old slug auto-migrate to the new one
once the loader-side support in cci#43997 ships.

Also documents in README.md that plugin `name` is an immutable slug:
use `displayName` for label changes, and if a rename is unavoidable,
add a `renames` entry.

Part of CC-2871.

Co-authored-by: Claude <noreply@anthropic.com>
Daisy S. Hollman 2 hónapja
szülő
commit
b01a789953
2 módosított fájl, 21 hozzáadás és 0 törlés
  1. 6 0
      .claude-plugin/marketplace.json
  2. 15 0
      README.md

+ 6 - 0
.claude-plugin/marketplace.json

@@ -6,6 +6,12 @@
     "name": "Anthropic",
     "email": "support@anthropic.com"
   },
+  "renames": {
+    "adlc": "agentforce-adlc",
+    "airwallex": "airwallex-agentos",
+    "convex-backend": "convex",
+    "vals": "valtown"
+  },
   "plugins": [
     {
       "name": "42crunch-api-security-testing",

+ 15 - 0
README.md

@@ -42,6 +42,21 @@ plugin-name/
 └── README.md            # Documentation
 ```
 
+## Plugin names are immutable
+
+The `name` field in a marketplace entry is an **immutable slug**. Once a plugin has been published, its `name` must not change — users have it installed under that slug, and renaming it breaks their install with a `plugin-not-found` error.
+
+- To change how a plugin is labeled in the UI, set or update `displayName` instead.
+- If a rename is genuinely unavoidable, add an entry to the top-level `renames` map in `.claude-plugin/marketplace.json` so existing installs auto-migrate:
+
+```json
+"renames": {
+  "old-name": "new-name"
+}
+```
+
+The Claude Code plugin loader reads this map and transparently rewrites the old slug to the new one on the user's next sync.
+
 ## Skill-bundle plugins
 
 When a plugin's source repository ships skills (`SKILL.md` files) without a `.claude-plugin/plugin.json` manifest, the marketplace entry can declare the skills directly using `strict: false` and an explicit `skills` array.