13 Commits

Author SHA1 Message Date
a4fb5b6feb Merge pull request 'fix: move mcp_servers to metadata.json to prevent silent plugin.json rejection' (#431) from fix/mcp-servers-metadata-json into development
Reviewed-on: #431
2026-02-04 20:40:06 +00:00
de4126bf68 fix: move mcp_servers to metadata.json to prevent silent plugin.json rejection
Claude Code's strict schema validation silently rejects plugins with unknown
root-level fields in plugin.json (anthropics/claude-code#20409).
Moved mcp_servers to separate metadata.json files.
Updated install/uninstall/list scripts to read from new location.
Added cache clearing to switch-profile.sh.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 13:46:43 -05:00
5a8c3b041f Merge pull request 'development' (#430) from development into main
Reviewed-on: #430
2026-02-04 17:23:24 +00:00
33a7c91f4f Merge pull request 'feat: Token consumption overhaul - lean/full profile switching' (#429) from feat/token-consumption-overhaul into development
Reviewed-on: #429
2026-02-04 17:23:07 +00:00
8781179fd0 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:22:36 -05:00
7d0b6050f9 Merge pull request 'development' (#428) from development into main
Reviewed-on: #428
2026-02-04 16:01:15 +00:00
6209ab9597 Merge pull request 'feat(projman): wire --tokens flag into /sprint-status' (#427) from feat/sprint-status-tokens-flag into development
Reviewed-on: #427
2026-02-04 16:00:58 +00:00
2c41ca338d feat(projman): wire --tokens flag into /sprint-status
Add token budget reporting option to sprint-status command:
- Update description to mention token budget report
- Add token-budget-report.md to skills list
- Add --tokens invocation option
- Add workflow section for generating token report

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:59:38 -05:00
34fc1d842c Merge pull request 'development' (#426) from development into main
Reviewed-on: #426
2026-02-04 15:25:55 +00:00
9eece4daa3 Merge pull request 'fix: v7.0.1 stale reference cleanup + token usage reporting' (#425) from fix/v7-stale-refs-and-token-reporting into development
Reviewed-on: #425
2026-02-04 15:25:37 +00:00
871d1bff58 chore: add v7.0.1 changelog entries
- Fixed: stale command references documentation updates
- Added: token usage estimation reporting feature

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:22:15 -05:00
d90a8d05af feat(projman): add token usage estimation reporting
- New skill: token-budget-report.md with MCP overhead and skill loading
  estimation model based on known file sizes and static overhead tables
- Sprint-plan displays token report after planning complete
- Sprint-close displays token report after lessons captured
- Visual-output.md updated with token report format
- .gitignore exception for token-budget-report.md (not API tokens)

Helps identify which phases and components consume the most context budget.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:20:56 -05:00
044c49ba95 fix(docs): update stale command references post v7.0.0 namespace rename
- data-platform/skills/visual-header.md: updated command mapping table
- viz-platform/claude-md-integration.md: fixed cross-plugin section
- git-flow/commands/git-status.md: updated quick actions
- git-flow/skills/visual-header.md: updated command header sections
- projman/CONFIGURATION.md: updated quick commands to pm-setup
- docs/DEBUGGING-CHECKLIST.md: fixed /debug to /pm-debug

All command references now use v7.0.0 namespaced names.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:18:19 -05:00
31 changed files with 722 additions and 211 deletions

View File

@@ -0,0 +1,205 @@
{
"name": "leo-claude-mktplace",
"owner": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"metadata": {
"description": "Project management plugins with Gitea and NetBox integrations",
"version": "7.0.0"
},
"plugins": [
{
"name": "projman",
"version": "3.4.0",
"description": "Sprint planning and project management with Gitea integration",
"source": "./plugins/projman",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"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",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["sprint", "agile", "gitea", "project-management"],
"license": "MIT"
},
{
"name": "doc-guardian",
"version": "1.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"
},
{
"name": "code-sentinel",
"version": "1.0.1",
"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"
},
{
"name": "project-hygiene",
"version": "0.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"
},
{
"name": "cmdb-assistant",
"version": "1.2.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"
},
{
"name": "claude-config-maintainer",
"version": "1.2.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"
},
{
"name": "clarity-assist",
"version": "1.2.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"
},
{
"name": "git-flow",
"version": "1.2.0",
"description": "Git workflow automation with intelligent commit messages and branch management",
"source": "./plugins/git-flow",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"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",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["git", "workflow", "commits", "branching"],
"license": "MIT"
},
{
"name": "pr-review",
"version": "1.1.0",
"description": "Multi-agent pull request review with confidence scoring and actionable feedback",
"source": "./plugins/pr-review",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"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",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["code-review", "pull-requests", "security", "quality"],
"license": "MIT"
},
{
"name": "data-platform",
"version": "1.3.0",
"description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration",
"source": "./plugins/data-platform",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/data-platform/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"],
"category": "data",
"tags": ["pandas", "postgresql", "postgis", "dbt", "data-engineering", "etl"],
"license": "MIT"
},
{
"name": "viz-platform",
"version": "1.1.0",
"description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming",
"source": "./plugins/viz-platform",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/viz-platform/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"],
"category": "visualization",
"tags": ["dash", "plotly", "mantine", "charts", "dashboards", "theming", "dmc"],
"license": "MIT"
},
{
"name": "contract-validator",
"version": "1.2.0",
"description": "Cross-plugin compatibility validation and Claude.md agent verification",
"source": "./plugins/contract-validator",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/contract-validator/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["validation", "contracts", "compatibility", "agents", "interfaces", "cross-plugin"],
"license": "MIT"
}
]
}

View File

@@ -0,0 +1,109 @@
{
"name": "leo-claude-mktplace",
"owner": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"metadata": {
"description": "Project management plugins with Gitea and NetBox integrations",
"version": "7.0.0"
},
"plugins": [
{
"name": "projman",
"version": "3.4.0",
"description": "Sprint planning and project management with Gitea integration",
"source": "./plugins/projman",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"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",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["sprint", "agile", "gitea", "project-management"],
"license": "MIT"
},
{
"name": "git-flow",
"version": "1.2.0",
"description": "Git workflow automation with intelligent commit messages and branch management",
"source": "./plugins/git-flow",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"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",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["git", "workflow", "commits", "branching"],
"license": "MIT"
},
{
"name": "pr-review",
"version": "1.1.0",
"description": "Multi-agent pull request review with confidence scoring and actionable feedback",
"source": "./plugins/pr-review",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"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",
"hooks": ["./hooks/hooks.json"],
"category": "development",
"tags": ["code-review", "pull-requests", "security", "quality"],
"license": "MIT"
},
{
"name": "clarity-assist",
"version": "1.2.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"
},
{
"name": "code-sentinel",
"version": "1.0.1",
"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"
},
{
"name": "doc-guardian",
"version": "1.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"
}
]
}

View File

@@ -25,102 +25,6 @@
"tags": ["sprint", "agile", "gitea", "project-management"], "tags": ["sprint", "agile", "gitea", "project-management"],
"license": "MIT" "license": "MIT"
}, },
{
"name": "doc-guardian",
"version": "1.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"
},
{
"name": "code-sentinel",
"version": "1.0.1",
"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"
},
{
"name": "project-hygiene",
"version": "0.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"
},
{
"name": "cmdb-assistant",
"version": "1.2.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"
},
{
"name": "claude-config-maintainer",
"version": "1.2.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"
},
{
"name": "clarity-assist",
"version": "1.2.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"
},
{ {
"name": "git-flow", "name": "git-flow",
"version": "1.2.0", "version": "1.2.0",
@@ -154,51 +58,51 @@
"license": "MIT" "license": "MIT"
}, },
{ {
"name": "data-platform", "name": "clarity-assist",
"version": "1.3.0",
"description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration",
"source": "./plugins/data-platform",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/data-platform/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"],
"category": "data",
"tags": ["pandas", "postgresql", "postgis", "dbt", "data-engineering", "etl"],
"license": "MIT"
},
{
"name": "viz-platform",
"version": "1.1.0",
"description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming",
"source": "./plugins/viz-platform",
"author": {
"name": "Leo Miranda",
"email": "leobmiranda@gmail.com"
},
"homepage": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/src/branch/main/plugins/viz-platform/README.md",
"repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"],
"category": "visualization",
"tags": ["dash", "plotly", "mantine", "charts", "dashboards", "theming", "dmc"],
"license": "MIT"
},
{
"name": "contract-validator",
"version": "1.2.0", "version": "1.2.0",
"description": "Cross-plugin compatibility validation and Claude.md agent verification", "description": "Prompt optimization and requirement clarification with ND-friendly accommodations",
"source": "./plugins/contract-validator", "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/contract-validator/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.json"], "hooks": ["./hooks/hooks.json"],
"category": "development", "category": "productivity",
"tags": ["validation", "contracts", "compatibility", "agents", "interfaces", "cross-plugin"], "tags": ["prompts", "requirements", "clarification", "nd-friendly"],
"license": "MIT"
},
{
"name": "code-sentinel",
"version": "1.0.1",
"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"
},
{
"name": "doc-guardian",
"version": "1.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" "license": "MIT"
} }
] ]

1
.gitignore vendored
View File

@@ -132,4 +132,5 @@ site/
*credentials* *credentials*
*secret* *secret*
*token* *token*
!**/token-budget-report.md
!.gitkeep !.gitkeep

24
.mcp-full.json Normal file
View File

@@ -0,0 +1,24 @@
{
"mcpServers": {
"gitea": {
"command": "./mcp-servers/gitea/run.sh",
"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": []
}
}
}

8
.mcp-lean.json Normal file
View File

@@ -0,0 +1,8 @@
{
"mcpServers": {
"gitea": {
"command": "./mcp-servers/gitea/run.sh",
"args": []
}
}
}

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,6 +6,35 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased] ## [Unreleased]
### Added
- **marketplace:** Lean/full profile switching to reduce token overhead
- New script: `scripts/switch-profile.sh` to toggle between profiles
- Lean profile: 6 plugins (projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian)
- Lean MCP: gitea only (reduces ~12k tokens of MCP server overhead)
- Full profile: all 12 plugins and 5 MCP servers
- New files: `.mcp-lean.json`, `.mcp-full.json`, `marketplace-lean.json`, `marketplace-full.json`
- Default is now lean profile for reduced daily overhead
- **projman:** Token usage estimation reporting at sprint workflow boundaries
- 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`
- On-demand via `/sprint-status --tokens`
- Helps identify which phases and components consume the most context budget
### Changed
- **projman:** `/sprint-status` now uses conditional skill loading for reduced token overhead
- Only loads `mcp-tools-reference.md` by default (~1.5k tokens vs ~5k)
- `--diagram` flag loads `dependency-management.md` and `progress-tracking.md`
- `--tokens` flag loads `token-budget-report.md`
- Estimated savings: ~3.5k tokens per status check
### Fixed
- **docs:** Stale command references in data-platform visual-header.md and viz-platform claude-md-integration.md updated to v7.0.0 namespaced names
- **docs:** git-flow visual-header.md and git-status.md quick actions updated to namespaced commands
- **docs:** projman/CONFIGURATION.md and docs/DEBUGGING-CHECKLIST.md updated with correct command names
--- ---
## [7.0.0] - 2026-02-03 ## [7.0.0] - 2026-02-03

View File

@@ -279,8 +279,8 @@ Error: Could not find a suitable TLS CA certificate bundle, invalid path:
Use these commands for automated checking: Use these commands for automated checking:
- `/debug report` - Run full diagnostics, create issue if problems found - `/pm-debug report` - Run full diagnostics, create issue if problems found
- `/debug review` - Investigate existing diagnostic issues and propose fixes - `/pm-debug review` - Investigate existing diagnostic issues and propose fixes
--- ---

View File

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

View File

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

View File

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

View File

@@ -14,16 +14,18 @@ Display at the start of every command execution:
| Command | Header Text | | Command | Header Text |
|---------|-------------| |---------|-------------|
| initial-setup | Setup Wizard | | data-setup | Setup Wizard |
| ingest | Ingest | | data-ingest | Ingest |
| profile | Data Profile | | data-profile | Data Profile |
| schema | Schema Explorer | | data-schema | Schema Explorer |
| data-quality | Data Quality | | data-quality | Data Quality |
| run | dbt Run | | data-run | dbt Run |
| dbt-test | dbt Tests | | dbt-test | dbt Tests |
| lineage | Lineage | | data-lineage | Lineage |
| lineage-viz | Lineage Visualization | | lineage-viz | Lineage Visualization |
| explain | Model Explanation | | data-explain | Model Explanation |
| data-review | Data Review |
| data-gate | Data Gate |
## Summary Box Format ## Summary Box Format

View File

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

View File

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

View File

@@ -51,6 +51,6 @@ Unstaged:
2. Ready to commit with 1 staged file 2. Ready to commit with 1 staged file
--- Quick Actions --- --- Quick Actions ---
/commit - Commit staged changes /git-commit - Commit staged changes
/commit-push - Commit and push /git-commit-push - Commit and push
``` ```

View File

@@ -19,28 +19,28 @@ Standard header format for consistent visual output across all git-flow commands
## Command Headers ## Command Headers
### /commit ### /git-commit
``` ```
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| GIT-FLOW Smart Commit | | GIT-FLOW Smart Commit |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
``` ```
### /commit-push ### /git-commit-push
``` ```
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| GIT-FLOW Commit & Push | | GIT-FLOW Commit & Push |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
``` ```
### /commit-sync ### /git-commit-sync
``` ```
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| GIT-FLOW Commit Sync | | GIT-FLOW Commit Sync |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
``` ```
### /commit-merge ### /git-commit-merge
``` ```
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| GIT-FLOW Commit & Merge | | GIT-FLOW Commit & Merge |

View File

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

View File

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

View File

@@ -5,6 +5,6 @@ See **[docs/CONFIGURATION.md](../../docs/CONFIGURATION.md)** for complete setup
## Quick Commands ## Quick Commands
``` ```
/initial-setup # First time on this machine /pm-setup --full # First time on this machine
/project-init # New project (system already configured) /pm-setup --quick # New project (system already configured)
``` ```

View File

@@ -14,6 +14,7 @@ agent: orchestrator
- skills/progress-tracking.md - skills/progress-tracking.md
- skills/git-workflow.md - skills/git-workflow.md
- skills/sprint-lifecycle.md - skills/sprint-lifecycle.md
- skills/token-budget-report.md
## Purpose ## Purpose
@@ -82,3 +83,12 @@ If the sprint was linked to an RFC:
║ [Sprint Name] ║ ║ [Sprint Name] ║
╚══════════════════════════════════════════════════════════════════╝ ╚══════════════════════════════════════════════════════════════════╝
``` ```
## Final Step: Token Budget Report
After displaying the closing summary and completing all workflow steps, generate a Token Budget Report per `skills/token-budget-report.md`.
- Phase: CLOSING
- List all skills that were loaded during this closing session
- Use the orchestrator agent's model (sonnet) for agent overhead
- Display the formatted report

View File

@@ -20,6 +20,7 @@ agent: planner
- skills/planning-workflow.md - skills/planning-workflow.md
- skills/label-taxonomy/labels-reference.md - skills/label-taxonomy/labels-reference.md
- skills/sprint-lifecycle.md - skills/sprint-lifecycle.md
- skills/token-budget-report.md
## Purpose ## Purpose
@@ -57,3 +58,12 @@ Execute the planning workflow as defined in `skills/planning-workflow.md`.
║ [Sprint Name] ║ ║ [Sprint Name] ║
╚══════════════════════════════════════════════════════════════════╝ ╚══════════════════════════════════════════════════════════════════╝
``` ```
## Final Step: Token Budget Report
After displaying the planning summary and gaining sprint approval, generate a Token Budget Report per `skills/token-budget-report.md`.
- Phase: PLANNING
- List all skills that were loaded during this planning session
- Use the planner agent's model (sonnet) for agent overhead
- Display the formatted report

View File

@@ -1,46 +1,80 @@
--- ---
description: Check current sprint progress, identify blockers, optionally generate dependency diagram description: Check current sprint progress, identify blockers, optionally generate dependency diagram or token budget report
--- ---
# Sprint Status # Sprint Status
## Skills Required ## Skills Required
**Always loaded:**
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
- skills/progress-tracking.md
- skills/dependency-management.md **Conditional — only load if matching flag is present:**
- skills/sprint-lifecycle.md - skills/sprint-lifecycle.md — load if displaying lifecycle state (always, but this is small)
- skills/dependency-management.md — load ONLY with `--diagram` flag
- skills/token-budget-report.md — load ONLY with `--tokens` flag
- skills/progress-tracking.md — load ONLY with `--diagram` flag
## Purpose ## Purpose
Check current sprint progress, identify blockers, and show execution status. Optionally generate a visual dependency diagram. Check current sprint progress, identify blockers, and show execution status. Optionally generate a visual dependency diagram or token budget report.
## Invocation ## Invocation
``` ```
/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
``` ```
## Workflow ## Workflow
0. **Display Lifecycle State** - Read current Sprint/* state from milestone description per `skills/sprint-lifecycle.md` and display in output header. 1. **Fetch Active Milestone**`get_milestone` for the open milestone
1. **Fetch Sprint Issues** - Get all issues for current milestone 2. **Read Lifecycle State** — Parse `**Sprint State:**` from milestone description
2. **Calculate Progress** - Count completed vs total issues 3. **Fetch Sprint Issues**`list_issues` filtered by milestone
3. **Identify Active Tasks** - Find issues with `Status/In-Progress` 4. **Calculate Progress** — Count closed vs total issues
4. **Identify Blockers** - Find issues with `Status/Blocked` 5. **Identify Blockers** Find issues with `Status/Blocked` label
5. **Show Dependency Status** - Which tasks are now unblocked 6. **Display Output** — Format header + progress bar + issue table + blockers
6. **Parse Progress Comments** - Extract real-time status from structured comments
### If --diagram flag: That's it. No dependency analysis, no token estimation, no progress comment parsing unless a flag asks for it.
7. **Fetch Dependencies** - Use `list_issue_dependencies` for each issue ### If --diagram flag, THEN ALSO:
8. **Get Execution Order** - Use `get_execution_order` for batch grouping 7. Fetch dependencies with `list_issue_dependencies`
9. **Generate Mermaid Syntax** - Create flowchart with status colors 8. Load `skills/dependency-management.md`
9. Load `skills/progress-tracking.md`
10. Generate Mermaid diagram
### If --tokens flag, THEN ALSO:
11. Load `skills/token-budget-report.md`
12. **Generate Token Budget Report** - Execute `skills/token-budget-report.md` estimation model
- 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
See `skills/progress-tracking.md` for the progress display format. ### Default Output (no flags)
```
╔══════════════════════════════════════════════════════════════════╗
║ 📋 PROJMAN ║
║ 📊 STATUS ║
║ [Sprint Name] ║
╚══════════════════════════════════════════════════════════════════╝
Sprint State: [Planning|Executing|Blocked|Review|Closing]
Progress: [██████████░░░░░░░░░░] 50% (5/10 issues)
| # | Title | Status | Labels |
|---|-------|--------|--------|
| 123 | Issue title | Open | Priority/High |
| 124 | Another issue | Closed | Type/Bug |
Blockers:
- #125: Blocked issue title (Status/Blocked)
```
### Diagram Format (--diagram) ### Diagram Format (--diagram)
@@ -68,13 +102,3 @@ flowchart TD
| In Progress | Yellow | #FFD700 | | In Progress | Yellow | #FFD700 |
| Open | Blue | #ADD8E6 | | Open | Blue | #ADD8E6 |
| Blocked | Red | #FFB6C1 | | Blocked | Red | #FFB6C1 |
## Visual Output
```
╔══════════════════════════════════════════════════════════════════╗
║ 📋 PROJMAN ║
║ 📊 STATUS ║
║ [Sprint Name] ║
╚══════════════════════════════════════════════════════════════════╝
```

View File

@@ -0,0 +1,115 @@
---
description: Token consumption estimation model and display format for sprint workflows
---
# Token Budget Report
## Purpose
Provides directional token consumption estimates at sprint workflow boundaries. Not exact — Claude Code doesn't expose token metrics — but accurate enough to identify which phases and components consume the most context budget.
## When to Display
- End of `/sprint-plan` (after all issues created)
- End of `/sprint-close` (after lessons captured)
- On explicit request: `/sprint-status --tokens`
---
## Estimation Model
### MCP Tool Definitions (Static Overhead)
These are loaded once at session start. Update this table if MCP servers change.
| MCP Server | Default Tools | Est. Tokens | With Module Filter |
|------------|--------------|-------------|-------------------|
| netbox | 182 | ~19,810 | ~4,500 (dcim,ipam,virt,extras) |
| gitea | 36 | ~4,785 | — |
| data-platform | 32 | ~3,458 | — |
| viz-platform | 20 | ~3,055 | — |
| contract-validator | 8 | ~1,048 | — |
| **Total (default)** | **278** | **~32,156** | — |
| **Total (filtered)** | **~139** | **~16,846** | — |
### Skill Loading (Per Phase)
| Phase | Typical Skills Loaded | Est. Tokens |
|-------|----------------------|-------------|
| Planning (`/sprint-plan`) | mcp-tools-reference, label-taxonomy, sprint-planning, architecture-analysis, rfc-workflow | ~3,0005,000 |
| Execution (`/sprint-start`) | mcp-tools-reference, branch-security, plan-then-batch | ~2,0003,000 |
| Review (`/pm-review`) | mcp-tools-reference, review-checklist | ~1,5002,500 |
| Close (`/sprint-close`) | mcp-tools-reference, sprint-lifecycle, lessons-learned | ~2,0003,000 |
To get actual numbers: count characters in each skill file loaded during the phase, divide by 4.
### Agent Overhead
| Agent | Model | Est. Overhead per Invocation |
|-------|-------|------------------------------|
| Planner | sonnet | ~500 tokens (frontmatter + system context) |
| Orchestrator | sonnet | ~500 tokens |
| Executor | sonnet | ~400 tokens |
| Code Reviewer | sonnet | ~400 tokens |
---
## Display Format
```
+-- Token Budget Report -----------------------------------------------+
| Phase: [PLANNING / CLOSING] |
| Sprint: [Sprint Name] |
+----------------------------------------------------------------------+
| |
| MCP Overhead (session-wide): |
| netbox ........... ~4,500 tk (filtered: dcim,ipam,virt,extras) |
| gitea ............ ~4,785 tk |
| data-platform .... ~3,458 tk |
| viz-platform ..... ~3,055 tk |
| contract-valid ... ~1,048 tk |
| Subtotal ......... ~16,846 tk |
| |
| This Phase: |
| Skills loaded .... ~X,XXX tk (N files) |
| Agent overhead ... ~X,XXX tk (model: sonnet) |
| Command file ..... ~XXX tk |
| Subtotal ......... ~X,XXX tk |
| |
| Estimated Session Total: ~XX,XXX tk |
| Typical Claude Code Budget: ~200,000 tk |
| Estimated Usage: ~XX% |
| |
| Tip: Run `/doctor` for exact MCP overhead numbers. |
+----------------------------------------------------------------------+
```
---
## Instructions for the Agent
When generating this report:
1. **MCP Overhead**: List the MCP servers from `.mcp.json` and use the static token estimates from the table above. If `NETBOX_ENABLED_MODULES` is set in the environment, use the filtered estimate for netbox.
2. **Skills Loaded**: Count the skill files that were loaded (referenced in the command's "Skills Required" section). Estimate tokens by reading each file's character count and dividing by 4.
3. **Agent Overhead**: Use the table above based on which agent ran during this phase.
4. **Totals**: Sum the phase subtotal. Add to MCP overhead for session estimate.
5. **Percentage**: Express as a percentage of ~200,000 tokens (typical Claude Code context window).
---
## Accuracy Disclaimer
These are estimates based on known file sizes and static overhead tables. Actual consumption varies based on:
- Conversation length
- Tool call results (especially large grep/read outputs)
- File content read during the session
- Number of agent invocations
For exact MCP overhead, run `/doctor`.
This report helps identify which *components* consume the most budget — not the precise total.

View File

@@ -99,3 +99,22 @@ For domain gate results displayed by orchestrator:
| Hourglass | In progress | | Hourglass | In progress |
| Empty box | Pending / Not started | | Empty box | Pending / Not started |
| Warning | Warning | | Warning | Warning |
---
## Token Budget Report
Displayed at end of planning and closing phases:
```
+-- Token Budget Report -----------------------------------------------+
| Phase: [PHASE NAME] |
| Sprint: [Sprint Name] |
+----------------------------------------------------------------------+
| MCP Overhead: ~XX,XXX tk |
| Phase Cost: ~X,XXX tk (skills: N, agent: model) |
| Est. Total: ~XX,XXX tk (~XX% of budget) |
+----------------------------------------------------------------------+
```
See `skills/token-budget-report.md` for full format and estimation model.

View File

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

View File

@@ -44,9 +44,9 @@ If using with data-platform, add this section:
## Data + Visualization Workflow ## Data + Visualization Workflow
### Data Loading (data-platform) ### Data Loading (data-platform)
- `/ingest {file}` - Load CSV, Parquet, or JSON - `/data-ingest {file}` - Load CSV, Parquet, or JSON
- `/schema {table}` - View database schema - `/data-schema {table}` - View database schema
- `/profile {data_ref}` - Statistical summary - `/data-profile {data_ref}` - Statistical summary
### Visualization (viz-platform) ### Visualization (viz-platform)
- `/viz-chart {type}` - Create charts from loaded data - `/viz-chart {type}` - Create charts from loaded data

View File

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

59
scripts/switch-profile.sh Executable file
View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# Switch between marketplace profiles
# Usage: ./scripts/switch-profile.sh [lean|full]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
MARKETPLACE_DIR="$ROOT_DIR/.claude-plugin"
case "${1:-lean}" in
lean)
cp "$MARKETPLACE_DIR/marketplace-lean.json" "$MARKETPLACE_DIR/marketplace.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 "Plugin cache cleared."
echo ""
echo "Plugins: projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian"
echo "MCP: gitea only"
echo ""
echo "Restart Claude Code session for changes to take effect."
;;
full)
cp "$MARKETPLACE_DIR/marketplace-full.json" "$MARKETPLACE_DIR/marketplace.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 "Plugin cache cleared."
echo ""
echo "Plugins: all"
echo "MCP: gitea, netbox, data-platform, viz-platform, contract-validator"
echo ""
echo "Restart Claude Code session for changes to take effect."
;;
status)
# Check current profile by comparing files
if diff -q "$MARKETPLACE_DIR/marketplace.json" "$MARKETPLACE_DIR/marketplace-lean.json" >/dev/null 2>&1; then
echo "Current profile: LEAN (6 plugins, 1 MCP server)"
elif diff -q "$MARKETPLACE_DIR/marketplace.json" "$MARKETPLACE_DIR/marketplace-full.json" >/dev/null 2>&1; then
echo "Current profile: FULL (12 plugins, 5 MCP servers)"
else
echo "Current profile: CUSTOM (marketplace.json differs from both profiles)"
fi
;;
*)
echo "Usage: $0 [lean|full|status]"
echo ""
echo "Profiles:"
echo " lean — 6 core plugins (projman, git-flow, pr-review, clarity-assist, code-sentinel, doc-guardian)"
echo " 1 MCP server (gitea only)"
echo " full — All 12 plugins"
echo " 5 MCP servers (gitea, netbox, data-platform, viz-platform, contract-validator)"
echo " status — Show current profile"
echo ""
echo "Note: Restart Claude Code session after switching for changes to take effect."
exit 1
;;
esac

View File

@@ -77,19 +77,19 @@ validate_target() {
} }
# --- Get MCP Servers for Plugin --- # --- Get MCP Servers for Plugin ---
# Reads the mcp_servers array from plugin.json # Reads the mcp_servers array from metadata.json (separate from plugin.json to avoid schema validation issues)
# 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 plugin_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/plugin.json" local metadata_json="$REPO_ROOT/plugins/$plugin_name/.claude-plugin/metadata.json"
if [[ ! -f "$plugin_json" ]]; then if [[ ! -f "$metadata_json" ]]; then
return return
fi fi
# Read mcp_servers array from plugin.json # Read mcp_servers array from metadata.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 // [] | .[]' "$plugin_json" 2>/dev/null || true jq -r '.mcp_servers // [] | .[]' "$metadata_json" 2>/dev/null || true
} }
# --- Remove from .mcp.json --- # --- Remove from .mcp.json ---