Compare commits

..

2 Commits

Author SHA1 Message Date
Daisy S. Hollman
66dacfc456 ci: fail validate when a plugin name is removed without a renames entry (#3177)
Adds a step to the validate job that diffs plugins[].name against the
PR base and fails if any name disappeared without a corresponding key
in the top-level "renames" map. Prevents the next airwallex-style
plugin-not-found regression.

Part of CC-2871. Depends on the renames map (PR A).

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-03 19:18:32 -05:00
Daisy Hollman
7e287ffe95 feat: add renames map for auto-migration of renamed plugins
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>
2026-06-22 17:34:37 +00:00
3 changed files with 111 additions and 117 deletions

View File

@@ -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",
@@ -123,7 +129,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/alloydb.git",
"sha": "2bc309c97558356ca1599c29bef9c17bf10d45e4"
"sha": "98bdfce9ab49622f5f4b1428130cc79feb37d93e"
},
"homepage": "https://cloud.google.com/alloydb"
},
@@ -137,7 +143,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/alloydb-omni.git",
"sha": "da3dd45c7098f7fe11f95c01ae6ce8125459b534"
"sha": "23f9166ba3950728fb2c48390b2e35cc3ddd3b35"
},
"homepage": "https://github.com/gemini-cli-extensions/alloydb-omni"
},
@@ -223,7 +229,7 @@
"source": {
"source": "url",
"url": "https://github.com/astronomer/agents.git",
"sha": "e4ebf9a7ad3f8dbf3fcfda9c245a65eb1415967b"
"sha": "da0048c49f88335c9d9cc617837e182ba04a2ab5"
},
"homepage": "https://github.com/astronomer/agents"
},
@@ -244,7 +250,7 @@
"source": {
"source": "url",
"url": "https://github.com/atlassian/atlassian-mcp-server.git",
"sha": "55cfdc55afed1e273354f840a238421fbd9eee86"
"sha": "f4911dba81f25782c88815b03deabf444cd46e0d"
},
"homepage": "https://github.com/atlassian/atlassian-mcp-server"
},
@@ -276,7 +282,7 @@
"url": "https://github.com/auth0/agent-skills.git",
"path": "plugins/auth0",
"ref": "main",
"sha": "3e3a5d84fe922378bd2c2eafb7f7986759e3c87e"
"sha": "838a181a235d8e563b437555794ddfe9bd60284b"
},
"homepage": "https://auth0.com"
},
@@ -337,7 +343,7 @@
"url": "https://github.com/aws/agent-toolkit-for-aws.git",
"path": "plugins/aws-core",
"ref": "main",
"sha": "7898a91483218173d096db3de6892c2dc545d160"
"sha": "ff1dc6f45f5203147f6cd52662cc74ded4bb0825"
},
"homepage": "https://github.com/aws/agent-toolkit-for-aws"
},
@@ -382,7 +388,7 @@
"url": "https://github.com/awslabs/agent-plugins.git",
"path": "plugins/aws-serverless",
"ref": "main",
"sha": "ba79e65ab968ed456b3cbee5f2d851d58239e864"
"sha": "c65ee436b0db77bb75d380aef6fbdc9b114edf2a"
},
"homepage": "https://github.com/awslabs/agent-plugins"
},
@@ -425,7 +431,7 @@
"source": {
"source": "url",
"url": "https://github.com/microsoft/azure-skills.git",
"sha": "2cd48ca625cddcc1d377d2861fbddd54417c70cc"
"sha": "206ad20914b60368f907ab84f64cb4aa50bbfb20"
},
"homepage": "https://github.com/microsoft/azure-skills"
},
@@ -477,7 +483,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/bigquery-data-analytics.git",
"sha": "89f3048eef8c808d1b3c53c90348b18c9a73055c"
"sha": "4e64d8488e95697a348b88b8ee47f0e676b2544b"
},
"homepage": "https://github.com/gemini-cli-extensions/bigquery-data-analytics"
},
@@ -493,7 +499,7 @@
"url": "https://github.com/boltz-bio/boltz-api-skills.git",
"path": "plugins/boltz",
"ref": "main",
"sha": "70e480ebb14baecfc4456b49eb8b724611470b7c"
"sha": "59c4c2868b8ebbd1eca1f4b94bb99bf96220d15e"
},
"homepage": "https://boltz.bio"
},
@@ -535,7 +541,7 @@
"source": {
"source": "url",
"url": "https://github.com/buildkite/skills.git",
"sha": "6ab569537d836b66edcc52d61c566bdfa670a7c2"
"sha": "ffffb1ed6c82a3b170433572b93d85b764c91bab"
},
"homepage": "https://buildkite.com"
},
@@ -551,7 +557,7 @@
"url": "https://github.com/carta/plugins.git",
"path": "plugins/carta-cap-table",
"ref": "main",
"sha": "d73954d3d9ce1e3fce1ec2b9ee6819922dd539e3"
"sha": "62a5752861040f198e2c646761618cfedc2657b4"
},
"homepage": "https://carta.com"
},
@@ -583,7 +589,7 @@
"url": "https://github.com/carta/plugins.git",
"path": "plugins/carta-investors",
"ref": "main",
"sha": "d73954d3d9ce1e3fce1ec2b9ee6819922dd539e3"
"sha": "bb45f4b388a0d96366b137a8c47d03c45434d1fa"
},
"homepage": "https://carta.com"
},
@@ -610,7 +616,7 @@
"source": {
"source": "url",
"url": "https://github.com/ChromeDevTools/chrome-devtools-mcp.git",
"sha": "6a9466378c13b6ccba91b54091ea83a5ca37a8db"
"sha": "52cf8c40081567a200442ab12fad43edb550b0d4"
},
"homepage": "https://github.com/ChromeDevTools/chrome-devtools-mcp"
},
@@ -626,7 +632,7 @@
"url": "https://github.com/circlefin/skills.git",
"path": "plugins/circle",
"ref": "master",
"sha": "c7d269a2025e26410e0e23fb5a73c769dc07d088"
"sha": "8ee9281f6e5ab737236ce969348adc463e6c2f79"
},
"homepage": "https://www.circle.com"
},
@@ -732,7 +738,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/cloud-sql-mysql.git",
"sha": "fda5aac59a50258d61f115f4962325b7ca8c3b36"
"sha": "4508637f66362b70b75ea6e40d41a7ef8efabcc6"
},
"homepage": "https://github.com/gemini-cli-extensions/cloud-sql-mysql"
},
@@ -746,7 +752,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/cloud-sql-postgresql.git",
"sha": "38ab73d23d58342ea046d1163ddc9f1a83d13303"
"sha": "849ce3fdc200219d2228380d2112f2bae3abc81f"
},
"homepage": "https://cloud.google.com/sql"
},
@@ -760,7 +766,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/cloud-sql-sqlserver.git",
"sha": "5069d84c78ccdc6a0177f2c7a7849b9708bde425"
"sha": "e55c1ff46d92dfcfedc6cf1139cf5eb5beb9f02d"
},
"homepage": "https://github.com/gemini-cli-extensions/cloud-sql-sqlserver"
},
@@ -769,7 +775,7 @@
"source": {
"source": "url",
"url": "https://github.com/cloudflare/skills.git",
"sha": "27ce0c0e159225caa7ed30ebefd4107aa6c52497"
"sha": "ffcc622bf112eccc49c4b433faa5dd28e9ede2ea"
},
"description": "Skills for the Cloudflare developer platform: Workers, Durable Objects, Agents SDK, MCP servers, Wrangler CLI, and web performance.",
"category": "deployment",
@@ -839,7 +845,7 @@
"source": {
"source": "url",
"url": "https://github.com/coderabbitai/skills.git",
"sha": "2fd091d9582deccf19929e21f934921d0e8f686e"
"sha": "a81eb76a1539e4a3f2b5c6fc133849124e72d303"
},
"homepage": "https://github.com/coderabbitai/skills"
},
@@ -853,7 +859,7 @@
"source": {
"source": "url",
"url": "https://github.com/CodSpeedHQ/codspeed.git",
"sha": "7ce2c9823f67522a81572814c6c8bebab0ca5687"
"sha": "90c83f42f4269f88046109df120046f677b9d873"
},
"homepage": "https://codspeed.io"
},
@@ -878,7 +884,7 @@
"source": {
"source": "url",
"url": "https://github.com/spotify/confidence-ai-plugins.git",
"sha": "136a99ec77041e07d2757030ed27c0437040426d"
"sha": "01d1198bae6032854c192b7232af563698768777"
},
"homepage": "https://confidence.spotify.com"
},
@@ -904,7 +910,7 @@
"source": {
"source": "url",
"url": "https://github.com/get-convex/convex-backend-skill.git",
"sha": "bb4275f38abc4aa7196b936be756d2811dc4b4fc"
"sha": "b04d9d3c83bf8446302be95e12cb834fba6fe622"
},
"homepage": "https://github.com/get-convex/convex-backend-skill",
"keywords": [
@@ -935,7 +941,7 @@
"source": {
"source": "url",
"url": "https://github.com/CrowdStrike/foundry-skills.git",
"sha": "20ef548a615a5a8a18de7edbe65eb4bb10c8563b"
"sha": "a7e6a75ad2d9aa4093771e8c07d455c1ce39aae1"
},
"homepage": "https://github.com/CrowdStrike/foundry-skills"
},
@@ -981,7 +987,7 @@
"source": {
"source": "url",
"url": "https://github.com/dash0hq/dash0-agent-plugin.git",
"sha": "f8c31f6fcdc6588a27153ceed09e561a40da3a86"
"sha": "44be3b6fd8e6cbd1c5e59436a3e8db91d5920d0c"
},
"homepage": "https://dash0.com/"
},
@@ -992,7 +998,7 @@
"source": {
"source": "url",
"url": "https://github.com/astronomer/agents.git",
"sha": "e4ebf9a7ad3f8dbf3fcfda9c245a65eb1415967b"
"sha": "da0048c49f88335c9d9cc617837e182ba04a2ab5"
},
"homepage": "https://github.com/astronomer/agents"
},
@@ -1016,7 +1022,7 @@
"source": {
"source": "url",
"url": "https://github.com/astronomer/agents.git",
"sha": "e4ebf9a7ad3f8dbf3fcfda9c245a65eb1415967b"
"sha": "da0048c49f88335c9d9cc617837e182ba04a2ab5"
},
"homepage": "https://github.com/astronomer/agents"
},
@@ -1029,26 +1035,10 @@
"url": "https://github.com/awslabs/agent-plugins.git",
"path": "plugins/databases-on-aws",
"ref": "main",
"sha": "66dd3cf5acdf374cc0d79af2bf51fa6fbb975c07"
"sha": "c65ee436b0db77bb75d380aef6fbdc9b114edf2a"
},
"homepage": "https://github.com/awslabs/agent-plugins"
},
{
"name": "databricks",
"description": "Databricks skills for the CLI, Apps, Lakebase, Model Serving, Lakeflow Jobs, Spark Declarative Pipelines, Declarative Automation Bundles (DABs), and classic-to-serverless migration.",
"author": {
"name": "Databricks"
},
"category": "database",
"source": {
"source": "git-subdir",
"url": "https://github.com/databricks/databricks-agent-skills.git",
"path": "plugins/databricks/claude",
"ref": "main",
"sha": "e337277c9771597bd2a67dfc5f8dd1d1afc887c6"
},
"homepage": "https://developers.databricks.com/"
},
{
"name": "datadog",
"description": "Use Datadog directly in Claude Code through a preconfigured Datadog MCP server. Query logs, metrics, traces, dashboards, and more through natural conversation. This plugin is in preview.",
@@ -1087,7 +1077,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/dataproc.git",
"sha": "c36c7f8bb53a1f8903382471366986ef226c509d"
"sha": "a8d5220007ae51a7104428acd38748432de597a8"
},
"homepage": "https://github.com/gemini-cli-extensions/dataproc"
},
@@ -1101,7 +1091,7 @@
"source": {
"source": "url",
"url": "https://github.com/datarobot-oss/datarobot-agent-skills.git",
"sha": "f4b3c29db60e1d735285a6f51328a69a2b500338"
"sha": "00207d8d614128deef728a9e6f7f07a3f1d958c6"
},
"homepage": "https://datarobot.com"
},
@@ -1163,26 +1153,10 @@
"source": {
"source": "url",
"url": "https://github.com/dominodatalab/domino-claude-plugin.git",
"sha": "64f44339466b10982a5b1f0e7292ca832b3551f1"
"sha": "c2649c78bac350715594352ca61d2df9e3340783"
},
"homepage": "https://www.domino.ai"
},
{
"name": "dropbox",
"description": "The Dropbox plugin for Claude connects your Dropbox files directly to Claude, so you can search, organize, save generated content, and create sharing links without switching tools. It respects your existing Dropbox permissions, and Claude only works with files you already have access to.",
"author": {
"name": "Dropbox"
},
"category": "productivity",
"source": {
"source": "git-subdir",
"url": "https://github.com/dropbox/dropbox-ai-plugins.git",
"path": "claude",
"ref": "main",
"sha": "2f9c81a5d012cc9c389132331a93f4ade06a97a9"
},
"homepage": "https://www.dropbox.com"
},
{
"name": "duckdb-skills",
"description": "DuckDB-powered skills for Claude Code: read any data file, attach and query DuckDB databases, search DuckDB/DuckLake docs, search past session logs, and install/update DuckDB extensions.",
@@ -1221,7 +1195,7 @@
"source": {
"source": "url",
"url": "https://github.com/exa-labs/exa-mcp-server.git",
"sha": "34a6b2aa877307639a1750ad6b1a1f74c66a34f5"
"sha": "9ea4ba3e67f87c462c3e06b192470e837ed9009e"
},
"homepage": "https://exa.ai/docs/reference/exa-mcp"
},
@@ -1245,7 +1219,7 @@
"url": "https://github.com/expo/skills.git",
"path": "plugins/expo",
"ref": "main",
"sha": "81ee6546b0745dc666ebacfc1f48e4bff74fbf44"
"sha": "b553ae4e1755bec11eac21517fe63040c7e07f2c"
},
"homepage": "https://github.com/expo/skills/blob/main/plugins/expo/README.md"
},
@@ -1293,7 +1267,7 @@
"source": {
"source": "url",
"url": "https://github.com/figma/mcp-server-guide.git",
"sha": "bea8bea5f676ab2bf76fa822b82f50b66653c098"
"sha": "2efd0e37d10c35c4a7cf6d2b7381c9dc1a569bd4"
},
"homepage": "https://github.com/figma/mcp-server-guide"
},
@@ -1311,7 +1285,7 @@
"source": {
"source": "url",
"url": "https://github.com/firecrawl/firecrawl-claude-plugin.git",
"sha": "069551a7d2b0379ea7589a9e2f46062e69820a2d"
"sha": "e30c89f7b065b29a7283d49a4dcc5e302900fda3"
},
"homepage": "https://github.com/firecrawl/firecrawl-claude-plugin.git"
},
@@ -1325,7 +1299,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/firestore-native.git",
"sha": "581b498b39529c895889742e51ea4a6d3bf2d547"
"sha": "26ab5016e0216cf86f0988e1d11b52b5a101783e"
},
"homepage": "https://github.com/gemini-cli-extensions/firestore-native"
},
@@ -1428,7 +1402,7 @@
"source": {
"source": "url",
"url": "https://github.com/huggingface/skills.git",
"sha": "093e0bb81e568503fbb091d694fbcdb6273d7f44"
"sha": "ea9a24f38a98baf2430dab3bcb31a89753ae9e6d"
},
"homepage": "https://github.com/huggingface/skills.git"
},
@@ -1456,7 +1430,7 @@
"source": {
"source": "url",
"url": "https://github.com/heygen-com/hyperframes.git",
"sha": "ae8b94c51841be8c4b53fe861adae9371db5eff3"
"sha": "091137e3c32f7c247b6a7cc1c81ece36cd60a937"
},
"homepage": "https://hyperframes.heygen.com"
},
@@ -1669,7 +1643,7 @@
"url": "https://github.com/pydantic/skills.git",
"path": "plugins/logfire",
"ref": "main",
"sha": "f0c20b9895f06d58823032f13e68c6aaae9dd3fa"
"sha": "1e7a4567d8375e8ef07ad078d7f38bc03ce5e944"
},
"homepage": "https://github.com/pydantic/skills/tree/main/plugins/logfire"
},
@@ -1699,7 +1673,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/looker.git",
"sha": "2f871191fc110c51442cc0ab4210af329d0ebc63"
"sha": "0b4e497ef9839fce0ae1efd40216fee15a1c5e33"
},
"homepage": "https://github.com/gemini-cli-extensions/looker"
},
@@ -1840,7 +1814,7 @@
"url": "https://github.com/mercadopago/mercadopago-claude-marketplace.git",
"path": "plugins/mercadopago",
"ref": "main",
"sha": "fffc567d1cbfe18b361bf00da5677b470a94f49a"
"sha": "ba967158392bec9f0c199cd39196af64222f0ab0"
},
"homepage": "https://github.com/mercadopago/mercadopago-claude-marketplace/tree/main/plugins/mercadopago"
},
@@ -1867,7 +1841,7 @@
"url": "https://github.com/awslabs/startups.git",
"path": "migrate/plugins/migration-to-aws",
"ref": "main",
"sha": "ac1d625107f2d1905e448f4886e60c3cb264ea00"
"sha": "2e1d603a43b241f13ed40e4d1762f5e4ed744ecc"
},
"homepage": "https://github.com/awslabs/startups"
},
@@ -1945,7 +1919,7 @@
"source": {
"source": "url",
"url": "https://github.com/netlify/context-and-tools.git",
"sha": "342a3f7b0f8ebf2355eb750936b75f73b6545cc9"
"sha": "ab80a6ed2b6c4933a3f964101c82b45cab847b5b"
},
"homepage": "https://github.com/netlify/context-and-tools"
},
@@ -1991,7 +1965,7 @@
"source": {
"source": "url",
"url": "https://github.com/Nimbleway/agent-skills.git",
"sha": "1a599ea15f71d20cc6f85692030021146931997a"
"sha": "eb97261aa8145fa6d0f45d62d0955805fa06fb91"
},
"homepage": "https://docs.nimbleway.com/integrations/agent-skills/plugin-installation"
},
@@ -2018,7 +1992,7 @@
"url": "https://github.com/NVIDIA/skills.git",
"path": "plugins/nvidia-skills",
"ref": "main",
"sha": "108ec59cd735e3329418bf32e2545d8812145ebe"
"sha": "366564ddf68ad55b3c12a2faee3d2fd3d3de3b36"
},
"homepage": "https://github.com/NVIDIA/skills"
},
@@ -2080,7 +2054,7 @@
"url": "https://github.com/growthxai/output.git",
"path": "coding_assistants/claude/plugins/outputai",
"ref": "main",
"sha": "2da721305432195c2d92020167bf11905421fe61"
"sha": "66f1583420ff5c2912e331045ed225f45e835a63"
},
"homepage": "https://output.ai"
},
@@ -2190,7 +2164,7 @@
"source": {
"source": "url",
"url": "https://github.com/PostHog/ai-plugin.git",
"sha": "39a8593ef773f643c34cfdb759c0c0d6f7311c93"
"sha": "d09ebca2302c085cef2dd576f2b6ec88fe254ce1"
},
"homepage": "https://posthog.com/docs/model-context-protocol"
},
@@ -2256,7 +2230,7 @@
"url": "https://github.com/pydantic/skills.git",
"path": "plugins/ai",
"ref": "main",
"sha": "f0c20b9895f06d58823032f13e68c6aaae9dd3fa"
"sha": "1e7a4567d8375e8ef07ad078d7f38bc03ce5e944"
},
"homepage": "https://github.com/pydantic/skills/tree/main/plugins/ai"
},
@@ -2319,7 +2293,7 @@
"source": {
"source": "url",
"url": "https://github.com/TheQtCompanyRnD/agent-skills.git",
"sha": "6e3411d7e58965aa31fa3803c398511f27b29216"
"sha": "2be55aaf050cf0e5d92d62966c473d2c5f6d780a"
},
"homepage": "https://www.qt.io/"
},
@@ -2333,7 +2307,7 @@
"source": {
"source": "url",
"url": "https://github.com/quarkusio/quarkus-agent-mcp.git",
"sha": "281e701d5381ec621f2852f1b458e57e2f8dedab"
"sha": "4c1fcf1cba1f292315f7d33261274798305ea954"
},
"homepage": "https://quarkus.io"
},
@@ -2385,7 +2359,7 @@
"url": "https://github.com/redis/agent-skills.git",
"path": "plugins/redis-development",
"ref": "main",
"sha": "3d6f25505ea2adff4dd62d5a0e7f4a5b076fa047"
"sha": "5ca2e1a2d82a768221e8f71a02e3ca095a37d38e"
},
"homepage": "https://redis.io"
},
@@ -2395,7 +2369,7 @@
"source": {
"source": "url",
"url": "https://github.com/Digital-Process-Tools/claude-remember.git",
"sha": "f1a00382598ef627c858d9eed6438047b072ba41"
"sha": "8bd6255f081dc7123b6b64d335a2c8c5a379ea00"
},
"homepage": "https://github.com/Digital-Process-Tools/claude-remember"
},
@@ -2409,7 +2383,7 @@
"source": {
"source": "url",
"url": "https://github.com/resend/resend-skills.git",
"sha": "298207bbe7a43d1886dc9490ecf880b5442600f9"
"sha": "288efc7103c8177c9019dea79cf0099bacabb81d"
},
"homepage": "https://resend.com"
},
@@ -2568,7 +2542,7 @@
"url": "https://github.com/SAP/open-ux-tools.git",
"path": "packages/fiori-mcp-server",
"ref": "main",
"sha": "10d3bfcb04eea88c6b1a61f7f13479d95398a8db"
"sha": "2ad82bdef290e4a099441753be75987cf84ecd1a"
},
"homepage": "https://github.com/SAP/open-ux-tools/tree/main/packages/fiori-mcp-server"
},
@@ -2584,7 +2558,7 @@
"source": {
"source": "url",
"url": "https://github.com/SAP/mdk-mcp-server.git",
"sha": "a3df54e69dfcf193b92b0c081a4acbeefb92b419"
"sha": "10ff6ccfee094b9fb3b3877a41f00fa278b1bcc4"
},
"homepage": "https://help.sap.com/docs/MDK"
},
@@ -2624,7 +2598,7 @@
"source": "git-subdir",
"url": "https://github.com/semgrep/mcp-marketplace.git",
"path": "plugin",
"sha": "5ee984a4aeee83b3edae3ed44be4be8d333d24d1"
"sha": "18771d9a7f78b0cb15711ad759ab253b20aeb45d"
},
"homepage": "https://github.com/semgrep/mcp-marketplace.git"
},
@@ -2634,10 +2608,10 @@
"category": "monitoring",
"source": {
"source": "url",
"url": "https://github.com/getsentry/plugin-claude.git",
"sha": "47dd58a835bc070541f35bc9dd7051cf27e42a71"
"url": "https://github.com/getsentry/sentry-for-claude.git",
"sha": "9ab3551758913a4144517d4fafb71476a48c64f8"
},
"homepage": "https://github.com/getsentry/plugin-claude"
"homepage": "https://github.com/getsentry/sentry-for-claude/tree/main"
},
{
"name": "sentry-cli",
@@ -2651,7 +2625,7 @@
"url": "https://github.com/getsentry/cli.git",
"path": "plugins/sentry-cli",
"ref": "main",
"sha": "eadff28ce909222ae6aaf493d1800ee231695955"
"sha": "33028c2ac93e027ce3faa9045efc91d895deae1a"
},
"homepage": "https://sentry.io"
},
@@ -2677,7 +2651,7 @@
"url": "https://github.com/ServiceNow/sdk.git",
"path": "providers/claude/plugin",
"ref": "master",
"sha": "4aadc235ad57a7442e42529869e68ff19c59596c"
"sha": "35ef6130d8a49e67b531bde2f987808426273d15"
},
"homepage": "https://servicenow.github.io/sdk/"
},
@@ -2716,7 +2690,7 @@
"source": {
"source": "url",
"url": "https://github.com/Shopify/Shopify-AI-Toolkit.git",
"sha": "2de64b683f8120e215e783fbee12aa037ce77f55"
"sha": "a8e87a7cff153479eb77230d9c232484a1f3062f"
},
"homepage": "https://shopify.dev"
},
@@ -2738,7 +2712,7 @@
"source": {
"source": "url",
"url": "https://github.com/slackapi/slack-mcp-plugin.git",
"sha": "1559729e80eafb1e93fba4aae30c43a85fe35355"
"sha": "9ae6855c4cf81ce8ecd23b12560ff295721c0d07"
},
"homepage": "https://github.com/slackapi/slack-mcp-plugin/tree/main"
},
@@ -2768,7 +2742,7 @@
"source": {
"source": "url",
"url": "https://github.com/SonarSource/sonarqube-agent-plugins.git",
"sha": "5b4783d8749074e8e0c26ca8590990b1489771eb"
"sha": "86eb67ba72ae804f604baa58990f5388c6655410"
},
"homepage": "https://www.sonarsource.com"
},
@@ -2804,7 +2778,7 @@
"source": {
"source": "url",
"url": "https://github.com/gemini-cli-extensions/spanner.git",
"sha": "88030b07ba0d39475ff22e3d410b92fa543d0b67"
"sha": "e6a93f9ce95758ce7b7c54330871cfb40e53b976"
},
"homepage": "https://github.com/gemini-cli-extensions/spanner"
},
@@ -2828,7 +2802,7 @@
"url": "https://github.com/stripe/ai.git",
"path": "providers/claude/plugin",
"ref": "main",
"sha": "23b54f12503eb18bb05eb9de9fbaeb301bec80b0"
"sha": "d9527bfc2d0993f3d2a650501e53e4f68d179ca3"
},
"homepage": "https://github.com/stripe/ai/tree/main/providers/claude/plugin"
},
@@ -2896,7 +2870,7 @@
"source": {
"source": "url",
"url": "https://github.com/JetBrains/teamcity-cli.git",
"sha": "25c5f8d3bada8b56244f84fb7a119c330a80d998"
"sha": "2406cb584cc5ca729ed9303b27bd070cf7b206ec"
},
"homepage": "https://www.jetbrains.com/teamcity/"
},
@@ -2989,7 +2963,7 @@
"url": "https://github.com/UI5/plugins-coding-agents.git",
"path": "plugins/ui5",
"ref": "main",
"sha": "1d4dedd56afcd1c3269c4d80f09e2ddb7f1bf5be"
"sha": "60f66f3341cb69ab4f649f1f60d70649bf391be2"
},
"homepage": "https://github.com/UI5/plugins-coding-agents"
},
@@ -3007,7 +2981,7 @@
"url": "https://github.com/UI5/plugins-coding-agents.git",
"path": "plugins/ui5-typescript-conversion",
"ref": "main",
"sha": "1d4dedd56afcd1c3269c4d80f09e2ddb7f1bf5be"
"sha": "60f66f3341cb69ab4f649f1f60d70649bf391be2"
},
"homepage": "https://github.com/UI5/plugins-coding-agents"
},
@@ -3101,7 +3075,7 @@
"source": {
"source": "url",
"url": "https://github.com/wix/skills.git",
"sha": "a50d4c068ee95aa8646137fc6b78d12985651c14"
"sha": "9cd9d7c60470194a6c3170e3d093a818a2f11d6b"
},
"homepage": "https://dev.wix.com/docs/wix-cli/guides/development/about-wix-skills"
},
@@ -3154,7 +3128,7 @@
"url": "https://github.com/zapier/zapier-mcp.git",
"path": "plugins/zapier",
"ref": "main",
"sha": "28ad6ea10009a88b9ea80748fb1524363a5d54a7"
"sha": "469b06007824bb859982a95d2dad5caec11e0bf1"
},
"homepage": "https://github.com/zapier/zapier-mcp/tree/main/plugins/zapier"
},
@@ -3211,20 +3185,6 @@
"sha": "a2162c384e1ffb68b3bf14783ea9a1a762c85ff5"
},
"homepage": "https://github.com/zscaler/zscaler-mcp-server"
},
{
"name": "langfuse",
"description": "Skills for working with Langfuse, the open-source LLM engineering platform for tracing, prompt management, and evaluation.",
"author": {
"name": "Langfuse"
},
"category": "monitoring",
"source": {
"source": "url",
"url": "https://github.com/langfuse/skills.git",
"sha": "c39789078b848160a695947907db3ba40b7a2bce"
},
"homepage": "https://langfuse.com"
}
]
}

