feat: v3.0.0 architecture overhaul
- Rename marketplace to lm-claude-plugins - Move MCP servers to root with symlinks - Add 6 PR tools to Gitea MCP (list_pull_requests, get_pull_request, get_pr_diff, get_pr_comments, create_pr_review, add_pr_comment) - Add clarity-assist plugin (prompt optimization with ND accommodations) - Add git-flow plugin (workflow automation) - Add pr-review plugin (multi-agent review with confidence scoring) - Centralize configuration docs - Update all documentation for v3.0.0 BREAKING CHANGE: MCP server paths changed, marketplace renamed Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -73,6 +73,22 @@ for i in $(seq 0 $((PLUGIN_COUNT - 1))); do
|
||||
echo "WARNING: Missing 'repository' in marketplace entry for $PLUGIN_NAME"
|
||||
fi
|
||||
|
||||
# v3.0.0: Check category, tags, license fields
|
||||
if ! jq -e ".plugins[$i].category" "$MARKETPLACE_JSON" >/dev/null; then
|
||||
echo "ERROR: Missing 'category' in marketplace entry for $PLUGIN_NAME (required v3.0.0+)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! jq -e ".plugins[$i].tags | type == \"array\"" "$MARKETPLACE_JSON" >/dev/null; then
|
||||
echo "ERROR: Missing or invalid 'tags' array in marketplace entry for $PLUGIN_NAME (required v3.0.0+)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! jq -e ".plugins[$i].license" "$MARKETPLACE_JSON" >/dev/null; then
|
||||
echo "ERROR: Missing 'license' in marketplace entry for $PLUGIN_NAME (required v3.0.0+)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ Marketplace entry $PLUGIN_NAME valid"
|
||||
done
|
||||
|
||||
@@ -135,5 +151,49 @@ for plugin_dir in "$PLUGINS_DIR"/*/; do
|
||||
echo "✓ $plugin_name valid"
|
||||
done
|
||||
|
||||
# v3.0.0: Validate MCP server symlinks
|
||||
echo ""
|
||||
echo "=== Validating MCP Server Symlinks (v3.0.0+) ==="
|
||||
|
||||
# Check shared MCP servers exist
|
||||
if [[ ! -d "$ROOT_DIR/mcp-servers/gitea" ]]; then
|
||||
echo "ERROR: Shared gitea MCP server not found at mcp-servers/gitea/"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Shared gitea MCP server exists"
|
||||
|
||||
if [[ ! -d "$ROOT_DIR/mcp-servers/netbox" ]]; then
|
||||
echo "ERROR: Shared netbox MCP server not found at mcp-servers/netbox/"
|
||||
exit 1
|
||||
fi
|
||||
echo "✓ Shared netbox MCP server exists"
|
||||
|
||||
# Check symlinks for plugins that use MCP servers
|
||||
check_mcp_symlink() {
|
||||
local plugin_name="$1"
|
||||
local server_name="$2"
|
||||
local symlink_path="$ROOT_DIR/plugins/$plugin_name/mcp-servers/$server_name"
|
||||
|
||||
if [[ -L "$symlink_path" ]]; then
|
||||
# Verify symlink resolves correctly
|
||||
if [[ -d "$symlink_path" ]]; then
|
||||
echo "✓ $plugin_name -> $server_name symlink valid"
|
||||
else
|
||||
echo "ERROR: $plugin_name -> $server_name symlink broken (does not resolve)"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "ERROR: Missing symlink at plugins/$plugin_name/mcp-servers/$server_name"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Plugins with gitea MCP dependency
|
||||
check_mcp_symlink "projman" "gitea"
|
||||
check_mcp_symlink "pr-review" "gitea"
|
||||
|
||||
# Plugins with netbox MCP dependency
|
||||
check_mcp_symlink "cmdb-assistant" "netbox"
|
||||
|
||||
echo ""
|
||||
echo "=== All validations passed ==="
|
||||
|
||||
Reference in New Issue
Block a user