1 Commits

Author SHA1 Message Date
438653d501 feat(marketplace): add lean/full profile switching for token optimization
- Add marketplace-lean.json (6 plugins) and marketplace-full.json (12 plugins)
- Add .mcp-lean.json (gitea only) and .mcp-full.json (5 servers)
- Create scripts/switch-profile.sh for easy profile switching
- Update sprint-status.md with conditional skill loading
- Set lean profile as default (~14k token savings)

Lean profile includes: projman, git-flow, pr-review, clarity-assist,
code-sentinel, doc-guardian

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 12:14:42 -05:00
37 changed files with 114 additions and 746 deletions

View File

@@ -6,12 +6,12 @@
}, },
"metadata": { "metadata": {
"description": "Project management plugins with Gitea and NetBox integrations", "description": "Project management plugins with Gitea and NetBox integrations",
"version": "7.1.0" "version": "7.0.0"
}, },
"plugins": [ "plugins": [
{ {
"name": "projman", "name": "projman",
"version": "7.1.0", "version": "3.4.0",
"description": "Sprint planning and project management with Gitea integration", "description": "Sprint planning and project management with Gitea integration",
"source": "./plugins/projman", "source": "./plugins/projman",
"author": { "author": {
@@ -27,7 +27,7 @@
}, },
{ {
"name": "doc-guardian", "name": "doc-guardian",
"version": "7.1.0", "version": "1.1.0",
"description": "Automatic documentation drift detection and synchronization", "description": "Automatic documentation drift detection and synchronization",
"source": "./plugins/doc-guardian", "source": "./plugins/doc-guardian",
"author": { "author": {
@@ -43,7 +43,7 @@
}, },
{ {
"name": "code-sentinel", "name": "code-sentinel",
"version": "7.1.0", "version": "1.0.1",
"description": "Security scanning and code refactoring tools", "description": "Security scanning and code refactoring tools",
"source": "./plugins/code-sentinel", "source": "./plugins/code-sentinel",
"author": { "author": {
@@ -59,7 +59,7 @@
}, },
{ {
"name": "project-hygiene", "name": "project-hygiene",
"version": "7.1.0", "version": "0.1.0",
"description": "Post-task cleanup hook that removes temp files and manages orphaned files", "description": "Post-task cleanup hook that removes temp files and manages orphaned files",
"source": "./plugins/project-hygiene", "source": "./plugins/project-hygiene",
"author": { "author": {
@@ -75,7 +75,7 @@
}, },
{ {
"name": "cmdb-assistant", "name": "cmdb-assistant",
"version": "7.1.0", "version": "1.2.0",
"description": "NetBox CMDB integration with data quality validation and machine registration", "description": "NetBox CMDB integration with data quality validation and machine registration",
"source": "./plugins/cmdb-assistant", "source": "./plugins/cmdb-assistant",
"author": { "author": {
@@ -91,7 +91,7 @@
}, },
{ {
"name": "claude-config-maintainer", "name": "claude-config-maintainer",
"version": "7.1.0", "version": "1.2.0",
"description": "CLAUDE.md and settings.local.json optimization for Claude Code projects", "description": "CLAUDE.md and settings.local.json optimization for Claude Code projects",
"source": "./plugins/claude-config-maintainer", "source": "./plugins/claude-config-maintainer",
"author": { "author": {
@@ -107,7 +107,7 @@
}, },
{ {
"name": "clarity-assist", "name": "clarity-assist",
"version": "7.1.0", "version": "1.2.0",
"description": "Prompt optimization and requirement clarification with ND-friendly accommodations", "description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
"source": "./plugins/clarity-assist", "source": "./plugins/clarity-assist",
"author": { "author": {
@@ -123,7 +123,7 @@
}, },
{ {
"name": "git-flow", "name": "git-flow",
"version": "7.1.0", "version": "1.2.0",
"description": "Git workflow automation with intelligent commit messages and branch management", "description": "Git workflow automation with intelligent commit messages and branch management",
"source": "./plugins/git-flow", "source": "./plugins/git-flow",
"author": { "author": {
@@ -139,7 +139,7 @@
}, },
{ {
"name": "pr-review", "name": "pr-review",
"version": "7.1.0", "version": "1.1.0",
"description": "Multi-agent pull request review with confidence scoring and actionable feedback", "description": "Multi-agent pull request review with confidence scoring and actionable feedback",
"source": "./plugins/pr-review", "source": "./plugins/pr-review",
"author": { "author": {
@@ -155,7 +155,7 @@
}, },
{ {
"name": "data-platform", "name": "data-platform",
"version": "7.1.0", "version": "1.3.0",
"description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration", "description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration",
"source": "./plugins/data-platform", "source": "./plugins/data-platform",
"author": { "author": {
@@ -171,7 +171,7 @@
}, },
{ {
"name": "viz-platform", "name": "viz-platform",
"version": "7.1.0", "version": "1.1.0",
"description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming", "description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming",
"source": "./plugins/viz-platform", "source": "./plugins/viz-platform",
"author": { "author": {
@@ -187,7 +187,7 @@
}, },
{ {
"name": "contract-validator", "name": "contract-validator",
"version": "7.1.0", "version": "1.2.0",
"description": "Cross-plugin compatibility validation and Claude.md agent verification", "description": "Cross-plugin compatibility validation and Claude.md agent verification",
"source": "./plugins/contract-validator", "source": "./plugins/contract-validator",
"author": { "author": {

View File

@@ -6,12 +6,12 @@
}, },
"metadata": { "metadata": {
"description": "Project management plugins with Gitea and NetBox integrations", "description": "Project management plugins with Gitea and NetBox integrations",
"version": "7.1.0" "version": "7.0.0"
}, },
"plugins": [ "plugins": [
{ {
"name": "projman", "name": "projman",
"version": "7.1.0", "version": "3.4.0",
"description": "Sprint planning and project management with Gitea integration", "description": "Sprint planning and project management with Gitea integration",
"source": "./plugins/projman", "source": "./plugins/projman",
"author": { "author": {
@@ -27,7 +27,7 @@
}, },
{ {
"name": "git-flow", "name": "git-flow",
"version": "7.1.0", "version": "1.2.0",
"description": "Git workflow automation with intelligent commit messages and branch management", "description": "Git workflow automation with intelligent commit messages and branch management",
"source": "./plugins/git-flow", "source": "./plugins/git-flow",
"author": { "author": {
@@ -43,7 +43,7 @@
}, },
{ {
"name": "pr-review", "name": "pr-review",
"version": "7.1.0", "version": "1.1.0",
"description": "Multi-agent pull request review with confidence scoring and actionable feedback", "description": "Multi-agent pull request review with confidence scoring and actionable feedback",
"source": "./plugins/pr-review", "source": "./plugins/pr-review",
"author": { "author": {
@@ -59,7 +59,7 @@
}, },
{ {
"name": "clarity-assist", "name": "clarity-assist",
"version": "7.1.0", "version": "1.2.0",
"description": "Prompt optimization and requirement clarification with ND-friendly accommodations", "description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
"source": "./plugins/clarity-assist", "source": "./plugins/clarity-assist",
"author": { "author": {
@@ -75,7 +75,7 @@
}, },
{ {
"name": "code-sentinel", "name": "code-sentinel",
"version": "7.1.0", "version": "1.0.1",
"description": "Security scanning and code refactoring tools", "description": "Security scanning and code refactoring tools",
"source": "./plugins/code-sentinel", "source": "./plugins/code-sentinel",
"author": { "author": {
@@ -91,7 +91,7 @@
}, },
{ {
"name": "doc-guardian", "name": "doc-guardian",
"version": "7.1.0", "version": "1.1.0",
"description": "Automatic documentation drift detection and synchronization", "description": "Automatic documentation drift detection and synchronization",
"source": "./plugins/doc-guardian", "source": "./plugins/doc-guardian",
"author": { "author": {

View File

@@ -6,12 +6,12 @@
}, },
"metadata": { "metadata": {
"description": "Project management plugins with Gitea and NetBox integrations", "description": "Project management plugins with Gitea and NetBox integrations",
"version": "8.0.0" "version": "7.0.0"
}, },
"plugins": [ "plugins": [
{ {
"name": "projman", "name": "projman",
"version": "7.1.0", "version": "3.4.0",
"description": "Sprint planning and project management with Gitea integration", "description": "Sprint planning and project management with Gitea integration",
"source": "./plugins/projman", "source": "./plugins/projman",
"author": { "author": {
@@ -20,164 +20,14 @@
}, },
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/projman/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/projman/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [ "hooks": ["./hooks/hooks.json"],
"./hooks/hooks.json"
],
"category": "development", "category": "development",
"tags": [ "tags": ["sprint", "agile", "gitea", "project-management"],
"sprint", "license": "MIT"
"agile",
"gitea",
"project-management"
],
"license": "MIT",
"domain": "core"
},
{
"name": "doc-guardian",
"version": "7.1.0",
"description": "Automatic documentation drift detection and synchronization",
"source": "./plugins/doc-guardian",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/doc-guardian/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [
"./hooks/hooks.json"
],
"category": "productivity",
"tags": [
"documentation",
"drift-detection",
"sync"
],
"license": "MIT",
"domain": "core"
},
{
"name": "code-sentinel",
"version": "7.1.0",
"description": "Security scanning and code refactoring tools",
"source": "./plugins/code-sentinel",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/code-sentinel/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [
"./hooks/hooks.json"
],
"category": "security",
"tags": [
"security-scan",
"refactoring",
"vulnerabilities"
],
"license": "MIT",
"domain": "core"
},
{
"name": "project-hygiene",
"version": "7.1.0",
"description": "Post-task cleanup hook that removes temp files and manages orphaned files",
"source": "./plugins/project-hygiene",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/project-hygiene/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [
"./hooks/hooks.json"
],
"category": "productivity",
"tags": [
"cleanup",
"automation",
"hygiene"
],
"license": "MIT",
"domain": "core"
},
{
"name": "cmdb-assistant",
"version": "7.1.0",
"description": "NetBox CMDB integration with data quality validation and machine registration",
"source": "./plugins/cmdb-assistant",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/cmdb-assistant/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [
"./hooks/hooks.json"
],
"category": "infrastructure",
"tags": [
"cmdb",
"netbox",
"dcim",
"ipam",
"data-quality",
"validation"
],
"license": "MIT",
"domain": "ops"
},
{
"name": "claude-config-maintainer",
"version": "7.1.0",
"description": "CLAUDE.md and settings.local.json optimization for Claude Code projects",
"source": "./plugins/claude-config-maintainer",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/claude-config-maintainer/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [
"./hooks/hooks.json"
],
"category": "development",
"tags": [
"claude-md",
"configuration",
"optimization"
],
"license": "MIT",
"domain": "core"
},
{
"name": "clarity-assist",
"version": "7.1.0",
"description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
"source": "./plugins/clarity-assist",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/clarity-assist/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [
"./hooks/hooks.json"
],
"category": "productivity",
"tags": [
"prompts",
"requirements",
"clarification",
"nd-friendly"
],
"license": "MIT",
"domain": "core"
}, },
{ {
"name": "git-flow", "name": "git-flow",
"version": "7.1.0", "version": "1.2.0",
"description": "Git workflow automation with intelligent commit messages and branch management", "description": "Git workflow automation with intelligent commit messages and branch management",
"source": "./plugins/git-flow", "source": "./plugins/git-flow",
"author": { "author": {
@@ -186,22 +36,14 @@
}, },
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/git-flow/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/git-flow/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [ "hooks": ["./hooks/hooks.json"],
"./hooks/hooks.json"
],
"category": "development", "category": "development",
"tags": [ "tags": ["git", "workflow", "commits", "branching"],
"git", "license": "MIT"
"workflow",
"commits",
"branching"
],
"license": "MIT",
"domain": "core"
}, },
{ {
"name": "pr-review", "name": "pr-review",
"version": "7.1.0", "version": "1.1.0",
"description": "Multi-agent pull request review with confidence scoring and actionable feedback", "description": "Multi-agent pull request review with confidence scoring and actionable feedback",
"source": "./plugins/pr-review", "source": "./plugins/pr-review",
"author": { "author": {
@@ -210,97 +52,58 @@
}, },
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/pr-review/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/pr-review/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [ "hooks": ["./hooks/hooks.json"],
"./hooks/hooks.json"
],
"category": "development", "category": "development",
"tags": [ "tags": ["code-review", "pull-requests", "security", "quality"],
"code-review", "license": "MIT"
"pull-requests",
"security",
"quality"
],
"license": "MIT",
"domain": "core"
}, },
{ {
"name": "data-platform", "name": "clarity-assist",
"version": "7.1.0", "version": "1.2.0",
"description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration", "description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
"source": "./plugins/data-platform", "source": "./plugins/clarity-assist",
"author": { "author": {
"name": "Leo Miranda", "name": "Leo Miranda",
"email": "leobmiranda@gmail.com" "email": "leobmiranda@gmail.com"
}, },
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/data-platform/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/clarity-assist/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [ "hooks": ["./hooks/hooks.json"],
"./hooks/hooks.json" "category": "productivity",
], "tags": ["prompts", "requirements", "clarification", "nd-friendly"],
"category": "data", "license": "MIT"
"tags": [
"pandas",
"postgresql",
"postgis",
"dbt",
"data-engineering",
"etl"
],
"license": "MIT",
"domain": "data"
}, },
{ {
"name": "viz-platform", "name": "code-sentinel",
"version": "7.1.0", "version": "1.0.1",
"description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming", "description": "Security scanning and code refactoring tools",
"source": "./plugins/viz-platform", "source": "./plugins/code-sentinel",
"author": { "author": {
"name": "Leo Miranda", "name": "Leo Miranda",
"email": "leobmiranda@gmail.com" "email": "leobmiranda@gmail.com"
}, },
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/viz-platform/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/code-sentinel/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [ "hooks": ["./hooks/hooks.json"],
"./hooks/hooks.json" "category": "security",
], "tags": ["security-scan", "refactoring", "vulnerabilities"],
"category": "visualization", "license": "MIT"
"tags": [
"dash",
"plotly",
"mantine",
"charts",
"dashboards",
"theming",
"dmc"
],
"license": "MIT",
"domain": "data"
}, },
{ {
"name": "contract-validator", "name": "doc-guardian",
"version": "7.1.0", "version": "1.1.0",
"description": "Cross-plugin compatibility validation and Claude.md agent verification", "description": "Automatic documentation drift detection and synchronization",
"source": "./plugins/contract-validator", "source": "./plugins/doc-guardian",
"author": { "author": {
"name": "Leo Miranda", "name": "Leo Miranda",
"email": "leobmiranda@gmail.com" "email": "leobmiranda@gmail.com"
}, },
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/contract-validator/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/doc-guardian/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": [ "hooks": ["./hooks/hooks.json"],
"./hooks/hooks.json" "category": "productivity",
], "tags": ["documentation", "drift-detection", "sync"],
"category": "development", "license": "MIT"
"tags": [
"validation",
"contracts",
"compatibility",
"agents",
"interfaces",
"cross-plugin"
],
"license": "MIT",
"domain": "core"
} }
] ]
} }

View File

@@ -63,4 +63,3 @@
2026-02-03T21:09:40 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-breakpoints.md | docs/COMMANDS-CHEATSHEET.md README.md 2026-02-03T21:09:40 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-breakpoints.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:46 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/design-review.md | docs/COMMANDS-CHEATSHEET.md README.md 2026-02-03T21:09:46 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/design-review.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:10:22 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/accessibility-check.md | docs/COMMANDS-CHEATSHEET.md README.md 2026-02-03T21:10:22 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/accessibility-check.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-04T21:32:01 | .claude-plugin | /home/lmiranda/claude-plugins-work/.claude-plugin/marketplace-lean.json | CLAUDE.md .claude-plugin/marketplace.json

View File

@@ -3,22 +3,6 @@
"gitea": { "gitea": {
"command": "./mcp-servers/gitea/run.sh", "command": "./mcp-servers/gitea/run.sh",
"args": [] "args": []
},
"netbox": {
"command": "./mcp-servers/netbox/run.sh",
"args": []
},
"viz-platform": {
"command": "./mcp-servers/viz-platform/run.sh",
"args": []
},
"data-platform": {
"command": "./mcp-servers/data-platform/run.sh",
"args": []
},
"contract-validator": {
"command": "./mcp-servers/contract-validator/run.sh",
"args": []
} }
} }
} }

View File

@@ -6,57 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased] ## [Unreleased]
---
## [8.0.0] - 2026-02-06
### BREAKING CHANGES
#### Domain Metadata Required (v8.0.0)
All plugin manifests now require a `domain` field. `validate-marketplace.sh` rejects plugins without it.
### Added ### Added
- **marketplace:** `domain` field added to all 12 `plugin.json` files and all `marketplace.json` entries - **marketplace:** Lean/full profile switching to reduce token overhead
- **marketplace:** Domain validation in `validate-marketplace.sh` — validates presence, allowed values, and cross-file consistency - New script: `scripts/switch-profile.sh` to toggle between profiles
- **marketplace:** New launch profiles: `saas`, `ops`, `debug` in `claude-launch.sh` - Lean profile: 6 plugins (projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian)
- **marketplace:** `data-seed` added to `data` launch profile (forward-looking) - Lean MCP: gitea only (reduces ~12k tokens of MCP server overhead)
- **docs:** Domain metadata conventions in `CANONICAL-PATHS.md` - Full profile: all 12 plugins and 5 MCP servers
- **docs:** Domain field requirements in `CLAUDE.md` "Adding a New Plugin" section - New files: `.mcp-lean.json`, `.mcp-full.json`, `marketplace-lean.json`, `marketplace-full.json`
- Default is now lean profile for reduced daily overhead
### Changed
- `validate-marketplace.sh` now requires `domain` in both `plugin.json` and `marketplace.json` (breaking change for validation pipeline)
- `claude-launch.sh` profiles expanded: sprint, data, saas, ops, review, debug, full
### Deprecated
- `infra` launch profile — use `ops` instead (auto-redirects with warning)
### Fixed
- Confirmed projman `metadata.json` exists with gitea MCP mapping
- Synced `marketplace-full.json` and `marketplace-lean.json` to current version (were stale)
- Added `metadata.json` validation to `validate-marketplace.sh` — rejects `mcp_servers` in `plugin.json`, verifies MCP server references
- Updated `CANONICAL-PATHS.md` to current version
- Deprecated `switch-profile.sh` in favor of `claude-launch.sh`
---
## [7.1.0] - 2026-02-04
### Added
- **marketplace:** Task-specific launcher script for token optimization
- New script: `scripts/claude-launch.sh` loads only needed plugins via `--plugin-dir`
- Profiles: sprint (default), review, data, infra, full
- Reduces token overhead from ~22K to ~4-6K tokens
- Enables `ENABLE_TOOL_SEARCH=true` for MCP lazy loading
- **marketplace:** Lean/full profile config files for manual switching (superseded by `claude-launch.sh`)
- Files: `.mcp-lean.json`, `.mcp-full.json`, `marketplace-lean.json`, `marketplace-full.json`
- Script `scripts/switch-profile.sh` available but `claude-launch.sh` is the recommended approach
- Full profile remains the default baseline; launcher handles selective loading
- **projman:** Token usage estimation reporting at sprint workflow boundaries - **projman:** Token usage estimation reporting at sprint workflow boundaries
- New skill: `token-budget-report.md` with MCP overhead and skill loading estimation model - New skill: `token-budget-report.md` with MCP overhead and skill loading estimation model
- Token report displayed at end of `/sprint-plan` and `/sprint-close` - Token report displayed at end of `/sprint-plan` and `/sprint-close`

View File

@@ -391,32 +391,13 @@ Stored in Gitea Wiki under `lessons-learned/sprints/`.
### Adding a New Plugin ### Adding a New Plugin
1. Create `plugins/{name}/.claude-plugin/plugin.json` — must include `"domain"` field (`core`, `data`, `saas`, `ops`, or `debug`) 1. Create `plugins/{name}/.claude-plugin/plugin.json`
2. Add entry to `.claude-plugin/marketplace.json` with category, tags, license, and `"domain"` field (must match plugin.json) 2. Add entry to `.claude-plugin/marketplace.json` with category, tags, license
3. Create `claude-md-integration.md` 3. Create `claude-md-integration.md`
4. If using new MCP server, add to root `mcp-servers/` and update `.mcp.json` 4. If using new MCP server, add to root `mcp-servers/` and update `.mcp.json`
5. Run `./scripts/validate-marketplace.sh` — rejects plugins without valid `domain` field 5. Run `./scripts/validate-marketplace.sh`
6. Update `CHANGELOG.md` 6. Update `CHANGELOG.md`
**Domain field is required (v8.0.0+):**
```json
{
"name": "plugin-name",
"domain": "core",
...
}
```
**Naming convention:** New plugins use domain prefix (`saas-*`, `ops-*`, `data-*`, `debug-*`). Core plugins have no prefix.
### Domain Assignments
| Domain | Plugins |
|--------|---------|
| `core` | projman, git-flow, pr-review, code-sentinel, doc-guardian, clarity-assist, contract-validator, claude-config-maintainer, project-hygiene |
| `data` | data-platform, viz-platform |
| `ops` | cmdb-assistant |
### Adding a Command to projman ### Adding a Command to projman
1. Create `plugins/projman/commands/{name}.md` 1. Create `plugins/projman/commands/{name}.md`

View File

@@ -1,32 +1,7 @@
# Leo Claude Marketplace - v8.0.0 # Leo Claude Marketplace - v7.0.0
A collection of Claude Code plugins for project management, infrastructure automation, and development workflows. A collection of Claude Code plugins for project management, infrastructure automation, and development workflows.
## Quick Start
Use the launcher script to load only the plugins you need, reducing token overhead from ~22K to ~4-6K tokens:
```bash
./scripts/claude-launch.sh [profile] [extra-args...]
```
| Profile | Plugins Loaded | Use Case |
|---------|----------------|----------|
| `sprint` | projman, git-flow, pr-review, code-sentinel, doc-guardian, clarity-assist | Default. Sprint planning and development |
| `review` | pr-review, code-sentinel | Lightweight code review |
| `data` | data-platform, viz-platform | Data engineering and visualization |
| `infra` | cmdb-assistant | Infrastructure/CMDB management |
| `full` | All 12 plugins via marketplace.json | When you need everything |
**Examples:**
```bash
./scripts/claude-launch.sh # Default sprint profile
./scripts/claude-launch.sh data --model opus # Data profile with Opus
./scripts/claude-launch.sh full # Load all plugins
```
The script enables `ENABLE_TOOL_SEARCH=true` for MCP lazy loading.
## Plugins ## Plugins
### Development & Project Management ### Development & Project Management
@@ -47,7 +22,7 @@ AI-guided sprint planning with full Gitea integration. Transforms a proven 15-sp
**Commands:** `/sprint-plan`, `/sprint-start`, `/sprint-status`, `/sprint-close`, `/labels-sync`, `/pm-setup`, `/pm-review`, `/pm-test`, `/pm-debug`, `/suggest-version`, `/proposal-status`, `/rfc` **Commands:** `/sprint-plan`, `/sprint-start`, `/sprint-status`, `/sprint-close`, `/labels-sync`, `/pm-setup`, `/pm-review`, `/pm-test`, `/pm-debug`, `/suggest-version`, `/proposal-status`, `/rfc`
#### [git-flow](./plugins/git-flow) #### [git-flow](./plugins/git-flow) *NEW in v3.0.0*
**Git Workflow Automation** **Git Workflow Automation**
Smart git operations with intelligent commit messages and branch management. Smart git operations with intelligent commit messages and branch management.
@@ -60,7 +35,7 @@ Smart git operations with intelligent commit messages and branch management.
**Commands:** `/git-commit`, `/git-commit-push`, `/git-commit-merge`, `/git-commit-sync`, `/branch-start`, `/branch-cleanup`, `/git-status`, `/git-config` **Commands:** `/git-commit`, `/git-commit-push`, `/git-commit-merge`, `/git-commit-sync`, `/branch-start`, `/branch-cleanup`, `/git-status`, `/git-config`
#### [pr-review](./plugins/pr-review) #### [pr-review](./plugins/pr-review) *NEW in v3.0.0*
**Multi-Agent PR Review** **Multi-Agent PR Review**
Comprehensive pull request review using specialized agents. Comprehensive pull request review using specialized agents.
@@ -79,7 +54,7 @@ Analyze, optimize, and create CLAUDE.md configuration files. Audit and optimize
**Commands:** `/analyze`, `/optimize`, `/init`, `/config-diff`, `/config-lint`, `/config-audit-settings`, `/config-optimize-settings`, `/config-permissions-map` **Commands:** `/analyze`, `/optimize`, `/init`, `/config-diff`, `/config-lint`, `/config-audit-settings`, `/config-optimize-settings`, `/config-permissions-map`
#### [contract-validator](./plugins/contract-validator) #### [contract-validator](./plugins/contract-validator) *NEW in v5.0.0*
**Cross-Plugin Compatibility Validation** **Cross-Plugin Compatibility Validation**
Validate plugin marketplaces for command conflicts, tool overlaps, and broken agent references. Validate plugin marketplaces for command conflicts, tool overlaps, and broken agent references.
@@ -94,7 +69,7 @@ Validate plugin marketplaces for command conflicts, tool overlaps, and broken ag
### Productivity ### Productivity
#### [clarity-assist](./plugins/clarity-assist) #### [clarity-assist](./plugins/clarity-assist) *NEW in v3.0.0*
**Prompt Optimization with ND Accommodations** **Prompt Optimization with ND Accommodations**
Transform vague requests into clear specifications using structured methodology. Transform vague requests into clear specifications using structured methodology.
@@ -137,7 +112,7 @@ Full CRUD operations for network infrastructure management directly from Claude
### Data Engineering ### Data Engineering
#### [data-platform](./plugins/data-platform) #### [data-platform](./plugins/data-platform) *NEW in v4.0.0*
**pandas, PostgreSQL/PostGIS, and dbt Integration** **pandas, PostgreSQL/PostGIS, and dbt Integration**
Comprehensive data engineering toolkit with persistent DataFrame storage. Comprehensive data engineering toolkit with persistent DataFrame storage.
@@ -152,7 +127,7 @@ Comprehensive data engineering toolkit with persistent DataFrame storage.
### Visualization ### Visualization
#### [viz-platform](./plugins/viz-platform) #### [viz-platform](./plugins/viz-platform) *NEW in v4.0.0*
**Dash Mantine Components Validation and Theming** **Dash Mantine Components Validation and Theming**
Visualization toolkit with version-locked component validation and design token theming. Visualization toolkit with version-locked component validation and design token theming.
@@ -196,7 +171,7 @@ Full Gitea API integration for project management.
| Wiki | `list_wiki_pages`, `get_wiki_page`, `create_wiki_page`, `update_wiki_page`, `create_lesson`, `search_lessons` | | Wiki | `list_wiki_pages`, `get_wiki_page`, `create_wiki_page`, `update_wiki_page`, `create_lesson`, `search_lessons` |
| Milestones | `list_milestones`, `get_milestone`, `create_milestone`, `update_milestone`, `delete_milestone` | | Milestones | `list_milestones`, `get_milestone`, `create_milestone`, `update_milestone`, `delete_milestone` |
| Dependencies | `list_issue_dependencies`, `create_issue_dependency`, `remove_issue_dependency`, `get_execution_order` | | Dependencies | `list_issue_dependencies`, `create_issue_dependency`, `remove_issue_dependency`, `get_execution_order` |
| **Pull Requests** | `list_pull_requests`, `get_pull_request`, `get_pr_diff`, `get_pr_comments`, `create_pr_review`, `add_pr_comment` | | **Pull Requests** | `list_pull_requests`, `get_pull_request`, `get_pr_diff`, `get_pr_comments`, `create_pr_review`, `add_pr_comment` *(NEW in v3.0.0)* |
| Validation | `validate_repo_org`, `get_branch_protection` | | Validation | `validate_repo_org`, `get_branch_protection` |
### NetBox MCP Server (shared) ### NetBox MCP Server (shared)
@@ -211,7 +186,7 @@ Comprehensive NetBox REST API integration for infrastructure management.
| Virtualization | Clusters, VMs, Interfaces | | Virtualization | Clusters, VMs, Interfaces |
| Extras | Tags, Custom Fields, Audit Log | | Extras | Tags, Custom Fields, Audit Log |
### Data Platform MCP Server (shared) ### Data Platform MCP Server (shared) *NEW in v4.0.0*
pandas, PostgreSQL/PostGIS, and dbt integration for data engineering. pandas, PostgreSQL/PostGIS, and dbt integration for data engineering.
@@ -222,7 +197,7 @@ pandas, PostgreSQL/PostGIS, and dbt integration for data engineering.
| PostGIS | `st_tables`, `st_geometry_type`, `st_srid`, `st_extent` | | PostGIS | `st_tables`, `st_geometry_type`, `st_srid`, `st_extent` |
| dbt | `dbt_parse`, `dbt_run`, `dbt_test`, `dbt_build`, `dbt_compile`, `dbt_ls`, `dbt_docs_generate`, `dbt_lineage` | | dbt | `dbt_parse`, `dbt_run`, `dbt_test`, `dbt_build`, `dbt_compile`, `dbt_ls`, `dbt_docs_generate`, `dbt_lineage` |
### Viz Platform MCP Server (shared) ### Viz Platform MCP Server (shared) *NEW in v4.0.0*
Dash Mantine Components validation and visualization tools. Dash Mantine Components validation and visualization tools.
@@ -234,7 +209,7 @@ Dash Mantine Components validation and visualization tools.
| Theme | `theme_create`, `theme_extend`, `theme_validate`, `theme_export_css`, `theme_list`, `theme_activate` | | Theme | `theme_create`, `theme_extend`, `theme_validate`, `theme_export_css`, `theme_list`, `theme_activate` |
| Page | `page_create`, `page_add_navbar`, `page_set_auth`, `page_list`, `page_get_app_config` | | Page | `page_create`, `page_add_navbar`, `page_set_auth`, `page_list`, `page_get_app_config` |
### Contract Validator MCP Server (shared) ### Contract Validator MCP Server (shared) *NEW in v5.0.0*
Cross-plugin compatibility validation tools. Cross-plugin compatibility validation tools.

View File

@@ -2,7 +2,7 @@
**This file defines ALL valid paths in this repository. No exceptions. No inference. No assumptions.** **This file defines ALL valid paths in this repository. No exceptions. No inference. No assumptions.**
Last Updated: 2026-02-06 (v8.0.0) Last Updated: 2026-01-30 (v5.4.1)
--- ---
@@ -12,18 +12,10 @@ Last Updated: 2026-02-06 (v8.0.0)
leo-claude-mktplace/ leo-claude-mktplace/
├── .claude/ # Claude Code local settings ├── .claude/ # Claude Code local settings
├── .claude-plugin/ # Marketplace manifest ├── .claude-plugin/ # Marketplace manifest
── marketplace.json ── marketplace.json
│ ├── marketplace-lean.json # Lean profile (6 core plugins)
│ └── marketplace-full.json # Full profile (all plugins)
├── .mcp-lean.json # Lean profile MCP config (gitea only)
├── .mcp-full.json # Full profile MCP config (all servers)
├── .scratch/ # Transient work (auto-cleaned) ├── .scratch/ # Transient work (auto-cleaned)
├── docs/ # All documentation ├── docs/ # All documentation
│ ├── architecture/ # Draw.io diagrams and specs │ ├── architecture/ # Draw.io diagrams and specs
│ ├── prompts/ # Shared prompt templates
│ │ └── INDEX.md # Prompt template index
│ ├── project-lessons-learned/ # Project-level lessons (not sprint-specific)
│ │ └── INDEX.md # Lessons index
│ ├── CANONICAL-PATHS.md # This file - single source of truth │ ├── CANONICAL-PATHS.md # This file - single source of truth
│ ├── COMMANDS-CHEATSHEET.md # All commands quick reference │ ├── COMMANDS-CHEATSHEET.md # All commands quick reference
│ ├── CONFIGURATION.md # Centralized configuration guide │ ├── CONFIGURATION.md # Centralized configuration guide
@@ -158,9 +150,7 @@ leo-claude-mktplace/
│ ├── validate-marketplace.sh # Marketplace compliance validation │ ├── validate-marketplace.sh # Marketplace compliance validation
│ ├── verify-hooks.sh # Verify all hooks use correct event types │ ├── verify-hooks.sh # Verify all hooks use correct event types
│ ├── setup-venvs.sh # Setup MCP server venvs (create only, never delete) │ ├── setup-venvs.sh # Setup MCP server venvs (create only, never delete)
── release.sh # Release automation with version bumping ── release.sh # Release automation with version bumping
│ ├── claude-launch.sh # Task-specific launcher with profile selection
│ └── switch-profile.sh # DEPRECATED: use claude-launch.sh instead
├── CLAUDE.md ├── CLAUDE.md
├── README.md ├── README.md
├── LICENSE ├── LICENSE
@@ -172,40 +162,12 @@ leo-claude-mktplace/
## Path Patterns (MANDATORY) ## Path Patterns (MANDATORY)
### Phase 1a Paths (v8.1.0)
New files added in v8.1.0:
```
plugins/projman/commands/project.md
plugins/projman/commands/project-initiation.md
plugins/projman/commands/project-plan.md
plugins/projman/commands/project-status.md
plugins/projman/commands/project-close.md
plugins/projman/commands/adr.md
plugins/projman/commands/adr-create.md
plugins/projman/commands/adr-list.md
plugins/projman/commands/adr-update.md
plugins/projman/commands/adr-supersede.md
plugins/projman/skills/source-analysis.md
plugins/projman/skills/project-charter.md
plugins/projman/skills/adr-conventions.md
plugins/projman/skills/epic-conventions.md
plugins/projman/skills/wbs.md
plugins/projman/skills/risk-register.md
plugins/projman/skills/sprint-roadmap.md
plugins/projman/skills/wiki-conventions.md
plugins/project-hygiene/commands/hygiene-check.md
plugins/contract-validator/commands/cv-status.md
```
### Plugin Paths ### Plugin Paths
| Context | Pattern | Example | | Context | Pattern | Example |
|---------|---------|---------| |---------|---------|---------|
| Plugin location | `plugins/{plugin-name}/` | `plugins/projman/` | | Plugin location | `plugins/{plugin-name}/` | `plugins/projman/` |
| Plugin manifest | `plugins/{plugin-name}/.claude-plugin/plugin.json` | `plugins/projman/.claude-plugin/plugin.json` | | Plugin manifest | `plugins/{plugin-name}/.claude-plugin/plugin.json` | `plugins/projman/.claude-plugin/plugin.json` |
| Plugin MCP mapping (optional) | `plugins/{plugin-name}/.claude-plugin/metadata.json` | `plugins/projman/.claude-plugin/metadata.json` |
| Plugin commands | `plugins/{plugin-name}/commands/` | `plugins/projman/commands/` | | Plugin commands | `plugins/{plugin-name}/commands/` | `plugins/projman/commands/` |
| Plugin agents | `plugins/{plugin-name}/agents/` | `plugins/projman/agents/` | | Plugin agents | `plugins/{plugin-name}/agents/` | `plugins/projman/agents/` |
| Plugin skills | `plugins/{plugin-name}/skills/` | `plugins/projman/skills/` | | Plugin skills | `plugins/{plugin-name}/skills/` | `plugins/projman/skills/` |
@@ -339,64 +301,10 @@ All MCP servers are defined in `.mcp.json` at repository root:
--- ---
## Domain Metadata
### Domain Field Locations
Both manifest files require a `domain` field (v8.0.0+):
| Location | Field | Example |
|----------|-------|---------|
| `plugins/{name}/.claude-plugin/plugin.json` | `"domain": "core"` | `plugins/projman/.claude-plugin/plugin.json` |
| `.claude-plugin/marketplace.json` | `"domain": "core"` per plugin entry | `.claude-plugin/marketplace.json` |
### Allowed Domain Values
| Domain | Purpose | Existing Plugins |
|--------|---------|-----------------|
| `core` | Development workflow plugins | projman, git-flow, pr-review, code-sentinel, doc-guardian, clarity-assist, contract-validator, claude-config-maintainer, project-hygiene |
| `data` | Data engineering and visualization | data-platform, viz-platform |
| `ops` | Operations and infrastructure | cmdb-assistant |
| `saas` | SaaS application development | (Phase 2) |
| `debug` | Debugging and diagnostics | (Phase 2) |
### Plugin Naming Convention
- **Core plugins:** No prefix (existing names never change)
- **New plugins:** Domain prefix: `saas-*`, `ops-*`, `data-*`, `debug-*`
- Domain is always in metadata — prefix is a naming convention, not a requirement
### Domain Query Examples
```bash
# List all plugins in a domain
jq '.plugins[] | select(.domain=="saas") | .name' .claude-plugin/marketplace.json
# Count plugins per domain
jq '[.plugins[] | .domain] | group_by(.) | map({domain: .[0], count: length})' .claude-plugin/marketplace.json
```
### Future Plugin Path Patterns
```
plugins/saas-api-platform/
plugins/saas-db-migrate/
plugins/saas-react-platform/
plugins/saas-test-pilot/
plugins/data-seed/
plugins/ops-release-manager/
plugins/ops-deploy-pipeline/
plugins/debug-mcp/
```
---
## Change Log ## Change Log
| Date | Change | By | | Date | Change | By |
|------|--------|-----| |------|--------|-----|
| 2026-02-06 | v8.0.0: Added domain metadata section, Phase 1a paths, future plugin paths | Claude Code |
| 2026-02-04 | v7.1.0: Added profile configs, prompts/, project-lessons-learned/, metadata.json, deprecated switch-profile.sh | Claude Code |
| 2026-01-30 | v5.5.0: Removed plugin-level mcp-servers symlinks - all MCP config now in root .mcp.json | Claude Code | | 2026-01-30 | v5.5.0: Removed plugin-level mcp-servers symlinks - all MCP config now in root .mcp.json | Claude Code |
| 2026-01-26 | v5.0.0: Added contract-validator plugin and MCP server | Claude Code | | 2026-01-26 | v5.0.0: Added contract-validator plugin and MCP server | Claude Code |
| 2026-01-26 | v4.1.0: Added viz-platform plugin and MCP server | Claude Code | | 2026-01-26 | v4.1.0: Added viz-platform plugin and MCP server | Claude Code |

View File

View File

@@ -16,8 +16,5 @@
"requirements", "requirements",
"methodology" "methodology"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "core"
} }

View File

@@ -18,8 +18,5 @@
"settings", "settings",
"permissions" "permissions"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "core"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["netbox"]}

View File

@@ -19,8 +19,5 @@
"data-quality", "data-quality",
"validation" "validation"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "ops"
} }

View File

@@ -9,15 +9,6 @@
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/code-sentinel/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/code-sentinel/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": ["security", "refactoring", "code-quality", "static-analysis", "hooks"],
"security", "commands": ["./commands/"]
"refactoring",
"code-quality",
"static-analysis",
"hooks"
],
"commands": [
"./commands/"
],
"domain": "core"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["contract-validator"]}

View File

@@ -17,8 +17,5 @@
"interfaces", "interfaces",
"cross-plugin" "cross-plugin"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "core"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["data-platform"]}

View File

@@ -18,8 +18,5 @@
"etl", "etl",
"dataframe" "dataframe"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "data"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["gitea"]}

View File

@@ -9,15 +9,6 @@
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/doc-guardian/README.md", "homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/doc-guardian/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": ["documentation", "sync", "drift-detection", "automation", "hooks"],
"documentation", "commands": ["./commands/"]
"sync",
"drift-detection",
"automation",
"hooks"
],
"commands": [
"./commands/"
],
"domain": "core"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["gitea"]}

View File

@@ -16,8 +16,5 @@
"branch", "branch",
"automation" "automation"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "core"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["gitea"]}

View File

@@ -16,8 +16,5 @@
"performance", "performance",
"multi-agent" "multi-agent"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "core"
} }

View File

@@ -28,6 +28,5 @@
] ]
} }
] ]
}, }
"domain": "core"
} }

View File

@@ -1 +0,0 @@
{"mcp_servers": ["gitea"]}

View File

@@ -16,8 +16,5 @@
"agile", "agile",
"lessons-learned" "lessons-learned"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "core"
} }

View File

@@ -24,7 +24,7 @@ Check current sprint progress, identify blockers, and show execution status. Opt
``` ```
/sprint-status # Text-based status report /sprint-status # Text-based status report
/sprint-status --diagram # Include Mermaid dependency diagram /sprint-status --diagram # Include Mermaid dependency diagram
/sprint-status --tokens # Show token budget estimation report /sprint-status --tokens # Include token budget estimation report
``` ```
## Workflow ## Workflow
@@ -46,11 +46,7 @@ That's it. No dependency analysis, no token estimation, no progress comment pars
### If --tokens flag, THEN ALSO: ### If --tokens flag, THEN ALSO:
11. Load `skills/token-budget-report.md` 11. Load `skills/token-budget-report.md`
12. **Generate Token Budget Report** - Execute `skills/token-budget-report.md` estimation model 12. Generate token estimation report
- Phase: STATUS (read-only snapshot, not a workflow boundary)
- List MCP servers from `.mcp.json` with static overhead estimates
- Show current session cost estimate based on skills loaded so far
- Display formatted report per the skill's Display Format section
## Output Format ## Output Format

View File

@@ -1 +0,0 @@
{"mcp_servers": ["viz-platform"]}

View File

@@ -19,8 +19,5 @@
"visualization", "visualization",
"dmc" "dmc"
], ],
"commands": [ "commands": ["./commands/"]
"./commands/"
],
"domain": "data"
} }

View File

@@ -1,103 +0,0 @@
#!/usr/bin/env bash
#
# claude-launch.sh - Launch Claude Code with task-specific plugin profiles
#
# Usage: ./scripts/claude-launch.sh [profile] [extra-args...]
#
# Profiles:
# sprint - Project management, git, PR review, security, docs (default)
# data - Data engineering and visualization
# saas - SaaS development (API, frontend, DB, testing)
# ops - Operations and infrastructure (CMDB, releases, deploy)
# review - Code review only (lightweight)
# debug - MCP debugging tools
# full - All plugins via marketplace.json (~22K tokens)
#
# Examples:
# ./scripts/claude-launch.sh # Default sprint profile
# ./scripts/claude-launch.sh sprint # Explicit sprint profile
# ./scripts/claude-launch.sh data --model opus # Data profile with Opus
# ./scripts/claude-launch.sh full # Load all plugins
#
set -euo pipefail
# Colors for output
CYAN='\033[0;36m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Script directory (for relative plugin paths)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(dirname "$SCRIPT_DIR")"
PLUGINS_DIR="$REPO_ROOT/plugins"
# Default profile
PROFILE="${1:-sprint}"
# Shift profile arg if provided (to pass remaining args to claude)
if [[ $# -gt 0 ]]; then
shift
fi
# Define plugin lists for each profile
declare -A PROFILES
PROFILES[sprint]="projman git-flow pr-review code-sentinel doc-guardian clarity-assist"
PROFILES[infra]="DEPRECATED"
PROFILES[data]="data-platform viz-platform data-seed"
PROFILES[saas]="saas-api-platform saas-react-platform saas-db-migrate saas-test-pilot"
PROFILES[ops]="cmdb-assistant ops-release-manager ops-deploy-pipeline"
PROFILES[review]="pr-review code-sentinel"
PROFILES[debug]="debug-mcp"
PROFILES[full]="" # Empty = use marketplace.json
# Validate profile
if [[ ! ${PROFILES[$PROFILE]+_} ]]; then
echo -e "${YELLOW}Unknown profile: $PROFILE${NC}"
echo "Available profiles: sprint, data, saas, ops, review, debug, full"
exit 1
fi
# Handle deprecated profiles
if [[ "$PROFILE" == "infra" ]]; then
echo -e "${YELLOW}Warning: 'infra' profile is deprecated. Use 'ops' instead.${NC}"
echo -e "${YELLOW} The 'ops' profile includes cmdb-assistant plus future ops plugins.${NC}"
PROFILE="ops"
fi
# Build --plugin-dir arguments
PLUGIN_ARGS=()
PLUGIN_LIST="${PROFILES[$PROFILE]}"
if [[ -n "$PLUGIN_LIST" ]]; then
echo -e "${CYAN}Profile: $PROFILE${NC}"
echo -e "${GREEN}Loading plugins:${NC}"
for plugin in $PLUGIN_LIST; do
plugin_path="$PLUGINS_DIR/$plugin"
if [[ -d "$plugin_path" ]]; then
echo "$plugin"
PLUGIN_ARGS+=("--plugin-dir" "$plugin_path")
else
echo -e "${YELLOW}$plugin (not found at $plugin_path)${NC}"
fi
done
echo ""
else
echo -e "${CYAN}Profile: full${NC}"
echo -e "${GREEN}Loading all plugins via marketplace.json${NC}"
echo ""
fi
# Enable MCP Tool Search for deferred tool loading
export ENABLE_TOOL_SEARCH=true
echo -e "${GREEN}MCP Tool Search: enabled${NC}"
echo ""
# Launch claude with plugin args and any extra arguments
if [[ ${#PLUGIN_ARGS[@]} -gt 0 ]]; then
exec claude "${PLUGIN_ARGS[@]}" "$@"
else
exec claude "$@"
fi

View File

@@ -116,19 +116,19 @@ validate_target() {
} }
# --- Get MCP Servers for Plugin --- # --- Get MCP Servers for Plugin ---
# Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues) # Reads the mcp_servers array from plugin.json
# Returns newline-separated list of MCP server names, or empty if none # Returns newline-separated list of MCP server names, or empty if none
get_mcp_servers() { get_mcp_servers() {
local plugin_name="$1" local plugin_name="$1"
local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json" local plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json"
if [[ ! -f "$metadata_json" ]]; then if [[ ! -f "$plugin_json" ]]; then
return return
fi fi
# Read mcp_servers array from metadata.json # Read mcp_servers array from plugin.json
# Returns empty if field doesn't exist or is empty # Returns empty if field doesn't exist or is empty
jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true jq -r '.mcp_servers // [] | .[]' "$plugin_json" 2>/dev/null || true
} }
# --- Check if plugin has any MCP servers --- # --- Check if plugin has any MCP servers ---

View File

@@ -68,16 +68,16 @@ get_available_plugins() {
} }
# --- Get MCP Servers for Plugin --- # --- Get MCP Servers for Plugin ---
# Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues) # Reads the mcp_servers array from plugin.json
get_mcp_servers() { get_mcp_servers() {
local plugin_name="$1" local plugin_name="$1"
local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json" local plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json"
if [[ ! -f "$metadata_json" ]]; then if [[ ! -f "$plugin_json" ]]; then
return return
fi fi
jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true jq -r '.mcp_servers // [] | .[]' "$plugin_json" 2>/dev/null || true
} }
# --- Check if plugin has any MCP servers defined --- # --- Check if plugin has any MCP servers defined ---

View File

@@ -4,8 +4,6 @@
set -euo pipefail set -euo pipefail
echo "⚠️ DEPRECATED: use scripts/claude-launch.sh instead." >&2
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(dirname "$SCRIPT_DIR")" ROOT_DIR="$(dirname "$SCRIPT_DIR")"
MARKETPLACE_DIR="$ROOT_DIR/.claude-plugin" MARKETPLACE_DIR="$ROOT_DIR/.claude-plugin"
@@ -14,9 +12,7 @@ case "${1:-lean}" in
lean) lean)
cp "$MARKETPLACE_DIR/marketplace-lean.json" "$MARKETPLACE_DIR/marketplace.json" cp "$MARKETPLACE_DIR/marketplace-lean.json" "$MARKETPLACE_DIR/marketplace.json"
cp "$ROOT_DIR/.mcp-lean.json" "$ROOT_DIR/.mcp.json" cp "$ROOT_DIR/.mcp-lean.json" "$ROOT_DIR/.mcp.json"
rm -rf ~/.claude/plugins/cache/
echo "Switched to LEAN profile (6 plugins, 1 MCP server)" echo "Switched to LEAN profile (6 plugins, 1 MCP server)"
echo "Plugin cache cleared."
echo "" echo ""
echo "Plugins: projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian" echo "Plugins: projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian"
echo "MCP: gitea only" echo "MCP: gitea only"
@@ -26,9 +22,7 @@ case "${1:-lean}" in
full) full)
cp "$MARKETPLACE_DIR/marketplace-full.json" "$MARKETPLACE_DIR/marketplace.json" cp "$MARKETPLACE_DIR/marketplace-full.json" "$MARKETPLACE_DIR/marketplace.json"
cp "$ROOT_DIR/.mcp-full.json" "$ROOT_DIR/.mcp.json" cp "$ROOT_DIR/.mcp-full.json" "$ROOT_DIR/.mcp.json"
rm -rf ~/.claude/plugins/cache/
echo "Switched to FULL profile (12 plugins, 5 MCP servers)" echo "Switched to FULL profile (12 plugins, 5 MCP servers)"
echo "Plugin cache cleared."
echo "" echo ""
echo "Plugins: all" echo "Plugins: all"
echo "MCP: gitea, netbox, data-platform, viz-platform, contract-validator" echo "MCP: gitea, netbox, data-platform, viz-platform, contract-validator"

View File

@@ -77,19 +77,19 @@ validate_target() {
} }
# --- Get MCP Servers for Plugin --- # --- Get MCP Servers for Plugin ---
# Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues) # Reads the mcp_servers array from plugin.json
# Returns newline-separated list of MCP server names, or empty if none # Returns newline-separated list of MCP server names, or empty if none
get_mcp_servers() { get_mcp_servers() {
local plugin_name="$1" local plugin_name="$1"
local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json" local plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json"
if [[ ! -f "$metadata_json" ]]; then if [[ ! -f "$plugin_json" ]]; then
return return
fi fi
# Read mcp_servers array from metadata.json # Read mcp_servers array from plugin.json
# Returns empty if field doesn't exist or is empty # Returns empty if field doesn't exist or is empty
jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true jq -r '.mcp_servers // [] | .[]' "$plugin_json" 2>/dev/null || true
} }
# --- Remove from .mcp.json --- # --- Remove from .mcp.json ---

