fix: use object-shaped author field and surface descriptions in marketplace.json
Generate plugin manifests / validate (pull_request) Successful in 16s
Generate plugin manifests / generate (pull_request) Skipped

Claude Code's plugin/marketplace schemas require author to be an object
({"name": ...}), not a bare string — installing any plugin from this
marketplace failed validation ("author: Invalid input: expected object,
received string"). Convert every plugins/*/plugin.json author field
accordingly, and add a build-time check so this can't regress.

Also propagate each plugin's description/author into the generated
marketplace.json entries (not just its own nested plugin.json), matching
Anthropic's official marketplace shape, so the Discover UI shows a
description before install instead of a blank "Plugin details" pane.
This commit is contained in:
2026-08-25 00:15:31 -04:00
parent f25f2e8abc
commit 8400f41419
27 changed files with 134 additions and 28 deletions
@@ -2,5 +2,7 @@
"name": "core-essentials",
"description": "Core cross-tool utilities, including delegation to the Antigravity CLI (agy) for grounded research and large multi-file audits.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
+3 -1
View File
@@ -2,5 +2,7 @@
"name": "date-time",
"description": "Retrieves the exact current date and time for time-sensitive queries, scheduling, duration calculations, and validating chronological context.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
@@ -2,5 +2,7 @@
"name": "docs-sync-audit",
"description": "Analyzes repository delta since the last documentation update and synchronizes the Single Source of Truth (docs/, wiki, or README) with the current codebase state.",
"version": "1.3.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
@@ -2,5 +2,7 @@
"name": "git-publish-workflow",
"description": "Automates branching, conventional commits, testing, and PR creation for uncommitted or staged work. Handles both independent and stacked PRs.",
"version": "1.2.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
+3 -1
View File
@@ -2,5 +2,7 @@
"name": "gitea-mcp",
"description": "Connects Claude Code/agy to a Gitea instance via the official gitea-mcp server, authenticated with GITEA_HOST/GITEA_ACCESS_TOKEN you set locally.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
+3 -1
View File
@@ -2,5 +2,7 @@
"name": "github-mcp",
"description": "Connects Claude Code/agy to GitHub via the official MCP server, authenticated with a GITHUB_PERSONAL_ACCESS_TOKEN you set locally.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
+3 -1
View File
@@ -2,5 +2,7 @@
"name": "mirror-it",
"description": "Configures a Gitea repository to automatically push-mirror its contents to GitHub using the tea CLI and jq.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
@@ -2,5 +2,7 @@
"name": "readme-sync-audit",
"description": "Analyzes repository delta since the last documentation update and synchronizes the README.md with the current codebase state.",
"version": "1.2.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
+3 -1
View File
@@ -2,5 +2,7 @@
"name": "ship-it",
"description": "Runs a comprehensive pre-flight audit, syncs the README, and publishes the changes to a new PR.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
@@ -2,5 +2,7 @@
"name": "systematic-enumeration",
"description": "Forces element-by-element verification for finite sets to prevent counting errors.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}
@@ -2,5 +2,7 @@
"name": "technical-devlog-scribe",
"description": "Generates a highly structured, objective technical summary of a development session.",
"version": "1.0.0",
"author": "Rootiest"
"author": {
"name": "Rootiest"
}
}