diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 91392fe..1293baf 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,7 +6,7 @@ }, "metadata": { "description": "Project management plugins with Gitea and NetBox integrations", - "version": "5.3.0" + "version": "5.4.0" }, "plugins": [ { diff --git a/CHANGELOG.md b/CHANGELOG.md index 67977ea..e5ffdca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,49 @@ All notable changes to the Leo Claude Marketplace will be documented in this fil The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [5.4.0] - 2026-01-28 + +### Added + +#### Sprint 7: Multi-Model Agent Support +Configurable model selection for agents with inheritance chain. + +**Model Configuration:** +- Agent-level `model` field in YAML frontmatter (opus|sonnet|haiku) +- Plugin-level `defaultModel` in plugin.json +- Inheritance: Agent → Plugin → System default (sonnet) + +**Recommended Model Assignments:** +| Model | Use Case | Agents | +|-------|----------|--------| +| **Opus** | Complex reasoning, security analysis | planner, code-reviewer, security-reviewer, data-analysis | +| **Sonnet** | Implementation, coordination | orchestrator, executor, layout-builder, data-ingestion | +| **Haiku** | Quick validation | component-check, agent-check | + +**Documentation:** +- `docs/MODEL-RECOMMENDATIONS.md` - Central model selection guide +- `docs/CONFIGURATION.md` - Added agent model configuration section +- `CLAUDE.md` - Added model config quick reference + +**Agent Updates (7 files):** +- Opus: planner, code-reviewer (projman), security-reviewer (pr-review, code-sentinel), data-analysis +- Haiku: component-check (viz-platform), agent-check (contract-validator) + +**Plugin Manifest Updates (6 files):** +- All plugins with agents now have `defaultModel: sonnet` +- Version bumps: projman 3.3.0, pr-review 1.1.0, data-platform 1.1.0, viz-platform 1.1.0, code-sentinel 1.0.1, contract-validator 1.1.0 + +**Validation:** +- `scripts/validate-marketplace.sh` - Added model field validation (v5.4.0+) + +**Sprint Completed:** +- Milestone: Sprint 7 - Multi-Model Agent Support +- Issues: #302, #303, #304, #305, #306 +- PRs: #307, #308 +- Wiki: [Change V5.4.0: Multi-Model Support (Sprint 7 Implementation)](https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/wiki/Change-V5.4.0%3A-Multi-Model-Support-%28Sprint-7-Implementation%29) + +--- + ## [5.3.0] - 2026-01-28 ### Added diff --git a/CLAUDE.md b/CLAUDE.md index edda684..9abc42e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,7 +46,7 @@ Run `./scripts/verify-hooks.sh`. If changes affect MCP servers or hooks, inform ## Project Overview **Repository:** leo-claude-mktplace -**Version:** 5.3.0 +**Version:** 5.4.0 **Status:** Production Ready A plugin marketplace for Claude Code containing: @@ -54,16 +54,16 @@ A plugin marketplace for Claude Code containing: | Plugin | Description | Version | |--------|-------------|---------| | `projman` | Sprint planning and project management with Gitea integration | 3.3.0 | -| `git-flow` | Git workflow automation with smart commits and branch management | 1.2.0 | +| `git-flow` | Git workflow automation with smart commits and branch management | 1.0.0 | | `pr-review` | Multi-agent PR review with confidence scoring | 1.1.0 | -| `clarity-assist` | Prompt optimization with ND-friendly accommodations | 1.2.0 | -| `doc-guardian` | Automatic documentation drift detection and synchronization | 1.1.0 | -| `code-sentinel` | Security scanning and code refactoring tools | 1.0.0 | -| `claude-config-maintainer` | CLAUDE.md optimization and maintenance | 1.1.0 | +| `clarity-assist` | Prompt optimization with ND-friendly accommodations | 1.0.0 | +| `doc-guardian` | Automatic documentation drift detection and synchronization | 1.0.0 | +| `code-sentinel` | Security scanning and code refactoring tools | 1.0.1 | +| `claude-config-maintainer` | CLAUDE.md optimization and maintenance | 1.0.0 | | `cmdb-assistant` | NetBox CMDB integration for infrastructure management | 1.2.0 | -| `data-platform` | pandas, PostgreSQL, and dbt integration for data engineering | 1.2.0 | +| `data-platform` | pandas, PostgreSQL, and dbt integration for data engineering | 1.1.0 | | `viz-platform` | DMC validation, Plotly charts, and theming for dashboards | 1.1.0 | -| `contract-validator` | Cross-plugin compatibility validation and agent verification | 1.2.0 | +| `contract-validator` | Cross-plugin compatibility validation and agent verification | 1.1.0 | | `project-hygiene` | Post-task cleanup automation via hooks | 0.1.0 | ## Quick Start @@ -190,6 +190,21 @@ leo-claude-mktplace/ **Note:** `GITEA_ORG` is at project level since different projects may belong to different organizations. +### Agent Model Configuration + +Agents can specify preferred Claude models for cost/performance optimization: + +| Model | Use For | Agents | +|-------|---------|--------| +| `opus` | Complex reasoning, security | planner, code-reviewer, security-reviewer | +| `sonnet` | Implementation, coordination | orchestrator, executor, most agents | +| `haiku` | Simple validation | component-check, agent-check | + +**Configuration:** Add `model: opus|sonnet|haiku` to agent frontmatter, or `defaultModel` to plugin.json. +**Inheritance:** Agent → Plugin default → System default (sonnet) + +See `docs/MODEL-RECOMMENDATIONS.md` for detailed guidance. + ### Branch-Aware Security | Branch Pattern | Mode | Capabilities | diff --git a/README.md b/README.md index 6478f89..ecad482 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Leo Claude Marketplace - v5.3.0 +# Leo Claude Marketplace - v5.4.0 A collection of Claude Code plugins for project management, infrastructure automation, and development workflows. diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index b1662bb..c278838 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -522,6 +522,56 @@ cat .env --- +## Agent Model Configuration + +Agents can specify which Claude model to use for optimal cost/performance. + +### Model Options + +| Model | Use For | Cost | +|-------|---------|------| +| `opus` | Complex reasoning, security analysis | Highest | +| `sonnet` | Implementation, coordination (default) | Medium | +| `haiku` | Simple validation, quick checks | Lowest | + +### Configuration Levels + +**1. Agent-Level (highest priority)** + +Add to agent frontmatter in `agents/*.md`: + +```yaml +--- +name: planner +description: Sprint planning agent +model: opus +--- +``` + +**2. Plugin-Level (fallback)** + +Add to `plugin.json`: + +```json +{ + "defaultModel": "sonnet" +} +``` + +**3. System Default** + +If neither is specified, agents use `sonnet`. + +### Inheritance Chain + +``` +Agent model → Plugin defaultModel → System default (sonnet) +``` + +See [Model Recommendations](MODEL-RECOMMENDATIONS.md) for detailed guidance on model selection by task type. + +--- + ## Security Best Practices 1. **Never commit tokens** diff --git a/docs/MODEL-RECOMMENDATIONS.md b/docs/MODEL-RECOMMENDATIONS.md new file mode 100644 index 0000000..fb701c9 --- /dev/null +++ b/docs/MODEL-RECOMMENDATIONS.md @@ -0,0 +1,149 @@ +# Model Recommendations + +Guidelines for selecting Claude models (opus, sonnet, haiku) for plugin agents. + +--- + +## Model Overview + +| Model | Best For | Cost | Speed | +|-------|----------|------|-------| +| **Opus** | Complex reasoning, architecture decisions, security analysis | Highest | Slower | +| **Sonnet** | Implementation, coordination, standard tasks | Medium | Balanced | +| **Haiku** | Simple validation, quick checks, status queries | Lowest | Fastest | + +--- + +## Task-Type Recommendations + +| Task Type | Model | Rationale | +|-----------|-------|-----------| +| Architecture decisions | Opus | Requires deep reasoning, trade-off analysis | +| Security analysis | Opus | Critical thinking, vulnerability pattern recognition | +| Code review (quality) | Opus | Thorough analysis, edge case detection | +| Sprint planning | Opus | Strategic thinking, dependency analysis | +| Complex data analysis | Opus | Multi-step reasoning, insight generation | +| Code implementation | Sonnet | Fast, capable code generation | +| Coordination/dispatch | Sonnet | Task management, status tracking | +| Data transformation | Sonnet | ETL operations, query building | +| Documentation | Sonnet | Clear writing, structure | +| Simple validation | Haiku | Fast prop checks, schema validation | +| Status checks | Haiku | Quick queries, cost-effective | +| Quick verification | Haiku | Simple pass/fail checks | + +--- + +## Agent Model Assignments + +### projman (Sprint Management) + +| Agent | Model | Rationale | +|-------|-------|-----------| +| `planner` | opus | Architecture decisions, issue structuring | +| `orchestrator` | sonnet | Coordination, parallel execution | +| `executor` | sonnet | Code implementation | +| `code-reviewer` | opus | Quality review, security analysis | + +### pr-review (PR Analysis) + +| Agent | Model | Rationale | +|-------|-------|-----------| +| `coordinator` | sonnet | Task dispatch, result aggregation | +| `security-reviewer` | opus | Security vulnerability detection | +| `performance-analyst` | sonnet | Pattern recognition | +| `maintainability-auditor` | sonnet | Code quality checks | +| `test-validator` | sonnet | Test coverage analysis | + +### code-sentinel (Security & Refactoring) + +| Agent | Model | Rationale | +|-------|-------|-----------| +| `security-reviewer` | opus | Security scanning | +| `refactor-advisor` | sonnet | Refactoring suggestions | + +### data-platform (Data Engineering) + +| Agent | Model | Rationale | +|-------|-------|-----------| +| `data-analysis` | opus | Complex data insights | +| `data-ingestion` | sonnet | ETL operations | + +### viz-platform (Visualization) + +| Agent | Model | Rationale | +|-------|-------|-----------| +| `component-check` | haiku | Simple prop validation | +| `layout-builder` | sonnet | UI construction | +| `theme-setup` | sonnet | Design configuration | + +### contract-validator (Compatibility) + +| Agent | Model | Rationale | +|-------|-------|-----------| +| `full-validation` | sonnet | Contract checking | +| `agent-check` | haiku | Quick verification | + +--- + +## Configuration Schema + +### Agent-Level (Frontmatter) + +Add `model` field to agent YAML frontmatter: + +```yaml +--- +name: planner +description: Sprint planning agent +model: opus +--- +``` + +**Valid values:** `opus`, `sonnet`, `haiku` + +### Plugin-Level (plugin.json) + +Add `defaultModel` for plugin-wide fallback: + +```json +{ + "name": "projman", + "version": "3.4.0", + "defaultModel": "sonnet" +} +``` + +--- + +## Inheritance Chain + +Model selection follows this precedence: + +``` +1. Agent model field (highest priority) + ↓ if not specified +2. Plugin defaultModel (plugin.json) + ↓ if not specified +3. System default: sonnet +``` + +**Example:** +- Agent has `model: opus` → Uses opus +- Agent has no model, plugin has `defaultModel: sonnet` → Uses sonnet +- Neither specified → Uses sonnet (system default) + +--- + +## Cost Optimization Tips + +1. **Default to Sonnet** - Good balance for most tasks +2. **Reserve Opus** for critical decisions (security, architecture) +3. **Use Haiku** for validation and quick checks +4. **Batch simple tasks** - Use haiku for parallel validation + +--- + +## See Also + +- [Configuration Guide](CONFIGURATION.md) - Full configuration reference +- [Plugin Development](../README.md) - Adding new plugins diff --git a/plugins/code-sentinel/.claude-plugin/plugin.json b/plugins/code-sentinel/.claude-plugin/plugin.json index bf57dfa..351dd8c 100644 --- a/plugins/code-sentinel/.claude-plugin/plugin.json +++ b/plugins/code-sentinel/.claude-plugin/plugin.json @@ -1,7 +1,8 @@ { "name": "code-sentinel", "description": "Security scanning and code refactoring tools", - "version": "1.0.0", + "version": "1.0.1", + "defaultModel": "sonnet", "author": { "name": "Leo Miranda", "email": "leobmiranda@gmail.com" diff --git a/plugins/code-sentinel/agents/security-reviewer.md b/plugins/code-sentinel/agents/security-reviewer.md index 1d62908..a4e7624 100644 --- a/plugins/code-sentinel/agents/security-reviewer.md +++ b/plugins/code-sentinel/agents/security-reviewer.md @@ -1,5 +1,7 @@ --- +name: security-reviewer description: Security-focused code review agent +model: opus --- # Security Reviewer Agent diff --git a/plugins/contract-validator/.claude-plugin/plugin.json b/plugins/contract-validator/.claude-plugin/plugin.json index 394de21..d859b8e 100644 --- a/plugins/contract-validator/.claude-plugin/plugin.json +++ b/plugins/contract-validator/.claude-plugin/plugin.json @@ -1,6 +1,7 @@ { "name": "contract-validator", - "version": "1.0.0", + "version": "1.1.0", + "defaultModel": "sonnet", "description": "Cross-plugin compatibility validation and Claude.md agent verification", "author": { "name": "Leo Miranda", diff --git a/plugins/contract-validator/agents/agent-check.md b/plugins/contract-validator/agents/agent-check.md index 09f9723..39c5a51 100644 --- a/plugins/contract-validator/agents/agent-check.md +++ b/plugins/contract-validator/agents/agent-check.md @@ -1,3 +1,9 @@ +--- +name: agent-check +description: Agent definition validator for quick verification +model: haiku +--- + # Agent Check Agent You are an agent definition validator. Your role is to verify that a specific agent's tool references and data flow are valid. diff --git a/plugins/data-platform/.claude-plugin/plugin.json b/plugins/data-platform/.claude-plugin/plugin.json index 489fcee..2d1f223 100644 --- a/plugins/data-platform/.claude-plugin/plugin.json +++ b/plugins/data-platform/.claude-plugin/plugin.json @@ -1,6 +1,7 @@ { "name": "data-platform", - "version": "1.0.0", + "version": "1.1.0", + "defaultModel": "sonnet", "description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration", "author": { "name": "Leo Miranda", diff --git a/plugins/data-platform/agents/data-analysis.md b/plugins/data-platform/agents/data-analysis.md index ffbe615..aad9972 100644 --- a/plugins/data-platform/agents/data-analysis.md +++ b/plugins/data-platform/agents/data-analysis.md @@ -1,3 +1,9 @@ +--- +name: data-analysis +description: Data analysis specialist for exploration and profiling +model: opus +--- + # Data Analysis Agent You are a data analysis specialist. Your role is to help users explore, profile, and understand their data. diff --git a/plugins/pr-review/.claude-plugin/plugin.json b/plugins/pr-review/.claude-plugin/plugin.json index de6417a..3339a3c 100644 --- a/plugins/pr-review/.claude-plugin/plugin.json +++ b/plugins/pr-review/.claude-plugin/plugin.json @@ -1,6 +1,7 @@ { "name": "pr-review", - "version": "1.0.0", + "version": "1.1.0", + "defaultModel": "sonnet", "description": "Multi-agent pull request review with confidence scoring and actionable feedback", "author": { "name": "Leo Miranda", diff --git a/plugins/pr-review/agents/security-reviewer.md b/plugins/pr-review/agents/security-reviewer.md index 52d47d2..23c5dff 100644 --- a/plugins/pr-review/agents/security-reviewer.md +++ b/plugins/pr-review/agents/security-reviewer.md @@ -1,3 +1,9 @@ +--- +name: security-reviewer +description: Security-focused code reviewer for PR analysis +model: opus +--- + # Security Reviewer Agent ## Visual Output Requirements diff --git a/plugins/projman/.claude-plugin/plugin.json b/plugins/projman/.claude-plugin/plugin.json index 80acba0..31ab203 100644 --- a/plugins/projman/.claude-plugin/plugin.json +++ b/plugins/projman/.claude-plugin/plugin.json @@ -1,6 +1,7 @@ { "name": "projman", - "version": "3.2.0", + "version": "3.3.0", + "defaultModel": "sonnet", "description": "Sprint planning and project management with Gitea integration", "author": { "name": "Leo Miranda", diff --git a/plugins/projman/agents/code-reviewer.md b/plugins/projman/agents/code-reviewer.md index d5d454e..4a5cf57 100644 --- a/plugins/projman/agents/code-reviewer.md +++ b/plugins/projman/agents/code-reviewer.md @@ -1,6 +1,7 @@ --- name: code-reviewer description: Specialized agent for pre-sprint code quality review +model: opus --- # Code Reviewer Agent diff --git a/plugins/projman/agents/planner.md b/plugins/projman/agents/planner.md index e5ffe5e..8587891 100644 --- a/plugins/projman/agents/planner.md +++ b/plugins/projman/agents/planner.md @@ -1,6 +1,7 @@ --- name: planner description: Sprint planning agent - thoughtful architecture analysis and issue creation +model: opus --- # Sprint Planner Agent diff --git a/plugins/viz-platform/.claude-plugin/plugin.json b/plugins/viz-platform/.claude-plugin/plugin.json index c25d1d6..c08b6e0 100644 --- a/plugins/viz-platform/.claude-plugin/plugin.json +++ b/plugins/viz-platform/.claude-plugin/plugin.json @@ -1,6 +1,7 @@ { "name": "viz-platform", - "version": "1.0.0", + "version": "1.1.0", + "defaultModel": "sonnet", "description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming", "author": { "name": "Leo Miranda", diff --git a/plugins/viz-platform/agents/component-check.md b/plugins/viz-platform/agents/component-check.md index 1c34eb8..3483e00 100644 --- a/plugins/viz-platform/agents/component-check.md +++ b/plugins/viz-platform/agents/component-check.md @@ -1,3 +1,9 @@ +--- +name: component-check +description: DMC component validation specialist +model: haiku +--- + # Component Check Agent You are a strict component validation specialist. Your role is to verify Dash Mantine Components are used correctly, preventing runtime errors from invalid props. diff --git a/scripts/validate-marketplace.sh b/scripts/validate-marketplace.sh index e8b35b0..c97249a 100755 --- a/scripts/validate-marketplace.sh +++ b/scripts/validate-marketplace.sh @@ -143,6 +143,16 @@ for plugin_dir in "$PLUGINS_DIR"/*/; do echo "WARNING: Missing 'keywords' array in $plugin_name/plugin.json" fi + # v5.4.0: Validate defaultModel field if present + default_model=$(jq -r '.defaultModel // empty' "$plugin_json") + if [[ -n "$default_model" ]]; then + if [[ ! "$default_model" =~ ^(opus|sonnet|haiku)$ ]]; then + echo "ERROR: Invalid defaultModel '$default_model' in $plugin_name/plugin.json (must be opus|sonnet|haiku)" + exit 1 + fi + echo " ✓ defaultModel: $default_model" + fi + # Check README exists if [[ ! -f "$plugin_dir/README.md" ]]; then echo "WARNING: Missing README.md in $plugin_name/" @@ -151,6 +161,40 @@ for plugin_dir in "$PLUGINS_DIR"/*/; do echo "✓ $plugin_name valid" done +# v5.4.0: Validate agent model fields +echo "" +echo "=== Validating Agent Model Fields (v5.4.0+) ===" + +validate_agent_model() { + local file="$1" + local agent_name=$(basename "$file" .md) + + # Extract model from frontmatter (between --- markers) + local model=$(sed -n '/^---$/,/^---$/p' "$file" | grep '^model:' | awk '{print $2}') + + if [[ -n "$model" ]]; then + if [[ ! "$model" =~ ^(opus|sonnet|haiku)$ ]]; then + echo "ERROR: Invalid model '$model' in $file (must be opus|sonnet|haiku)" + exit 1 + fi + echo " ✓ $agent_name: model=$model" + fi +} + +for plugin_dir in "$PLUGINS_DIR"/*/; do + plugin_name=$(basename "$plugin_dir") + agents_dir="$plugin_dir/agents" + + if [[ -d "$agents_dir" ]]; then + echo "--- Checking agents in $plugin_name ---" + for agent_file in "$agents_dir"/*.md; do + if [[ -f "$agent_file" ]]; then + validate_agent_model "$agent_file" + fi + done + fi +done + # v3.0.0: Validate MCP server symlinks echo "" echo "=== Validating MCP Server Symlinks (v3.0.0+) ==="