# Claude Plugin Marketplace Integration for Luzia ## Overview Luzia now integrates with the Claude official plugin marketplace as a trusted source for AI skills and capabilities. This enables intelligent plugin skill detection, matching, and dispatch for tasks. ## Architecture ``` ┌─────────────────────────────────────┐ │ Claude Marketplace │ │ (Official Plugins) │ └──────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ PluginMarketplaceRegistry │ │ (Load & Index Plugins) │ └──────────────┬──────────────────────┘ │ ┌──────────┴──────────┐ │ │ ▼ ▼ ┌──────────────────┐ ┌──────────────────────┐ │ PluginSkillLoader│ │ PluginCapabilityMatcher │ (Skills from Caps) │ (Find Plugins for Tasks) └──────────────────┘ └──────────────────────┘ │ │ └──────────────┬──────┘ ▼ ┌────────────────────────┐ │DispatcherPluginBridge │ │(Integrate with Dispatch) └────────────────────────┘ │ ▼ ┌──────────────────┐ │Shared Knowledge │ │Graph (Plugins) │ └──────────────────┘ ``` ## Components ### 1. **PluginMarketplaceRegistry** (`plugin_marketplace.py`) Central registry of official Claude plugins with built-in support for: - **Code Simplifier**: Code refactoring and optimization - **Code Reviewer**: Security, performance, and quality reviews - **API Integration Helper**: API client generation and validation **Key Features:** - Plugin metadata (name, description, version, trust level) - Capability indexing (fast lookup by category/keyword) - Plugin matching for task descriptions - Export to knowledge graph format **Usage:** ```python from lib.plugin_marketplace import get_marketplace_registry registry = get_marketplace_registry() plugins = registry.list_plugins(category='security') matched = registry.find_plugins_for_task( 'Find vulnerabilities in code', ['security', 'code', 'review'] ) ``` ### 2. **PluginSkillLoader** (`plugin_skill_loader.py`) Converts plugin capabilities into Luzia skills for task dispatch. **Features:** - Generate skills from plugin capabilities - Index skills by keywords and categories - Cache skills for performance - Export for dispatcher/knowledge graph - Skill-to-plugin mapping **Usage:** ```python from lib.plugin_skill_loader import get_plugin_skill_loader loader = get_plugin_skill_loader() skills = loader.generate_skills_from_plugins() matched = loader.find_skills_for_task('simplify this code') ``` **Generated Skills:** ``` code-simplifier:simplify_code (Code Simplifier) code-simplifier:detect_complexity (Code Simplifier) code-simplifier:suggest_improvements (Code Simplifier) code-reviewer:security_review (Code Reviewer) code-reviewer:performance_review (Code Reviewer) code-reviewer:best_practices_review (Code Reviewer) api-integration:generate_api_client (API Integration Helper) api-integration:validate_api_spec (API Integration Helper) ``` ### 3. **DispatcherPluginBridge** (`dispatcher_plugin_integration.py`) Seamlessly integrates plugins into the task dispatch system. **Features:** - Enhance task context with plugin skills - Generate recommendations for task handling - Build execution sequences based on capabilities - Plugin-aware task dispatch **Usage:** ```python from lib.dispatcher_plugin_integration import ( DispatcherPluginBridge, PluginAwareTaskDispatcher ) bridge = DispatcherPluginBridge() context = bridge.enhance_task_context( 'Review code for security', 'myproject', 'job-123' ) dispatcher = PluginAwareTaskDispatcher(bridge) result = dispatcher.dispatch_with_plugin_context( 'Optimize this function', 'myproject', 'job-456' ) ``` ### 4. **PluginKnowledgeGraphExporter** (`plugin_kg_integration.py`) Exports plugin data to shared knowledge graph format. **Features:** - Export plugins as entities - Export skills as entities - Export relationships (plugin→skill, skill→category) - Complete KG export with metadata **Usage:** ```python from lib.plugin_kg_integration import export_plugins_to_kg # Export to files exports = export_plugins_to_kg() # Each export type: # - plugins_entities.json # - skills_entities.json # - relationships.json # - complete_export.json ``` ### 5. **PluginCLI** (`plugin_cli.py`) Command-line interface for plugin operations. **Commands:** ```bash # List all plugins luzia plugins list # Show plugin details luzia plugins code-simplifier luzia plugins code-reviewer # List all skills luzia plugins skills # Find plugins for a task luzia plugins find "review code for security" # Export plugin data luzia plugins export # Show statistics luzia plugins stats # Help luzia plugins help ``` ## Plugin Definitions ### Code Simplifier **ID:** `code-simplifier` **Vendor:** Anthropic **Trust:** Trusted **Capabilities:** - `simplify_code` - Analyze and simplify code for readability - `detect_complexity` - Identify overly complex code patterns - `suggest_improvements` - Suggest code improvements and best practices ### Code Reviewer **ID:** `code-reviewer` **Vendor:** Anthropic **Trust:** Trusted **Capabilities:** - `security_review` - Identify security vulnerabilities - `performance_review` - Analyze performance bottlenecks - `best_practices_review` - Check against best practices ### API Integration Helper **ID:** `api-integration` **Vendor:** Anthropic **Trust:** Trusted **Capabilities:** - `generate_api_client` - Generate API client from specs - `validate_api_spec` - Validate OpenAPI/Swagger specs ## Task Matching Flow 1. **Task Received**: "Review this code for security and performance" 2. **Keyword Extraction**: ['security', 'performance', 'review', 'code'] 3. **Plugin Matching**: Code Reviewer (2.9 relevance score) 4. **Skill Matching**: - `code-reviewer:security_review` (relevance: 2.9) - `code-reviewer:performance_review` (relevance: 2.9) 5. **Recommendations Generated**: - Primary: security_review - Alternatives: performance_review - Sequence: security → performance 6. **Task Dispatched** with plugin context ## Knowledge Graph Integration Plugin data is exported to shared knowledge graph with: ### Entities - **Plugins**: name, vendor, version, description, trust_level, capabilities - **Skills**: name, category, tags, keywords, trust_level, plugin_id - **Categories**: code-analysis, security, performance, integration ### Relations - `plugin provides_capability skill` - `plugin supports_category category` - `skill belongs_to_category category` ### Access ```bash # Query plugins for a task luzia docs search "plugin marketplace" # Show plugin entity luzia docs --show "Code Simplifier" # Show knowledge graph stats luzia docs --stats ``` ## Testing Comprehensive test suite available: ```bash # Run all tests python3 tests/test_plugin_system.py # Test output shows: # - Registry tests (5 tests) # - Skill tests (7 tests) # - Capability matching (4 tests) # - Dispatcher integration (5 tests) # - KG export tests (6 tests) # Results: 27/27 tests passed ✓ ``` ## Usage Examples ### Example 1: Find Plugins for Task ```python import sys sys.path.insert(0, 'lib') from plugin_skill_loader import get_plugin_skill_loader loader = get_plugin_skill_loader() task = "simplify and optimize this Python function" matched = loader.find_skills_for_task(task, min_relevance=0.3) for skill in matched: print(f"{skill['name']}: {skill['description']}") ``` ### Example 2: Dispatch Task with Plugin Context ```python from dispatcher_plugin_integration import PluginAwareTaskDispatcher dispatcher = PluginAwareTaskDispatcher() result = dispatcher.dispatch_with_plugin_context( task_description='Review code for security issues', project='my-project', job_id='job-789' ) print(f"Matched {len(result['plugin_context']['plugin_analysis']['matched_skills'])} skills") print(f"Primary recommendation: {result['plugin_context']['recommended_plugins']['primary_skill']['name']}") ``` ### Example 3: CLI Usage ```bash # List all plugins and their capabilities $ luzia plugins list Name Vendor Trust Capabilities Code Simplifier anthropic trusted 3 Code Reviewer anthropic trusted 3 API Integration Helper anthropic trusted 2 # Find plugins for a specific task $ luzia plugins find "identify security vulnerabilities" { "query": "identify security vulnerabilities", "matched_skills": [ { "skill_id": "code-reviewer:security_review", "name": "security_review (Code Reviewer)", "relevance_score": 2.9, ... } ], "count": 1 } # Export all plugin data $ luzia plugins export { "action": "export_plugins", "status": "success", "files": { "plugins_entities": "/tmp/.luzia-kg-exports/plugins_entities.json", "skills_entities": "/tmp/.luzia-kg-exports/skills_entities.json", "relationships": "/tmp/.luzia-kg-exports/relationships.json", "complete_export": "/tmp/.luzia-kg-exports/complete_export.json" }, "count": 4 } ``` ## Configuration Plugins are configured in `lib/plugin_marketplace.py` in the `OFFICIAL_PLUGINS` dictionary: ```python OFFICIAL_PLUGINS = { 'plugin-id': { 'id': 'plugin-id', 'name': 'Plugin Name', 'description': 'Description', 'vendor': 'anthropic', # All official plugins 'version': '1.0.0', 'url': 'https://marketplace.claude.ai/plugins/...', 'capabilities': [ { 'name': 'capability_name', 'description': 'What it does', 'category': 'category', 'tags': ['tag1', 'tag2'] } ], 'trust_level': 'trusted', 'tags': ['plugin', 'tags'] } } ``` ## Adding New Plugins To add a new official plugin: 1. Add entry to `OFFICIAL_PLUGINS` dict in `plugin_marketplace.py` 2. Define capabilities with categories and tags 3. Set trust_level to 'trusted' for official plugins 4. Regenerate skills: `python3 -c "from lib.plugin_skill_loader import generate_all_skills; generate_all_skills()"` 5. Export to KG: `python3 -c "from lib.plugin_kg_integration import export_plugins_to_kg; export_plugins_to_kg()"` ## Performance - **Plugin Loading**: ~50ms (3 plugins) - **Skill Generation**: ~100ms (8 skills from 3 plugins) - **Task Matching**: ~10ms per task - **Cache Hit**: <1ms ## Storage - **Plugin Registry Cache**: `/tmp/.luzia-plugins/registry.json` - **Plugin Skills Cache**: `/tmp/.luzia-plugin-skills/skills.json` - **KG Exports**: `/tmp/.luzia-kg-exports/` - `plugins_entities.json`: Plugin entities for KG - `skills_entities.json`: Skill entities for KG - `relationships.json`: All relationships - `complete_export.json`: Complete export with metadata ## Future Enhancements 1. **Marketplace API Integration**: Fetch plugins from marketplace.claude.ai 2. **Dynamic Plugin Discovery**: Load plugins from URLs 3. **Plugin Authentication**: Support for authenticated plugins 4. **Custom Plugins**: User-defined plugins and capabilities 5. **Plugin Performance Metrics**: Track plugin effectiveness 6. **Community Plugins**: Support for community-contributed plugins (with separate trust level) ## Troubleshooting ### No plugins found ```bash # Check if plugins are loaded python3 -c "from lib.plugin_marketplace import get_marketplace_registry; r = get_marketplace_registry(); print(len(r.plugins))" # Should output: 3 (for the official plugins) ``` ### Skills not matching ```bash # Check skill generation python3 -c "from lib.plugin_skill_loader import get_plugin_skill_loader; l = get_plugin_skill_loader(); print(len(l.skills))" # Should output: 8 (for the 3 official plugins) ``` ### KG export fails ```bash # Check export directory ls -la /tmp/.luzia-kg-exports/ # Should contain 4 JSON files ``` ## Integration with Luzia Flow The plugin system integrates at multiple points: 1. **Task Dispatch**: Plugins matched before dispatcher queues task 2. **Skill Recommendation**: Top 3-5 skills suggested for execution 3. **Context Hydration**: Task context enriched with plugin metadata 4. **Knowledge Graph**: Plugin skills indexed for search/discovery ## See Also - `tests/test_plugin_system.py` - Test suite - `lib/responsive_dispatcher.py` - Task dispatcher - `lib/flow_intelligence.py` - Task flow management - `/opt/server-agents/orchestrator/docs/` - Full documentation