View File

@@ -4,9 +4,6 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(dirname "$SCRIPT_DIR")" ROOT_DIR="$(dirname "$SCRIPT_DIR")"
# v8.0.0: Valid domain values
VALID_DOMAINS="core data saas ops debug"
echo "=== Validating Marketplace ===" echo "=== Validating Marketplace ==="
# Check marketplace.json exists and is valid JSON # Check marketplace.json exists and is valid JSON
@@ -92,18 +89,6 @@ for i in $(seq 0 $((PLUGIN_COUNT - 1))); do
exit 1 exit 1
fi fi
# v8.0.0: Check domain field
PLUGIN_DOMAIN=$(jq -r ".plugins[$i].domain // empty" "$MARKETPLACE_JSON")
if [[ -z "$PLUGIN_DOMAIN" ]]; then
echo "ERROR: Missing 'domain' in marketplace entry for $PLUGIN_NAME (required v8.0.0+)"
exit 1
fi
if ! echo "$VALID_DOMAINS" | grep -qw "$PLUGIN_DOMAIN"; then
echo "ERROR: Invalid domain '$PLUGIN_DOMAIN' in marketplace entry for $PLUGIN_NAME (allowed: $VALID_DOMAINS)"
exit 1
fi
echo " ✓ domain: $PLUGIN_DOMAIN"
echo "✓ Marketplace entry $PLUGIN_NAME valid" echo "✓ Marketplace entry $PLUGIN_NAME valid"
done done
@@ -158,18 +143,6 @@ for plugin_dir in "$PLUGINS_DIR"/*/; do
echo "WARNING: Missing 'keywords' array in $plugin_name/plugin.json" echo "WARNING: Missing 'keywords' array in $plugin_name/plugin.json"
fi fi
# v8.0.0: Check domain field in plugin.json
PLUGIN_DOMAIN_PJ=$(jq -r '.domain // empty' "$plugin_json")
if [[ -z "$PLUGIN_DOMAIN_PJ" ]]; then
echo "ERROR: Missing 'domain' in $plugin_name/plugin.json (required v8.0.0+)"
exit 1
fi
if ! echo "$VALID_DOMAINS" | grep -qw "$PLUGIN_DOMAIN_PJ"; then
echo "ERROR: Invalid domain '$PLUGIN_DOMAIN_PJ' in $plugin_name/plugin.json (allowed: $VALID_DOMAINS)"
exit 1
fi
echo " ✓ domain: $PLUGIN_DOMAIN_PJ"
# Check README exists # Check README exists
if [[ ! -f "$plugin_dir/README.md" ]]; then if [[ ! -f "$plugin_dir/README.md" ]]; then
echo "WARNING: Missing README.md in $plugin_name/" echo "WARNING: Missing README.md in $plugin_name/"
@@ -233,35 +206,6 @@ for plugin_dir in "$PLUGINS_DIR"/*/; do
echo "$plugin_name valid" echo "$plugin_name valid"
done done
echo ""
echo "=== Validating Plugin Metadata (MCP Mappings) ==="
for plugin_dir in "$PLUGINS_DIR"/*/; do
plugin_name=$(basename "$plugin_dir")
metadata_json="$plugin_dir.claude-plugin/metadata.json"
if jq -e '.mcp_servers' "$plugin_dir.claude-plugin/plugin.json" >/dev/null 2>&1; then
echo "ERROR: $plugin_name/plugin.json contains 'mcp_servers' — move to metadata.json"
exit 1
fi
if [[ -f "$metadata_json" ]]; then
if ! jq empty "$metadata_json" 2>/dev/null; then
echo "ERROR: Invalid JSON in $plugin_name/.claude-plugin/metadata.json"
exit 1
fi
mcp_servers=$(jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null)
for server in $mcp_servers; do
if [[ ! -d "$ROOT_DIR/mcp-servers/$server" ]]; then
echo "ERROR: $plugin_name metadata.json references '$server' but mcp-servers/$server/ missing"
exit 1
fi
echo "$plugin_name$server"
done
fi
done
echo "✓ Plugin metadata validation passed"
# CRITICAL: Validate marketplace.json file references # CRITICAL: Validate marketplace.json file references
echo "" echo ""
echo "=== Validating Marketplace File References (CRITICAL) ===" echo "=== Validating Marketplace File References (CRITICAL) ==="
@@ -324,22 +268,5 @@ if [[ ! -f "$ROOT_DIR/.mcp.json" ]]; then
fi fi
echo "✓ .mcp.json configuration exists" echo "✓ .mcp.json configuration exists"
# v8.0.0: Cross-validate domains match between marketplace.json and plugin.json
echo ""
echo "=== Cross-Validating Domain Fields ==="
for i in $(seq 0 $((PLUGIN_COUNT - 1))); do
PLUGIN_NAME=$(jq -r ".plugins[$i].name" "$MARKETPLACE_JSON")
MARKETPLACE_DOMAIN=$(jq -r ".plugins[$i].domain" "$MARKETPLACE_JSON")
PLUGIN_JSON_PATH="$PLUGINS_DIR/$PLUGIN_NAME/.claude-plugin/plugin.json"
if [[ -f "$PLUGIN_JSON_PATH" ]]; then
PLUGIN_DOMAIN=$(jq -r '.domain' "$PLUGIN_JSON_PATH")
if [[ "$MARKETPLACE_DOMAIN" != "$PLUGIN_DOMAIN" ]]; then
echo "ERROR: Domain mismatch for $PLUGIN_NAME: marketplace.json='$MARKETPLACE_DOMAIN' vs plugin.json='$PLUGIN_DOMAIN'"
exit 1
fi
echo "$PLUGIN_NAME domain consistent: $MARKETPLACE_DOMAIN"
fi
done
echo "" echo ""
echo "=== All validations passed ===" echo "=== All validations passed ==="