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 `<name>.md` files with frontmatter (Claude
   Code's subagent convention) rather than `<name>/AGENT.md`
   subdirectories.

Changes:
- add `owner` object to `marketplace.json`
- drop `agents` field from `plugin.json` (falls back to auto-discovery)
- rename `agents/<name>/AGENT.md` -> `agents/<name>.md` (frontmatter
  content is unchanged, just the path)

After this, the documented local-install flow succeeds end-to-end.
This commit is contained in:
Serge
2026-04-22 15:50:34 -04:00
parent 304b82fbd6
commit f9e0bcf210
5 changed files with 4 additions and 1 deletions
+4
View File
@@ -1,5 +1,9 @@
{ {
"name": "semantica-local", "name": "semantica-local",
"owner": {
"name": "Hawksight AI",
"url": "https://github.com/Hawksight-AI/semantica"
},
"plugins": [ "plugins": [
{ {
"name": "semantica", "name": "semantica",
-1
View File
@@ -25,6 +25,5 @@
"mcp" "mcp"
], ],
"skills": "./skills", "skills": "./skills",
"agents": "./agents",
"hooks": "./hooks/hooks.json" "hooks": "./hooks/hooks.json"
} }