From f9e0bcf210fe8451c43f7b6dee6a25bd0a75fe9d Mon Sep 17 00:00:00 2001 From: Serge Date: Wed, 22 Apr 2026 15:50:34 -0400 Subject: [PATCH] fix(plugin): make local plugin install work out of the box Two separate schema issues blocked `/plugin marketplace add ./plugins` followed by `/plugin install semantica@semantica-local`: 1. `marketplace.json` was missing the required top-level `owner` object. Claude Code rejects with: `owner: Invalid input: expected object, received undefined`. 2. `plugin.json` declared `"agents": "./agents"` (string), but Claude Code's manifest schema rejects non-array `agents` with: `Validation errors: agents: Invalid input`. Auto-discovery from the default `agents/` directory works when the field is omitted, provided agents are flat `.md` files with frontmatter (Claude Code's subagent convention) rather than `/AGENT.md` subdirectories. Changes: - add `owner` object to `marketplace.json` - drop `agents` field from `plugin.json` (falls back to auto-discovery) - rename `agents//AGENT.md` -> `agents/.md` (frontmatter content is unchanged, just the path) After this, the documented local-install flow succeeds end-to-end. --- plugins/.claude-plugin/marketplace.json | 4 ++++ plugins/.claude-plugin/plugin.json | 1 - .../agents/{decision-advisor/AGENT.md => decision-advisor.md} | 0 plugins/agents/{explainability/AGENT.md => explainability.md} | 0 plugins/agents/{kg-assistant/AGENT.md => kg-assistant.md} | 0 5 files changed, 4 insertions(+), 1 deletion(-) rename plugins/agents/{decision-advisor/AGENT.md => decision-advisor.md} (100%) rename plugins/agents/{explainability/AGENT.md => explainability.md} (100%) rename plugins/agents/{kg-assistant/AGENT.md => kg-assistant.md} (100%) diff --git a/plugins/.claude-plugin/marketplace.json b/plugins/.claude-plugin/marketplace.json index a4e48a56..cbe8b924 100644 --- a/plugins/.claude-plugin/marketplace.json +++ b/plugins/.claude-plugin/marketplace.json @@ -1,5 +1,9 @@ { "name": "semantica-local", + "owner": { + "name": "Hawksight AI", + "url": "https://github.com/Hawksight-AI/semantica" + }, "plugins": [ { "name": "semantica", diff --git a/plugins/.claude-plugin/plugin.json b/plugins/.claude-plugin/plugin.json index 2f21a77d..4483838b 100644 --- a/plugins/.claude-plugin/plugin.json +++ b/plugins/.claude-plugin/plugin.json @@ -25,6 +25,5 @@ "mcp" ], "skills": "./skills", - "agents": "./agents", "hooks": "./hooks/hooks.json" } diff --git a/plugins/agents/decision-advisor/AGENT.md b/plugins/agents/decision-advisor.md similarity index 100% rename from plugins/agents/decision-advisor/AGENT.md rename to plugins/agents/decision-advisor.md diff --git a/plugins/agents/explainability/AGENT.md b/plugins/agents/explainability.md similarity index 100% rename from plugins/agents/explainability/AGENT.md rename to plugins/agents/explainability.md diff --git a/plugins/agents/kg-assistant/AGENT.md b/plugins/agents/kg-assistant.md similarity index 100% rename from plugins/agents/kg-assistant/AGENT.md rename to plugins/agents/kg-assistant.md