From 1ee5713f5d8c8fe3fa09994a448ecf6efc4ecedb Mon Sep 17 00:00:00 2001 From: Saleh Alghusson Date: Mon, 17 Aug 2026 19:58:01 +0000 Subject: [PATCH] ci: validate Agent Plugins manifests and enforce version sync - Trigger validate-plugin.yml on plugin.json and mcp.json changes - Validate both manifests against the official Agent Plugins 1.0.0 schemas with ajv - Fail if versions drift across package.json, plugin.json, and marketplace.json --- .github/workflows/validate-plugin.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/validate-plugin.yml b/.github/workflows/validate-plugin.yml index fb0f5b9..65ca470 100644 --- a/.github/workflows/validate-plugin.yml +++ b/.github/workflows/validate-plugin.yml @@ -5,11 +5,15 @@ on: paths: - '.claude-plugin/**' - 'package.json' + - 'plugin.json' + - 'mcp.json' push: branches: [main] paths: - '.claude-plugin/**' - 'package.json' + - 'plugin.json' + - 'mcp.json' jobs: validate: @@ -44,3 +48,23 @@ jobs: cat .claude-plugin/marketplace.json | jq empty echo "✓ JSON syntax is valid" + - name: Validate Agent Plugins Manifests + run: | + curl -fsSL --retry 3 -o /tmp/plugin.schema.json https://agent-plugins.org/schemas/1.0.0/plugin.schema.json + curl -fsSL --retry 3 -o /tmp/mcp.schema.json https://agent-plugins.org/schemas/1.0.0/mcp.schema.json + npx --yes ajv-cli@5 validate --spec=draft2020 -s /tmp/plugin.schema.json -d plugin.json + npx --yes ajv-cli@5 validate --spec=draft2020 -s /tmp/mcp.schema.json -d mcp.json + echo "✓ plugin.json and mcp.json conform to Agent Plugins 1.0.0 schemas" + + - name: Check Version Sync + run: | + PKG=$(jq -r '.version' package.json) + PLUGIN=$(jq -r '.version' plugin.json) + MARKETPLACE=$(jq -r '.plugins[0].version' .claude-plugin/marketplace.json) + echo "package.json=$PKG plugin.json=$PLUGIN marketplace.json=$MARKETPLACE" + if [ "$PKG" != "$PLUGIN" ] || [ "$PKG" != "$MARKETPLACE" ]; then + echo "Error: version mismatch across package.json, plugin.json, and .claude-plugin/marketplace.json" + exit 1 + fi + echo "✓ Versions are in sync" +