diff --git a/CHANGELOG.md b/CHANGELOG.md index e5ffdca..f51b919 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,46 +4,36 @@ 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 +## [5.4.1] - 2026-01-30 -### Added +### Removed + +#### Multi-Model Agent Support (REVERTED) + +**Reason:** Claude Code does not support `defaultModel` in plugin.json or `model` in agent frontmatter. The schema validation rejects these as "Unrecognized key". + +**Removed:** +- `defaultModel` field from all plugin.json files (6 plugins) +- `model` field references from agent frontmatter +- `docs/MODEL-RECOMMENDATIONS.md` - Deleted entirely +- Model configuration sections from `docs/CONFIGURATION.md` and `CLAUDE.md` + +**Lesson:** Do not implement features without verifying they are supported by Claude Code's plugin schema. + +--- + +## [5.4.0] - 2026-01-28 [REVERTED] + +### Added (NOW REMOVED - See 5.4.1) #### Sprint 7: Multi-Model Agent Support -Configurable model selection for agents with inheritance chain. +~~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) +**This feature was reverted in 5.4.1 - Claude Code does not support these fields.** -**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 +Original sprint work: - 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) --- diff --git a/CLAUDE.md b/CLAUDE.md index 82cdbfa..f1b4b2e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -265,21 +265,6 @@ 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/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index dfd064f..2ebdcc1 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -521,56 +521,6 @@ 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 deleted file mode 100644 index fb701c9..0000000 --- a/docs/MODEL-RECOMMENDATIONS.md +++ /dev/null @@ -1,149 +0,0 @@ -# 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 351dd8c..590aa8d 100644 --- a/plugins/code-sentinel/.claude-plugin/plugin.json +++ b/plugins/code-sentinel/.claude-plugin/plugin.json @@ -2,7 +2,6 @@ "name": "code-sentinel", "description": "Security scanning and code refactoring tools", "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 a4e7624..da6eeab 100644 --- a/plugins/code-sentinel/agents/security-reviewer.md +++ b/plugins/code-sentinel/agents/security-reviewer.md @@ -1,7 +1,6 @@ --- 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 e42e775..aefb98e 100644 --- a/plugins/contract-validator/.claude-plugin/plugin.json +++ b/plugins/contract-validator/.claude-plugin/plugin.json @@ -1,7 +1,6 @@ { "name": "contract-validator", "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 39c5a51..d3e3e0e 100644 --- a/plugins/contract-validator/agents/agent-check.md +++ b/plugins/contract-validator/agents/agent-check.md @@ -1,7 +1,6 @@ --- name: agent-check description: Agent definition validator for quick verification -model: haiku --- # Agent Check Agent diff --git a/plugins/data-platform/.claude-plugin/plugin.json b/plugins/data-platform/.claude-plugin/plugin.json index 29e0402..49d9eba 100644 --- a/plugins/data-platform/.claude-plugin/plugin.json +++ b/plugins/data-platform/.claude-plugin/plugin.json @@ -1,7 +1,6 @@ { "name": "data-platform", "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 aad9972..81f133b 100644 --- a/plugins/data-platform/agents/data-analysis.md +++ b/plugins/data-platform/agents/data-analysis.md @@ -1,7 +1,6 @@ --- name: data-analysis description: Data analysis specialist for exploration and profiling -model: opus --- # Data Analysis Agent diff --git a/plugins/pr-review/.claude-plugin/plugin.json b/plugins/pr-review/.claude-plugin/plugin.json index 71b6f34..6ee1e11 100644 --- a/plugins/pr-review/.claude-plugin/plugin.json +++ b/plugins/pr-review/.claude-plugin/plugin.json @@ -1,7 +1,6 @@ { "name": "pr-review", "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 23c5dff..a85a245 100644 --- a/plugins/pr-review/agents/security-reviewer.md +++ b/plugins/pr-review/agents/security-reviewer.md @@ -1,7 +1,6 @@ --- name: security-reviewer description: Security-focused code reviewer for PR analysis -model: opus --- # Security Reviewer Agent diff --git a/plugins/projman/.claude-plugin/plugin.json b/plugins/projman/.claude-plugin/plugin.json index 9597da0..b0d7d92 100644 --- a/plugins/projman/.claude-plugin/plugin.json +++ b/plugins/projman/.claude-plugin/plugin.json @@ -1,7 +1,6 @@ { "name": "projman", "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 4a5cf57..d5d454e 100644 --- a/plugins/projman/agents/code-reviewer.md +++ b/plugins/projman/agents/code-reviewer.md @@ -1,7 +1,6 @@ --- 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 8587891..e5ffe5e 100644 --- a/plugins/projman/agents/planner.md +++ b/plugins/projman/agents/planner.md @@ -1,7 +1,6 @@ --- 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 c343af8..5edce0d 100644 --- a/plugins/viz-platform/.claude-plugin/plugin.json +++ b/plugins/viz-platform/.claude-plugin/plugin.json @@ -1,7 +1,6 @@ { "name": "viz-platform", "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 3483e00..6d0d706 100644 --- a/plugins/viz-platform/agents/component-check.md +++ b/plugins/viz-platform/agents/component-check.md @@ -1,7 +1,6 @@ --- name: component-check description: DMC component validation specialist -model: haiku --- # Component Check Agent diff --git a/scripts/validate-marketplace.sh b/scripts/validate-marketplace.sh index f64bba5..eee55ea 100755 --- a/scripts/validate-marketplace.sh +++ b/scripts/validate-marketplace.sh @@ -143,16 +143,6 @@ 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/" @@ -258,40 +248,6 @@ done echo "✓ All file references validated" -# 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+) ==="