View File

@@ -38,6 +38,25 @@ jobs:
with:
fetch-depth: 0
- name: Check for renamed plugins without renames entry
run: |
set -euo pipefail
base="${{ github.event.pull_request.base.sha || 'origin/main' }}"
# Names removed from plugins[] in this diff
removed=$(comm -23 \
<(git show "$base:.claude-plugin/marketplace.json" | jq -r '.plugins[].name' | sort) \
<(jq -r '.plugins[].name' .claude-plugin/marketplace.json | sort))
[ -z "$removed" ] && { echo "No plugin names removed."; exit 0; }
# Renames keys present in HEAD
rename_keys=$(jq -r '.renames // {} | keys[]' .claude-plugin/marketplace.json | sort)
missing=$(comm -23 <(echo "$removed" | sort) <(echo "$rename_keys"))
if [ -n "$missing" ]; then
echo "::error::Plugin name(s) removed without a renames entry: $missing"
echo "Add to .claude-plugin/marketplace.json top-level \"renames\": {\"<old>\": \"<new>\"} (or null if intentionally removed)."
exit 1
fi
echo "All removed names have renames entries."
- uses: anthropics/claude-plugins-community/.github/actions/validate-plugins@426e469f322952061102b286b378c0c9733a0934
with:
marketplace-path: .claude-plugin/marketplace.json

View File

@@ -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.