From ddafadd875defc3356128cfc0cac77ccb0cb40d3 Mon Sep 17 00:00:00 2001 From: christushealth Date: Wed, 15 Jul 2026 11:44:03 -0500 Subject: [PATCH] fix: correct .claude-plugin manifest schema so the plugin installs marketplace.json's plugins[0].skills declared per-skill objects ({name, path, invoke}), but the marketplace schema expects a flat array of relative path strings (matching every other marketplace's usage, e.g. box, coursera, netsuite). plugin.json's repository field used the npm-style {type, url} object; the schema expects a plain URL string (matching ast-grep/impeccable/context-mode's plugin.json). Both mismatches make `claude plugin validate` fail, which surfaces to installers as a generic "This plugin uses a source type your Claude Code version does not support" error rather than a real schema error -- confirmed via `claude plugin install astria@astria` failing on the latest Claude Code (2.1.210) and `claude plugin validate .` pinpointing both fields. Verified fixed: validate passes and a real `claude plugin marketplace add` + `claude plugin install` round-trip succeeds. --- .claude-plugin/marketplace.json | 18 +++++++++--------- .claude-plugin/plugin.json | 5 +---- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c95b0a6..795b162 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -22,15 +22,15 @@ "homepage": "https://www.astria.ai", "tags": ["image-generation", "video", "ai", "fine-tuning", "fashion", "headshots"], "skills": [ - { "name": "astria-api", "path": "astria-api", "invoke": "/astria:astria-api" }, - { "name": "prompt-writing", "path": "prompt-writing", "invoke": "/astria:prompt-writing" }, - { "name": "packs-guide", "path": "packs-guide", "invoke": "/astria:packs-guide" }, - { "name": "unique-headshot", "path": "unique-headshot", "invoke": "/astria:unique-headshot" }, - { "name": "navigation", "path": "navigation", "invoke": "/astria:navigation" }, - { "name": "landing-page-editor", "path": "landing-page-editor", "invoke": "/astria:landing-page-editor" }, - { "name": "templatize-page", "path": "templatize-page", "invoke": "/astria:templatize-page" }, - { "name": "store-photoshoot", "path": "store-photoshoot", "invoke": "/astria:store-photoshoot" }, - { "name": "artboard", "path": "artboard", "invoke": "/astria:artboard" } + "./astria-api", + "./prompt-writing", + "./packs-guide", + "./unique-headshot", + "./navigation", + "./landing-page-editor", + "./templatize-page", + "./store-photoshoot", + "./artboard" ] } ] diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 6cd11c7..9836b59 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -7,9 +7,6 @@ "url": "https://www.astria.ai" }, "homepage": "https://www.astria.ai", - "repository": { - "type": "git", - "url": "https://github.com/astriaai/skills.git" - }, + "repository": "https://github.com/astriaai/skills", "license": "MIT" }