1 Commits

Author SHA1 Message Date
8ea8a3de59 feat(agents): add permissionMode, disallowedTools, skills frontmatter to all 25 agents
- permissionMode: 1 bypassPermissions, 7 acceptEdits, 7 default, 10 plan
- disallowedTools: 12 agents blocked from Write/Edit/MultiEdit
- model: promote Planner + Code Reviewer to opus
- skills: auto-inject on Executor (7), Code Reviewer (4), Maintainer (2)
- docs: CLAUDE.md + CONFIGURATION.md updated with full agent matrix

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 11:05:12 -05:00
90 changed files with 1574 additions and 2983 deletions

View File

@@ -1,205 +0,0 @@
{
"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

@@ -1,109 +0,0 @@
{
"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

@@ -6,7 +6,7 @@
}, },
"metadata": { "metadata": {
"description": "Project management plugins with Gitea and NetBox integrations", "description": "Project management plugins with Gitea and NetBox integrations",
"version": "7.0.0" "version": "5.8.0"
}, },
"plugins": [ "plugins": [
{ {
@@ -25,6 +25,102 @@
"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",
@@ -58,51 +154,51 @@
"license": "MIT" "license": "MIT"
}, },
{ {
"name": "clarity-assist", "name": "data-platform",
"version": "1.2.0", "version": "1.3.0",
"description": "Prompt optimization and requirement clarification with ND-friendly accommodations", "description": "Data engineering tools with pandas, PostgreSQL/PostGIS, and dbt integration",
"source": "./plugins/clarity-assist", "source": "./plugins/data-platform",
"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/clarity-assist/README.md", "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", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"], "hooks": ["./hooks/hooks.json"],
"category": "productivity", "category": "data",
"tags": ["prompts", "requirements", "clarification", "nd-friendly"], "tags": ["pandas", "postgresql", "postgis", "dbt", "data-engineering", "etl"],
"license": "MIT" "license": "MIT"
}, },
{ {
"name": "code-sentinel", "name": "viz-platform",
"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", "version": "1.1.0",
"description": "Automatic documentation drift detection and synchronization", "description": "Visualization tools with Dash Mantine Components validation, Plotly charts, and theming",
"source": "./plugins/doc-guardian", "source": "./plugins/viz-platform",
"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/doc-guardian/README.md", "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", "repository": "https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace.git",
"hooks": ["./hooks/hooks.json"], "hooks": ["./hooks/hooks.json"],
"category": "productivity", "category": "visualization",
"tags": ["documentation", "drift-detection", "sync"], "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" "license": "MIT"
} }
] ]

View File

@@ -25,41 +25,3 @@
2026-02-02T13:52:07 | skills | /home/lmiranda/claude-plugins-work/plugins/contract-validator/skills/mcp-tools-reference.md | README.md 2026-02-02T13:52:07 | skills | /home/lmiranda/claude-plugins-work/plugins/contract-validator/skills/mcp-tools-reference.md | README.md
2026-02-02T13:59:09 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/progress-tracking.md | README.md 2026-02-02T13:59:09 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/progress-tracking.md | README.md
2026-02-02T14:01:34 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/test.md | docs/COMMANDS-CHEATSHEET.md README.md 2026-02-02T14:01:34 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/test.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:38 | commands | /home/lmiranda/claude-plugins-work/plugins/git-flow/commands/git-commit.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:39 | commands | /home/lmiranda/claude-plugins-work/plugins/git-flow/commands/git-commit-push.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:40 | commands | /home/lmiranda/claude-plugins-work/plugins/git-flow/commands/git-commit-merge.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:41 | commands | /home/lmiranda/claude-plugins-work/plugins/git-flow/commands/git-commit-sync.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:49 | commands | /home/lmiranda/claude-plugins-work/plugins/cmdb-assistant/commands/cmdb-setup.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:50 | commands | /home/lmiranda/claude-plugins-work/plugins/pr-review/commands/project-init.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:51 | skills | /home/lmiranda/claude-plugins-work/plugins/cmdb-assistant/skills/visual-header.md | README.md
2026-02-03T21:08:51 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/pm-review.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:53 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/pm-test.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:08:54 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/review-checklist.md | README.md
2026-02-03T21:08:55 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/visual-output.md | README.md
2026-02-03T21:08:58 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/setup-workflows.md | README.md
2026-02-03T21:08:59 | skills | /home/lmiranda/claude-plugins-work/plugins/git-flow/skills/sync-workflow.md | README.md
2026-02-03T21:09:00 | skills | /home/lmiranda/claude-plugins-work/plugins/git-flow/skills/commit-conventions.md | README.md
2026-02-03T21:09:00 | skills | /home/lmiranda/claude-plugins-work/plugins/git-flow/skills/merge-workflow.md | README.md
2026-02-03T21:09:08 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/pm-setup.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:08 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-setup.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:10 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-run.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:10 | commands | /home/lmiranda/claude-plugins-work/plugins/contract-validator/commands/cv-setup.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:11 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/pm-debug.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:13 | agents | /home/lmiranda/claude-plugins-work/plugins/contract-validator/agents/full-validation.md | README.md CLAUDE.md
2026-02-03T21:09:14 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-ingest.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:18 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-profile.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:18 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-setup.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:20 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-schema.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:20 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-theme.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:23 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-theme-new.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:24 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-explain.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:26 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-lineage.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:26 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-theme-css.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:29 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-chart.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:32 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-chart-export.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:33 | commands | /home/lmiranda/claude-plugins-work/plugins/data-platform/commands/data-review.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:35 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-dashboard.md | docs/COMMANDS-CHEATSHEET.md README.md
2026-02-03T21:09:38 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/viz-component.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:10:22 | commands | /home/lmiranda/claude-plugins-work/plugins/viz-platform/commands/accessibility-check.md | docs/COMMANDS-CHEATSHEET.md README.md

8
.gitignore vendored
View File

@@ -84,13 +84,6 @@ Thumbs.db
# Claude Code # Claude Code
.claude/settings.local.json .claude/settings.local.json
.claude/history/ .claude/history/
.claude/backups/
# Doc Guardian transient files
.doc-guardian-queue
# Development convenience links
.marketplaces-link
# Logs # Logs
logs/ logs/
@@ -132,5 +125,4 @@ site/
*credentials* *credentials*
*secret* *secret*
*token* *token*
!**/token-budget-report.md
!.gitkeep !.gitkeep

View File

@@ -1,24 +0,0 @@
{
"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": []
}
}
}

View File

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

View File

@@ -3,6 +3,22 @@
"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

@@ -8,174 +8,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Added ### 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
### BREAKING CHANGES
#### Command Namespace Rename
All generic command names are now prefixed with their plugin's namespace to eliminate collisions across the marketplace. This is a **breaking change** for consuming projects — update your CLAUDE.md integration snippets.
**Full Rename Map:**
| Plugin | Old | New |
|--------|-----|-----|
| projman | `/setup` | `/pm-setup` |
| projman | `/review` | `/pm-review` |
| projman | `/test` | `/pm-test` |
| projman | `/debug` | `/pm-debug` |
| git-flow | `/commit` | `/git-commit` |
| git-flow | `/commit-push` | `/git-commit-push` |
| git-flow | `/commit-merge` | `/git-commit-merge` |
| git-flow | `/commit-sync` | `/git-commit-sync` |
| pr-review | `/initial-setup` | `/pr-setup` |
| cmdb-assistant | `/initial-setup` | `/cmdb-setup` |
| data-platform | `/initial-setup` | `/data-setup` |
| data-platform | `/run` | `/data-run` |
| data-platform | `/ingest` | `/data-ingest` |
| data-platform | `/profile` | `/data-profile` |
| data-platform | `/schema` | `/data-schema` |
| data-platform | `/explain` | `/data-explain` |
| data-platform | `/lineage` | `/data-lineage` |
| viz-platform | `/initial-setup` | `/viz-setup` |
| viz-platform | `/theme` | `/viz-theme` |
| viz-platform | `/theme-new` | `/viz-theme-new` |
| viz-platform | `/theme-css` | `/viz-theme-css` |
| viz-platform | `/chart` | `/viz-chart` |
| viz-platform | `/chart-export` | `/viz-chart-export` |
| viz-platform | `/dashboard` | `/viz-dashboard` |
| viz-platform | `/component` | `/viz-component` |
| viz-platform | `/breakpoints` | `/viz-breakpoints` |
| contract-validator | `/initial-setup` | `/cv-setup` |
**Migration:** Update your project's CLAUDE.md integration snippets to use the new command names. Run `/plugin list` to verify installed plugins are using v7.0.0+.
**Unchanged:** Commands already using plugin-namespaced prefixes (`/sprint-*`, `/cmdb-*`, `/labels-sync`, `/branch-*`, `/git-status`, `/git-config`, `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff`, `/project-init`, `/project-sync`, `/config-*`, `/design-*`, `/data-quality`, `/data-review`, `/data-gate`, `/lineage-viz`, `/dbt-test`, `/accessibility-check`, `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph`, `/doc-audit`, `/doc-sync`, `/security-scan`, `/refactor`, `/refactor-dry`, `/clarify`, `/suggest-version`, `/proposal-status`, `/rfc`, `/change-audit`, `/ip-conflicts`) are **not affected**.
### Added
#### Plan-Then-Batch Skill Optimization (projman)
New execution pattern that separates cognitive work from mechanical API operations, reducing skill-related token consumption by ~76-83% during sprint workflows.
- **`skills/batch-execution.md`** — New skill defining the plan-then-batch protocol:
- Phase 1: Cognitive work with all skills loaded
- Phase 2: Execution manifest (structured plan of all API operations)
- Phase 3: Batch execute API calls using only frontmatter skills
- Phase 4: Batch report with success/failure summary
- Error handling: continue on individual failures, report at end
- **Frontmatter skill promotion:**
- Planner agent: `mcp-tools-reference` and `batch-execution` promoted to frontmatter (auto-injected, zero re-read cost)
- Orchestrator agent: same promotion
- Eliminates per-operation skill file re-reads during API execution loops
- **Phase-based skill loading:**
- Planner: 3 phases (validation → analysis → approval) with explicit "read once" instructions
- Orchestrator: 2 phases (startup → dispatch) with same pattern
- New `## Skill Loading Protocol` section replaces flat `## Skills to Load` in agent files
### Changed
- **`planning-workflow.md`** — Steps 8-10 restructured:
- Step 8: "Draft Issue Specifications" (no API calls — resolve all parameters first)
- Step 8a: "Batch Execute Issue Creation" (tight API loop, frontmatter skills only)
- Step 9: Merged into Step 8a (dependencies created in batch)
- Step 10: Milestone creation moved before batch (must exist for assignment)
- **Agent matrix updated:**
- Planner: `body text (14)``frontmatter (2) + body text (12)`
- Orchestrator: `body text (12)``frontmatter (2) + body text (10)`
- **`docs/CONFIGURATION.md`** — New "Phase-Based Skill Loading" subsection documenting the pattern
### Token Impact
| Scenario | Before | After | Savings |
|----------|--------|-------|---------|
| 6-issue sprint (planning) | ~23,800 lines | ~5,600 lines | ~76% |
| 10-issue sprint (planning) | ~35,000 lines | ~7,000 lines | ~80% |
| 8-issue status updates (orchestrator) | ~9,600 lines | ~1,600 lines | ~83% |
---
## [5.10.0] - 2026-02-03
### Added
#### NetBox MCP Server: Module-Based Tool Filtering
Environment-variable-driven module filtering to reduce token consumption:
- **New config option**: `NETBOX_ENABLED_MODULES` in `~/.config/claude/netbox.env`
- **Token savings**: ~15,000 tokens (from ~19,810 to ~4,500) with recommended config
- **Default behavior**: All modules enabled if env var unset (backward compatible)
- **Startup logging**: Shows enabled modules and tool count on initialization
- **Routing guard**: Clear error message when calling disabled module's tools
**Recommended configuration for cmdb-assistant users:**
```bash
NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras
```
This enables ~43 tools covering all cmdb-assistant commands while staying well below the 25K token warning threshold.
### Fixed
#### cmdb-assistant Documentation: Incorrect Tool Names
Fixed documentation referencing non-existent `virtualization_*` tool names:
| File | Wrong | Correct |
|------|-------|---------|
| `claude-md-integration.md` | `virtualization_list_virtual_machines` | `virt_list_vms` |
| `claude-md-integration.md` | `virtualization_create_virtual_machine` | `virt_create_vm` |
| `cmdb-search.md` | `virtualization_list_virtual_machines` | `virt_list_vms` |
Also fixed NetBox README.md tool name references for virtualization, wireless, and circuits modules.
#### Gitea MCP Server: Standardized Build Backend
Changed `mcp-servers/gitea/pyproject.toml` from hatchling to setuptools:
- Matches all other MCP servers (contract-validator, viz-platform, data-platform)
- Updated license format to PEP 639 compliance
- Added pytest configuration for consistency
---
## [5.9.0] - 2026-02-03
### Added
#### Plugin Installation Scripts #### Plugin Installation Scripts
New scripts for installing marketplace plugins into consumer projects: New scripts for installing marketplace plugins into consumer projects:

View File

@@ -129,7 +129,7 @@ These plugins exist in source but are **NOT relevant** to this project's workflo
| **viz-platform** | For dashboard projects (Dash, Plotly) | | **viz-platform** | For dashboard projects (Dash, Plotly) |
| **cmdb-assistant** | For infrastructure projects (NetBox) | | **cmdb-assistant** | For infrastructure projects (NetBox) |
**Do NOT suggest** `/data-ingest`, `/data-profile`, `/viz-chart`, `/cmdb-*` commands - they don't apply here. **Do NOT suggest** `/ingest`, `/profile`, `/chart`, `/cmdb-*` commands - they don't apply here.
### Key Distinction ### Key Distinction
@@ -146,7 +146,7 @@ When user says "fix the sprint-plan command", edit the SOURCE code.
## Project Overview ## Project Overview
**Repository:** leo-claude-mktplace **Repository:** leo-claude-mktplace
**Version:** 7.0.0 **Version:** 5.8.0
**Status:** Production Ready **Status:** Production Ready
A plugin marketplace for Claude Code containing: A plugin marketplace for Claude Code containing:
@@ -180,16 +180,16 @@ A plugin marketplace for Claude Code containing:
| Category | Commands | | Category | Commands |
|----------|----------| |----------|----------|
| **Setup** | `/pm-setup` (modes: `--full`, `--quick`, `--sync`) | | **Setup** | `/setup` (modes: `--full`, `--quick`, `--sync`) |
| **Sprint** | `/sprint-plan`, `/sprint-start`, `/sprint-status` (with `--diagram`), `/sprint-close` | | **Sprint** | `/sprint-plan`, `/sprint-start`, `/sprint-status` (with `--diagram`), `/sprint-close` |
| **Quality** | `/pm-review`, `/pm-test` (modes: `run`, `gen`) | | **Quality** | `/review`, `/test` (modes: `run`, `gen`) |
| **Versioning** | `/suggest-version` | | **Versioning** | `/suggest-version` |
| **PR Review** | `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff` | | **PR Review** | `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff` |
| **Docs** | `/doc-audit`, `/doc-sync`, `/changelog-gen`, `/doc-coverage`, `/stale-docs` | | **Docs** | `/doc-audit`, `/doc-sync`, `/changelog-gen`, `/doc-coverage`, `/stale-docs` |
| **Security** | `/security-scan`, `/refactor`, `/refactor-dry` | | **Security** | `/security-scan`, `/refactor`, `/refactor-dry` |
| **Config** | `/config-analyze`, `/config-optimize`, `/config-diff`, `/config-lint` | | **Config** | `/config-analyze`, `/config-optimize`, `/config-diff`, `/config-lint` |
| **Validation** | `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph` | | **Validation** | `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph` |
| **Debug** | `/pm-debug` (modes: `report`, `review`) | | **Debug** | `/debug` (modes: `report`, `review`) |
### Plugin Commands - NOT RELEVANT to This Project ### Plugin Commands - NOT RELEVANT to This Project
@@ -197,8 +197,8 @@ These commands are being developed but don't apply to this project's workflow:
| Category | Commands | For Projects Using | | Category | Commands | For Projects Using |
|----------|----------|-------------------| |----------|----------|-------------------|
| **Data** | `/data-ingest`, `/data-profile`, `/data-schema`, `/data-lineage`, `/dbt-test` | pandas, PostgreSQL, dbt | | **Data** | `/ingest`, `/profile`, `/schema`, `/lineage`, `/dbt-test` | pandas, PostgreSQL, dbt |
| **Visualization** | `/viz-component`, `/viz-chart`, `/viz-dashboard`, `/viz-theme` | Dash, Plotly dashboards | | **Visualization** | `/component`, `/chart`, `/dashboard`, `/theme` | Dash, Plotly dashboards |
| **CMDB** | `/cmdb-search`, `/cmdb-device`, `/cmdb-sync` | NetBox infrastructure | | **CMDB** | `/cmdb-search`, `/cmdb-device`, `/cmdb-sync` | NetBox infrastructure |
## Repository Structure ## Repository Structure
@@ -291,8 +291,8 @@ Agents specify their configuration in frontmatter using Claude Code's supported
| Plugin | Agent | `model` | `permissionMode` | `disallowedTools` | `skills` | | Plugin | Agent | `model` | `permissionMode` | `disallowedTools` | `skills` |
|--------|-------|---------|-------------------|--------------------|----------| |--------|-------|---------|-------------------|--------------------|----------|
| projman | planner | opus | default | — | frontmatter (2) + body text (12) | | projman | planner | opus | default | — | body text (14) |
| projman | orchestrator | sonnet | acceptEdits | — | frontmatter (2) + body text (10) | | projman | orchestrator | sonnet | acceptEdits | — | body text (12) |
| projman | executor | sonnet | bypassPermissions | — | frontmatter (7) | | projman | executor | sonnet | bypassPermissions | — | frontmatter (7) |
| projman | code-reviewer | opus | default | Write, Edit, MultiEdit | frontmatter (4) | | projman | code-reviewer | opus | default | Write, Edit, MultiEdit | frontmatter (4) |
| pr-review | coordinator | sonnet | plan | Write, Edit, MultiEdit | — | | pr-review | coordinator | sonnet | plan | Write, Edit, MultiEdit | — |
@@ -449,12 +449,12 @@ See `docs/DEBUGGING-CHECKLIST.md` for systematic troubleshooting.
| Symptom | Likely Cause | Fix | | Symptom | Likely Cause | Fix |
|---------|--------------|-----| |---------|--------------|-----|
| "X MCP servers failed" | Missing venv in installed path | `cd ~/.claude/plugins/marketplaces/leo-claude-mktplace && ./scripts/setup.sh` | | "X MCP servers failed" | Missing venv in installed path | `cd ~/.claude/plugins/marketplaces/leo-claude-mktplace && ./scripts/setup.sh` |
| MCP tools not available | Venv missing or .mcp.json misconfigured | Run `/pm-debug report` to diagnose | | MCP tools not available | Venv missing or .mcp.json misconfigured | Run `/debug report` to diagnose |
| Changes not taking effect | Editing source, not installed | Reinstall plugin or edit installed path | | Changes not taking effect | Editing source, not installed | Reinstall plugin or edit installed path |
**Debug Commands:** **Debug Commands:**
- `/pm-debug report` - Run full diagnostics, create issue if needed - `/debug report` - Run full diagnostics, create issue if needed
- `/pm-debug review` - Investigate and propose fixes - `/debug review` - Investigate and propose fixes
## Versioning Workflow ## Versioning Workflow
@@ -508,4 +508,4 @@ The script will:
--- ---
**Last Updated:** 2026-02-03 **Last Updated:** 2026-02-02

View File

@@ -1,4 +1,4 @@
# Leo Claude Marketplace - v7.0.0 # Leo Claude Marketplace - v5.8.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.
@@ -12,7 +12,6 @@ A collection of Claude Code plugins for project management, infrastructure autom
AI-guided sprint planning with full Gitea integration. Transforms a proven 15-sprint workflow into a distributable plugin. AI-guided sprint planning with full Gitea integration. Transforms a proven 15-sprint workflow into a distributable plugin.
- Four-agent model: Planner, Orchestrator, Executor, Code Reviewer - Four-agent model: Planner, Orchestrator, Executor, Code Reviewer
- Plan-then-batch execution: skills loaded once per phase, API calls batched for ~80% token savings
- Intelligent label suggestions from 43-label taxonomy - Intelligent label suggestions from 43-label taxonomy
- Lessons learned capture via Gitea Wiki - Lessons learned capture via Gitea Wiki
- Native issue dependencies with parallel execution - Native issue dependencies with parallel execution
@@ -20,7 +19,7 @@ AI-guided sprint planning with full Gitea integration. Transforms a proven 15-sp
- Branch-aware security (development/staging/production) - Branch-aware security (development/staging/production)
- Pre-sprint-close code quality review and test verification - Pre-sprint-close code quality review and test verification
**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`, `/setup`, `/review`, `/test`, `/debug`, `/suggest-version`, `/proposal-status`, `/rfc`
#### [git-flow](./plugins/git-flow) *NEW in v3.0.0* #### [git-flow](./plugins/git-flow) *NEW in v3.0.0*
**Git Workflow Automation** **Git Workflow Automation**
@@ -33,7 +32,7 @@ Smart git operations with intelligent commit messages and branch management.
- Merge and cleanup automation - Merge and cleanup automation
- Protected branch awareness - Protected branch awareness
**Commands:** `/git-commit`, `/git-commit-push`, `/git-commit-merge`, `/git-commit-sync`, `/branch-start`, `/branch-cleanup`, `/git-status`, `/git-config` **Commands:** `/commit`, `/commit-push`, `/commit-merge`, `/commit-sync`, `/branch-start`, `/branch-cleanup`, `/git-status`, `/git-config`
#### [pr-review](./plugins/pr-review) *NEW in v3.0.0* #### [pr-review](./plugins/pr-review) *NEW in v3.0.0*
**Multi-Agent PR Review** **Multi-Agent PR Review**
@@ -45,7 +44,7 @@ Comprehensive pull request review using specialized agents.
- Actionable feedback with suggested fixes - Actionable feedback with suggested fixes
- Gitea integration for automated review submission - Gitea integration for automated review submission
**Commands:** `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff`, `/pr-setup`, `/project-init`, `/project-sync` **Commands:** `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff`, `/initial-setup`, `/project-init`, `/project-sync`
#### [claude-config-maintainer](./plugins/claude-config-maintainer) #### [claude-config-maintainer](./plugins/claude-config-maintainer)
**CLAUDE.md and Settings Optimization** **CLAUDE.md and Settings Optimization**
@@ -65,7 +64,7 @@ Validate plugin marketplaces for command conflicts, tool overlaps, and broken ag
- Data flow validation for agent sequences - Data flow validation for agent sequences
- Markdown or JSON reports with actionable suggestions - Markdown or JSON reports with actionable suggestions
**Commands:** `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph`, `/cv-setup` **Commands:** `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph`, `/initial-setup`
### Productivity ### Productivity
@@ -108,7 +107,7 @@ Security vulnerability detection and code refactoring tools.
Full CRUD operations for network infrastructure management directly from Claude Code. Full CRUD operations for network infrastructure management directly from Claude Code.
**Commands:** `/cmdb-setup`, `/cmdb-search`, `/cmdb-device`, `/cmdb-ip`, `/cmdb-site`, `/cmdb-audit`, `/cmdb-register`, `/cmdb-sync`, `/cmdb-topology`, `/change-audit`, `/ip-conflicts` **Commands:** `/initial-setup`, `/cmdb-search`, `/cmdb-device`, `/cmdb-ip`, `/cmdb-site`, `/cmdb-audit`, `/cmdb-register`, `/cmdb-sync`, `/cmdb-topology`, `/change-audit`, `/ip-conflicts`
### Data Engineering ### Data Engineering
@@ -123,7 +122,7 @@ Comprehensive data engineering toolkit with persistent DataFrame storage.
- 100k row limit with chunking support - 100k row limit with chunking support
- Auto-detection of dbt projects - Auto-detection of dbt projects
**Commands:** `/data-ingest`, `/data-profile`, `/data-schema`, `/data-explain`, `/data-lineage`, `/lineage-viz`, `/data-run`, `/dbt-test`, `/data-quality`, `/data-review`, `/data-gate`, `/data-setup` **Commands:** `/ingest`, `/profile`, `/schema`, `/explain`, `/lineage`, `/lineage-viz`, `/run`, `/dbt-test`, `/data-quality`, `/data-review`, `/data-gate`, `/initial-setup`
### Visualization ### Visualization
@@ -139,7 +138,7 @@ Visualization toolkit with version-locked component validation and design token
- 5 Page tools for multi-page app structure - 5 Page tools for multi-page app structure
- Dual theme storage: user-level and project-level - Dual theme storage: user-level and project-level
**Commands:** `/viz-chart`, `/viz-chart-export`, `/viz-dashboard`, `/viz-theme`, `/viz-theme-new`, `/viz-theme-css`, `/viz-component`, `/accessibility-check`, `/viz-breakpoints`, `/design-review`, `/design-gate`, `/viz-setup` **Commands:** `/chart`, `/chart-export`, `/dashboard`, `/theme`, `/theme-new`, `/theme-css`, `/component`, `/accessibility-check`, `/breakpoints`, `/design-review`, `/design-gate`, `/initial-setup`
## Domain Advisory Pattern ## Domain Advisory Pattern
@@ -255,7 +254,7 @@ Add to `.claude/settings.json` in your target project:
After installing plugins, run the setup wizard: After installing plugins, run the setup wizard:
``` ```
/pm-setup /initial-setup
``` ```
The wizard handles everything: The wizard handles everything:
@@ -315,8 +314,8 @@ After installing plugins, the `/plugin` command may show `(no content)` - this i
| code-sentinel | `/code-sentinel:security-scan` | | code-sentinel | `/code-sentinel:security-scan` |
| claude-config-maintainer | `/claude-config-maintainer:analyze` | | claude-config-maintainer | `/claude-config-maintainer:analyze` |
| cmdb-assistant | `/cmdb-assistant:cmdb-search` | | cmdb-assistant | `/cmdb-assistant:cmdb-search` |
| data-platform | `/data-platform:data-ingest` | | data-platform | `/data-platform:ingest` |
| viz-platform | `/viz-platform:viz-chart` | | viz-platform | `/viz-platform:chart` |
| contract-validator | `/contract-validator:validate-contracts` | | contract-validator | `/contract-validator:validate-contracts` |
## Repository Structure ## Repository Structure

View File

@@ -11,25 +11,25 @@ Quick reference for all commands in the Leo Claude Marketplace.
| **projman** | `/sprint-plan` | | X | Start sprint planning with AI-guided architecture analysis and issue creation | | **projman** | `/sprint-plan` | | X | Start sprint planning with AI-guided architecture analysis and issue creation |
| **projman** | `/sprint-start` | | X | Begin sprint execution with dependency analysis and parallel task coordination (requires approval or `--force`) | | **projman** | `/sprint-start` | | X | Begin sprint execution with dependency analysis and parallel task coordination (requires approval or `--force`) |
| **projman** | `/sprint-status` | | X | Check current sprint progress (add `--diagram` for Mermaid visualization) | | **projman** | `/sprint-status` | | X | Check current sprint progress (add `--diagram` for Mermaid visualization) |
| **projman** | `/pm-review` | | X | Pre-sprint-close code quality review (debug artifacts, security, error handling) | | **projman** | `/review` | | X | Pre-sprint-close code quality review (debug artifacts, security, error handling) |
| **projman** | `/pm-test` | | X | Run tests (`/pm-test run`) or generate tests (`/pm-test gen <target>`) | | **projman** | `/test` | | X | Run tests (`/test run`) or generate tests (`/test gen <target>`) |
| **projman** | `/sprint-close` | | X | Complete sprint and capture lessons learned to Gitea Wiki | | **projman** | `/sprint-close` | | X | Complete sprint and capture lessons learned to Gitea Wiki |
| **projman** | `/labels-sync` | | X | Synchronize label taxonomy from Gitea | | **projman** | `/labels-sync` | | X | Synchronize label taxonomy from Gitea |
| **projman** | `/pm-setup` | | X | Auto-detect mode or use `--full`, `--quick`, `--sync`, `--clear-cache` | | **projman** | `/setup` | | X | Auto-detect mode or use `--full`, `--quick`, `--sync`, `--clear-cache` |
| **projman** | *SessionStart hook* | X | | Detects git remote vs .env mismatch, warns to run `/pm-setup --sync` | | **projman** | *SessionStart hook* | X | | Detects git remote vs .env mismatch, warns to run `/setup --sync` |
| **projman** | `/pm-debug` | | X | Diagnostics (`/pm-debug report`) or investigate (`/pm-debug review`) | | **projman** | `/debug` | | X | Diagnostics (`/debug report`) or investigate (`/debug review`) |
| **projman** | `/suggest-version` | | X | Analyze CHANGELOG and recommend semantic version bump | | **projman** | `/suggest-version` | | X | Analyze CHANGELOG and recommend semantic version bump |
| **projman** | `/proposal-status` | | X | View proposal and implementation hierarchy with status | | **projman** | `/proposal-status` | | X | View proposal and implementation hierarchy with status |
| **projman** | `/rfc` | | X | RFC lifecycle management (`/rfc create\|list\|review\|approve\|reject`) | | **projman** | `/rfc` | | X | RFC lifecycle management (`/rfc create\|list\|review\|approve\|reject`) |
| **git-flow** | `/git-commit` | | X | Create commit with auto-generated conventional message | | **git-flow** | `/commit` | | X | Create commit with auto-generated conventional message |
| **git-flow** | `/git-commit-push` | | X | Commit and push to remote in one operation | | **git-flow** | `/commit-push` | | X | Commit and push to remote in one operation |
| **git-flow** | `/git-commit-merge` | | X | Commit current changes, then merge into target branch | | **git-flow** | `/commit-merge` | | X | Commit current changes, then merge into target branch |
| **git-flow** | `/git-commit-sync` | | X | Full sync: commit, push, and sync with upstream/base branch | | **git-flow** | `/commit-sync` | | X | Full sync: commit, push, and sync with upstream/base branch |
| **git-flow** | `/branch-start` | | X | Create new feature/fix/chore branch with naming conventions | | **git-flow** | `/branch-start` | | X | Create new feature/fix/chore branch with naming conventions |
| **git-flow** | `/branch-cleanup` | | X | Remove merged branches locally and optionally on remote | | **git-flow** | `/branch-cleanup` | | X | Remove merged branches locally and optionally on remote |
| **git-flow** | `/git-status` | | X | Enhanced git status with recommendations | | **git-flow** | `/git-status` | | X | Enhanced git status with recommendations |
| **git-flow** | `/git-config` | | X | Configure git-flow settings for the project | | **git-flow** | `/git-config` | | X | Configure git-flow settings for the project |
| **pr-review** | `/pr-setup` | | X | Setup wizard for pr-review (shares Gitea MCP with projman) | | **pr-review** | `/initial-setup` | | X | Setup wizard for pr-review (shares Gitea MCP with projman) |
| **pr-review** | `/project-init` | | X | Quick project setup for PR reviews | | **pr-review** | `/project-init` | | X | Quick project setup for PR reviews |
| **pr-review** | `/project-sync` | | X | Sync config with git remote after repo move/rename | | **pr-review** | `/project-sync` | | X | Sync config with git remote after repo move/rename |
| **pr-review** | *SessionStart hook* | X | | Detects git remote vs .env mismatch | | **pr-review** | *SessionStart hook* | X | | Detects git remote vs .env mismatch |
@@ -57,7 +57,7 @@ Quick reference for all commands in the Leo Claude Marketplace.
| **claude-config-maintainer** | `/config-audit-settings` | | X | Audit settings.local.json permissions (100-point score) | | **claude-config-maintainer** | `/config-audit-settings` | | X | Audit settings.local.json permissions (100-point score) |
| **claude-config-maintainer** | `/config-optimize-settings` | | X | Optimize permissions (profiles, consolidation, dry-run) | | **claude-config-maintainer** | `/config-optimize-settings` | | X | Optimize permissions (profiles, consolidation, dry-run) |
| **claude-config-maintainer** | `/config-permissions-map` | | X | Visual review layer + permission coverage map | | **claude-config-maintainer** | `/config-permissions-map` | | X | Visual review layer + permission coverage map |
| **cmdb-assistant** | `/cmdb-setup` | | X | Setup wizard for NetBox MCP server | | **cmdb-assistant** | `/initial-setup` | | X | Setup wizard for NetBox MCP server |
| **cmdb-assistant** | `/cmdb-search` | | X | Search NetBox for devices, IPs, sites | | **cmdb-assistant** | `/cmdb-search` | | X | Search NetBox for devices, IPs, sites |
| **cmdb-assistant** | `/cmdb-device` | | X | Manage network devices (create, view, update, delete) | | **cmdb-assistant** | `/cmdb-device` | | X | Manage network devices (create, view, update, delete) |
| **cmdb-assistant** | `/cmdb-ip` | | X | Manage IP addresses and prefixes | | **cmdb-assistant** | `/cmdb-ip` | | X | Manage IP addresses and prefixes |
@@ -69,27 +69,27 @@ Quick reference for all commands in the Leo Claude Marketplace.
| **cmdb-assistant** | `/change-audit` | | X | NetBox audit trail queries with filtering | | **cmdb-assistant** | `/change-audit` | | X | NetBox audit trail queries with filtering |
| **cmdb-assistant** | `/ip-conflicts` | | X | Detect IP conflicts and overlapping prefixes | | **cmdb-assistant** | `/ip-conflicts` | | X | Detect IP conflicts and overlapping prefixes |
| **project-hygiene** | *PostToolUse hook* | X | | Removes temp files, warns about unexpected root files | | **project-hygiene** | *PostToolUse hook* | X | | Removes temp files, warns about unexpected root files |
| **data-platform** | `/data-ingest` | | X | Load data from CSV, Parquet, JSON into DataFrame | | **data-platform** | `/ingest` | | X | Load data from CSV, Parquet, JSON into DataFrame |
| **data-platform** | `/data-profile` | | X | Generate data profiling report with statistics | | **data-platform** | `/profile` | | X | Generate data profiling report with statistics |
| **data-platform** | `/data-schema` | | X | Explore database schemas, tables, columns | | **data-platform** | `/schema` | | X | Explore database schemas, tables, columns |
| **data-platform** | `/data-explain` | | X | Explain query execution plan | | **data-platform** | `/explain` | | X | Explain query execution plan |
| **data-platform** | `/data-lineage` | | X | Show dbt model lineage and dependencies | | **data-platform** | `/lineage` | | X | Show dbt model lineage and dependencies |
| **data-platform** | `/data-run` | | X | Run dbt models with validation | | **data-platform** | `/run` | | X | Run dbt models with validation |
| **data-platform** | `/lineage-viz` | | X | dbt lineage visualization as Mermaid diagrams | | **data-platform** | `/lineage-viz` | | X | dbt lineage visualization as Mermaid diagrams |
| **data-platform** | `/dbt-test` | | X | Formatted dbt test runner with summary and failure details | | **data-platform** | `/dbt-test` | | X | Formatted dbt test runner with summary and failure details |
| **data-platform** | `/data-quality` | | X | DataFrame quality checks (nulls, duplicates, types, outliers) | | **data-platform** | `/data-quality` | | X | DataFrame quality checks (nulls, duplicates, types, outliers) |
| **data-platform** | `/data-setup` | | X | Setup wizard for data-platform MCP servers | | **data-platform** | `/initial-setup` | | X | Setup wizard for data-platform MCP servers |
| **data-platform** | *SessionStart hook* | X | | Checks PostgreSQL connection (non-blocking warning) | | **data-platform** | *SessionStart hook* | X | | Checks PostgreSQL connection (non-blocking warning) |
| **viz-platform** | `/viz-setup` | | X | Setup wizard for viz-platform MCP server | | **viz-platform** | `/initial-setup` | | X | Setup wizard for viz-platform MCP server |
| **viz-platform** | `/viz-chart` | | X | Create Plotly charts with theme integration | | **viz-platform** | `/chart` | | X | Create Plotly charts with theme integration |
| **viz-platform** | `/viz-dashboard` | | X | Create dashboard layouts with filters and grids | | **viz-platform** | `/dashboard` | | X | Create dashboard layouts with filters and grids |
| **viz-platform** | `/viz-theme` | | X | Apply existing theme to visualizations | | **viz-platform** | `/theme` | | X | Apply existing theme to visualizations |
| **viz-platform** | `/viz-theme-new` | | X | Create new custom theme with design tokens | | **viz-platform** | `/theme-new` | | X | Create new custom theme with design tokens |
| **viz-platform** | `/viz-theme-css` | | X | Export theme as CSS custom properties | | **viz-platform** | `/theme-css` | | X | Export theme as CSS custom properties |
| **viz-platform** | `/viz-component` | | X | Inspect DMC component props and validation | | **viz-platform** | `/component` | | X | Inspect DMC component props and validation |
| **viz-platform** | `/viz-chart-export` | | X | Export charts to PNG, SVG, PDF via kaleido | | **viz-platform** | `/chart-export` | | X | Export charts to PNG, SVG, PDF via kaleido |
| **viz-platform** | `/accessibility-check` | | X | Color blind validation (WCAG contrast ratios) | | **viz-platform** | `/accessibility-check` | | X | Color blind validation (WCAG contrast ratios) |
| **viz-platform** | `/viz-breakpoints` | | X | Configure responsive layout breakpoints | | **viz-platform** | `/breakpoints` | | X | Configure responsive layout breakpoints |
| **viz-platform** | `/design-review` | | X | Detailed design system audits | | **viz-platform** | `/design-review` | | X | Detailed design system audits |
| **viz-platform** | `/design-gate` | | X | Binary pass/fail design system validation gates | | **viz-platform** | `/design-gate` | | X | Binary pass/fail design system validation gates |
| **viz-platform** | *SessionStart hook* | X | | Checks DMC version (non-blocking warning) | | **viz-platform** | *SessionStart hook* | X | | Checks DMC version (non-blocking warning) |
@@ -99,7 +99,7 @@ Quick reference for all commands in the Leo Claude Marketplace.
| **contract-validator** | `/check-agent` | | X | Validate single agent definition | | **contract-validator** | `/check-agent` | | X | Validate single agent definition |
| **contract-validator** | `/list-interfaces` | | X | Show all plugin interfaces | | **contract-validator** | `/list-interfaces` | | X | Show all plugin interfaces |
| **contract-validator** | `/dependency-graph` | | X | Mermaid visualization of plugin dependencies | | **contract-validator** | `/dependency-graph` | | X | Mermaid visualization of plugin dependencies |
| **contract-validator** | `/cv-setup` | | X | Setup wizard for contract-validator MCP | | **contract-validator** | `/initial-setup` | | X | Setup wizard for contract-validator MCP |
--- ---
@@ -107,7 +107,7 @@ Quick reference for all commands in the Leo Claude Marketplace.
| Category | Plugins | Primary Use | | Category | Plugins | Primary Use |
|----------|---------|-------------| |----------|---------|-------------|
| **Setup** | projman, pr-review, cmdb-assistant, data-platform, viz-platform, contract-validator | `/pm-setup`, `/pr-setup`, `/cmdb-setup`, `/data-setup`, `/viz-setup`, `/cv-setup` | | **Setup** | projman, pr-review, cmdb-assistant, data-platform | `/setup`, `/initial-setup` |
| **Task Planning** | projman, clarity-assist | Sprint management, requirement clarification | | **Task Planning** | projman, clarity-assist | Sprint management, requirement clarification |
| **Code Quality** | code-sentinel, pr-review | Security scanning, PR reviews | | **Code Quality** | code-sentinel, pr-review | Security scanning, PR reviews |
| **Documentation** | doc-guardian, claude-config-maintainer | Doc sync, CLAUDE.md maintenance | | **Documentation** | doc-guardian, claude-config-maintainer | Doc sync, CLAUDE.md maintenance |
@@ -163,10 +163,10 @@ A typical workflow for planning and executing a feature sprint:
4. /sprint-start # Begin execution with dependency ordering 4. /sprint-start # Begin execution with dependency ordering
5. /branch-start feat/... # Create feature branch 5. /branch-start feat/... # Create feature branch
... implement features ... ... implement features ...
6. /git-commit # Commit with conventional message 6. /commit # Commit with conventional message
7. /sprint-status --diagram # Check progress with visualization 7. /sprint-status --diagram # Check progress with visualization
8. /pm-review # Pre-close quality review 8. /review # Pre-close quality review
9. /pm-test run # Verify test coverage 9. /test run # Verify test coverage
10. /sprint-close # Capture lessons learned 10. /sprint-close # Capture lessons learned
``` ```
@@ -178,8 +178,8 @@ Quick daily workflow with git-flow:
1. /git-status # Check current state 1. /git-status # Check current state
2. /branch-start fix/... # Start bugfix branch 2. /branch-start fix/... # Start bugfix branch
... make changes ... ... make changes ...
3. /git-commit # Auto-generate commit message 3. /commit # Auto-generate commit message
4. /git-commit-push # Push to remote 4. /commit-push # Push to remote
5. /branch-cleanup # Clean merged branches 5. /branch-cleanup # Clean merged branches
``` ```
@@ -213,8 +213,8 @@ Safe refactoring with preview:
1. /refactor-dry # Preview opportunities 1. /refactor-dry # Preview opportunities
2. /security-scan # Baseline security check 2. /security-scan # Baseline security check
3. /refactor # Apply improvements 3. /refactor # Apply improvements
4. /pm-test run # Verify nothing broke 4. /test run # Verify nothing broke
5. /git-commit # Commit with descriptive message 5. /commit # Commit with descriptive message
``` ```
### Example 6: Infrastructure Documentation ### Example 6: Infrastructure Documentation
@@ -233,12 +233,12 @@ Managing infrastructure with CMDB:
Working with data pipelines: Working with data pipelines:
``` ```
1. /data-ingest file.csv # Load data into DataFrame 1. /ingest file.csv # Load data into DataFrame
2. /data-profile # Generate data profiling report 2. /profile # Generate data profiling report
3. /data-schema # Explore database schemas 3. /schema # Explore database schemas
4. /data-lineage model_name # View dbt model dependencies 4. /lineage model_name # View dbt model dependencies
5. /data-run model_name # Execute dbt models 5. /run model_name # Execute dbt models
6. /data-explain "SELECT ..." # Analyze query execution plan 6. /explain "SELECT ..." # Analyze query execution plan
``` ```
### Example 7: First-Time Setup (New Machine) ### Example 7: First-Time Setup (New Machine)
@@ -246,7 +246,7 @@ Working with data pipelines:
Setting up the marketplace for the first time: Setting up the marketplace for the first time:
``` ```
1. /pm-setup --full # Full setup: MCP + system config + project 1. /setup --full # Full setup: MCP + system config + project
# → Follow prompts for Gitea URL, org # → Follow prompts for Gitea URL, org
# → Add token manually when prompted # → Add token manually when prompted
# → Confirm repository name # → Confirm repository name
@@ -260,7 +260,7 @@ Setting up the marketplace for the first time:
Adding a new project when system config exists: Adding a new project when system config exists:
``` ```
1. /pm-setup --quick # Quick project setup (auto-detected) 1. /setup --quick # Quick project setup (auto-detected)
# → Confirms detected repo name # → Confirms detected repo name
# → Creates .env # → Creates .env
2. /labels-sync # Sync Gitea labels 2. /labels-sync # Sync Gitea labels
@@ -272,8 +272,8 @@ Adding a new project when system config exists:
## Quick Tips ## Quick Tips
- **Hooks run automatically** - doc-guardian and code-sentinel protect you without manual invocation - **Hooks run automatically** - doc-guardian and code-sentinel protect you without manual invocation
- **Use `/git-commit` over `git commit`** - generates better commit messages following conventions - **Use `/commit` over `git commit`** - generates better commit messages following conventions
- **Run `/pm-review` before `/sprint-close`** - catches issues before closing the sprint - **Run `/review` before `/sprint-close`** - catches issues before closing the sprint
- **Use `/clarify` for vague requests** - especially helpful for complex requirements - **Use `/clarify` for vague requests** - especially helpful for complex requirements
- **`/refactor-dry` is safe** - always preview before applying refactoring changes - **`/refactor-dry` is safe** - always preview before applying refactoring changes

View File

@@ -9,7 +9,7 @@ Centralized configuration documentation for all plugins and MCP servers in the L
**After installing the marketplace and plugins via Claude Code:** **After installing the marketplace and plugins via Claude Code:**
``` ```
/pm-setup /setup
``` ```
The interactive wizard auto-detects what's needed and handles everything except manually adding your API tokens. The interactive wizard auto-detects what's needed and handles everything except manually adding your API tokens.
@@ -25,8 +25,8 @@ The interactive wizard auto-detects what's needed and handles everything except
└─────────────────────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────────┘
/pm-setup --full /setup --full
(or /pm-setup auto-detects) (or /setup auto-detects)
┌──────────────────────────────┼──────────────────────────────┐ ┌──────────────────────────────┼──────────────────────────────┐
▼ ▼ ▼ ▼ ▼ ▼
@@ -79,7 +79,7 @@ The interactive wizard auto-detects what's needed and handles everything except
┌───────────────┴───────────────┐ ┌───────────────┴───────────────┐
▼ ▼ ▼ ▼
/pm-setup --quick /pm-setup /setup --quick /setup
(explicit mode) (auto-detects mode) (explicit mode) (auto-detects mode)
│ │ │ │
│ ┌──────────┴──────────┐ │ ┌──────────┴──────────┐
@@ -109,7 +109,7 @@ The interactive wizard auto-detects what's needed and handles everything except
## What Runs Automatically vs User Interaction ## What Runs Automatically vs User Interaction
### `/pm-setup --full` - Full Setup ### `/setup --full` - Full Setup
| Phase | Type | What Happens | | Phase | Type | What Happens |
|-------|------|--------------| |-------|------|--------------|
@@ -121,7 +121,7 @@ The interactive wizard auto-detects what's needed and handles everything except
| **6. Project Config** | Automated | Creates `.env` file, checks `.gitignore` | | **6. Project Config** | Automated | Creates `.env` file, checks `.gitignore` |
| **7. Validation** | Automated | Tests API connectivity, shows summary | | **7. Validation** | Automated | Tests API connectivity, shows summary |
### `/pm-setup --quick` - Quick Project Setup ### `/setup --quick` - Quick Project Setup
| Phase | Type | What Happens | | Phase | Type | What Happens |
|-------|------|--------------| |-------|------|--------------|
@@ -136,10 +136,10 @@ The interactive wizard auto-detects what's needed and handles everything except
| Mode | When to Use | What It Does | | Mode | When to Use | What It Does |
|------|-------------|--------------| |------|-------------|--------------|
| `/pm-setup` | Any time | Auto-detects: runs full, quick, or sync as needed | | `/setup` | Any time | Auto-detects: runs full, quick, or sync as needed |
| `/pm-setup --full` | First time on a machine | Full setup: MCP server + system config + project config | | `/setup --full` | First time on a machine | Full setup: MCP server + system config + project config |
| `/pm-setup --quick` | Starting a new project | Quick setup: project config only (assumes system is ready) | | `/setup --quick` | Starting a new project | Quick setup: project config only (assumes system is ready) |
| `/pm-setup --sync` | After repo move/rename | Updates .env to match current git remote | | `/setup --sync` | After repo move/rename | Updates .env to match current git remote |
**Auto-detection logic:** **Auto-detection logic:**
1. No system config → **full** mode 1. No system config → **full** mode
@@ -148,9 +148,9 @@ The interactive wizard auto-detects what's needed and handles everything except
4. Both exist, match → already configured, offer to reconfigure 4. Both exist, match → already configured, offer to reconfigure
**Typical workflow:** **Typical workflow:**
1. Install plugin → run `/pm-setup` (auto-runs full mode) 1. Install plugin → run `/setup` (auto-runs full mode)
2. Start new project → run `/pm-setup` (auto-runs quick mode) 2. Start new project → run `/setup` (auto-runs quick mode)
3. Repository moved? → run `/pm-setup` (auto-runs sync mode) 3. Repository moved? → run `/setup` (auto-runs sync mode)
--- ---
@@ -182,7 +182,7 @@ This marketplace uses a **hybrid configuration** approach:
**Benefits:** **Benefits:**
- Single token per service (update once, use everywhere) - Single token per service (update once, use everywhere)
- Easy multi-project setup (just run `/pm-setup` in each project) - Easy multi-project setup (just run `/setup` in each project)
- Security (tokens never committed to git, never typed into AI chat) - Security (tokens never committed to git, never typed into AI chat)
- Project isolation (each project can override defaults) - Project isolation (each project can override defaults)
@@ -190,7 +190,7 @@ This marketplace uses a **hybrid configuration** approach:
## Prerequisites ## Prerequisites
Before running `/pm-setup`: Before running `/setup`:
1. **Python 3.10+** installed 1. **Python 3.10+** installed
```bash ```bash
@@ -213,7 +213,7 @@ Before running `/pm-setup`:
Run the setup wizard in Claude Code: Run the setup wizard in Claude Code:
``` ```
/pm-setup /setup
``` ```
The wizard will guide you through each step interactively and auto-detect the appropriate mode. The wizard will guide you through each step interactively and auto-detect the appropriate mode.
@@ -387,18 +387,18 @@ PR_REVIEW_AUTO_SUBMIT=false
| Plugin | System Config | Project Config | Setup Command | | Plugin | System Config | Project Config | Setup Command |
|--------|---------------|----------------|---------------| |--------|---------------|----------------|---------------|
| **projman** | gitea.env | .env (GITEA_REPO=owner/repo) | `/pm-setup` | | **projman** | gitea.env | .env (GITEA_REPO=owner/repo) | `/setup` |
| **pr-review** | gitea.env | .env (GITEA_REPO=owner/repo) | `/pr-setup` | | **pr-review** | gitea.env | .env (GITEA_REPO=owner/repo) | `/initial-setup` |
| **git-flow** | git-flow.env (optional) | .env (optional) | None needed | | **git-flow** | git-flow.env (optional) | .env (optional) | None needed |
| **clarity-assist** | None | None | None needed | | **clarity-assist** | None | None | None needed |
| **cmdb-assistant** | netbox.env | None | `/cmdb-setup` | | **cmdb-assistant** | netbox.env | None | `/initial-setup` |
| **data-platform** | postgres.env | .env (optional) | `/data-setup` | | **data-platform** | postgres.env | .env (optional) | `/initial-setup` |
| **viz-platform** | None | .env (optional DMC_VERSION) | `/viz-setup` | | **viz-platform** | None | .env (optional DMC_VERSION) | `/initial-setup` |
| **doc-guardian** | None | None | None needed | | **doc-guardian** | None | None | None needed |
| **code-sentinel** | None | None | None needed | | **code-sentinel** | None | None | None needed |
| **project-hygiene** | None | None | None needed | | **project-hygiene** | None | None | None needed |
| **claude-config-maintainer** | None | None | None needed | | **claude-config-maintainer** | None | None | None needed |
| **contract-validator** | None | None | `/cv-setup` | | **contract-validator** | None | None | `/initial-setup` |
--- ---
@@ -408,7 +408,7 @@ Once system-level config is set up, adding new projects is simple:
``` ```
cd ~/projects/new-project cd ~/projects/new-project
/pm-setup /setup
``` ```
The command auto-detects that system config exists and runs quick project setup. The command auto-detects that system config exists and runs quick project setup.
@@ -516,8 +516,8 @@ Agents specify their configuration in frontmatter using Claude Code's supported
| Plugin | Agent | `model` | `permissionMode` | `disallowedTools` | `skills` | | Plugin | Agent | `model` | `permissionMode` | `disallowedTools` | `skills` |
|--------|-------|---------|-------------------|--------------------|----------| |--------|-------|---------|-------------------|--------------------|----------|
| projman | planner | opus | default | — | frontmatter (2) + body text (12) | | projman | planner | opus | default | — | body text (14) |
| projman | orchestrator | sonnet | acceptEdits | — | frontmatter (2) + body text (10) | | projman | orchestrator | sonnet | acceptEdits | — | body text (12) |
| projman | executor | sonnet | bypassPermissions | — | frontmatter (7) | | projman | executor | sonnet | bypassPermissions | — | frontmatter (7) |
| projman | code-reviewer | opus | default | Write, Edit, MultiEdit | frontmatter (4) | | projman | code-reviewer | opus | default | Write, Edit, MultiEdit | frontmatter (4) |
| pr-review | coordinator | sonnet | plan | Write, Edit, MultiEdit | — | | pr-review | coordinator | sonnet | plan | Write, Edit, MultiEdit | — |
@@ -591,47 +591,13 @@ The `skills` field auto-injects skill file contents into the agent's context win
Skill names in frontmatter are resolved relative to the plugin's `skills/` directory. Use the filename without the `.md` extension. Skill names in frontmatter are resolved relative to the plugin's `skills/` directory. Use the filename without the `.md` extension.
### Phase-Based Skill Loading (Body Text)
For agents with 8+ skills, use **phase-based loading** in the agent body text. This structures skill reads into logical phases, with explicit instructions to read each skill exactly once.
**Pattern:**
```markdown
## Skill Loading Protocol
**Frontmatter skills (auto-injected, always available — DO NOT re-read these):**
- `skill-a` — description
- `skill-b` — description
**Phase 1 skills — read ONCE at session start:**
- skills/validation-skill.md
- skills/safety-skill.md
**Phase 2 skills — read ONCE when entering main work:**
- skills/workflow-skill.md
- skills/domain-skill.md
**CRITICAL: Read each skill file exactly ONCE. Do NOT re-read skill files between MCP API calls.**
```
**Benefits:**
- Frontmatter skills (always needed) are auto-injected — zero file read cost
- Phase skills are read once at the appropriate time — not re-read per API call
- `batch-execution` skill provides protocol for API-heavy phases
- ~76-83% reduction in skill-related token consumption for typical sprints
**Currently applied to:**
- Planner agent: 2 frontmatter + 12 body text (3 phases)
- Orchestrator agent: 2 frontmatter + 10 body text (2 phases)
--- ---
## Automatic Validation Features ## Automatic Validation Features
### API Validation ### API Validation
When running `/pm-setup`, the command: When running `/setup`, the command:
1. **Detects** organization and repository from git remote URL 1. **Detects** organization and repository from git remote URL
2. **Validates** via Gitea API: `GET /api/v1/repos/{org}/{repo}` 2. **Validates** via Gitea API: `GET /api/v1/repos/{org}/{repo}`
@@ -646,7 +612,7 @@ When you start a Claude Code session, a hook automatically:
1. Reads `GITEA_REPO` (in `owner/repo` format) from `.env` 1. Reads `GITEA_REPO` (in `owner/repo` format) from `.env`
2. Compares with current `git remote get-url origin` 2. Compares with current `git remote get-url origin`
3. **Warns** if mismatch detected: "Repository location mismatch. Run `/pm-setup --sync` to update." 3. **Warns** if mismatch detected: "Repository location mismatch. Run `/setup --sync` to update."
This helps when you: This helps when you:
- Move a repository to a different organization - Move a repository to a different organization
@@ -741,7 +707,7 @@ cat .env
3. **Never type tokens into AI chat** 3. **Never type tokens into AI chat**
- Always edit config files directly in your editor - Always edit config files directly in your editor
- The `/pm-setup` wizard respects this - The `/setup` wizard respects this
4. **Rotate tokens periodically** 4. **Rotate tokens periodically**
- Every 6-12 months - Every 6-12 months

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:
- `/pm-debug report` - Run full diagnostics, create issue if problems found - `/debug report` - Run full diagnostics, create issue if problems found
- `/pm-debug review` - Investigate existing diagnostic issues and propose fixes - `/debug review` - Investigate existing diagnostic issues and propose fixes
--- ---

View File

@@ -46,9 +46,9 @@ cd ~/.claude/plugins/marketplaces/leo-claude-mktplace && ./scripts/setup.sh
## After Updating: Re-run Setup if Needed ## After Updating: Re-run Setup if Needed
### When to Re-run Setup ### When to Re-run `/initial-setup`
You typically **don't need** to re-run setup after updates. However, re-run your plugin's setup command (e.g., `/pm-setup`, `/pr-setup`, `/cmdb-setup`) if: You typically **don't need** to re-run setup after updates. However, re-run if:
- Changelog mentions **new required environment variables** - Changelog mentions **new required environment variables**
- Changelog mentions **breaking changes** to configuration - Changelog mentions **breaking changes** to configuration
@@ -97,7 +97,7 @@ When updating, review if changes affect the setup workflow:
1. **Check for setup command changes:** 1. **Check for setup command changes:**
```bash ```bash
git diff HEAD~1 plugins/*/commands/*-setup.md git diff HEAD~1 plugins/*/commands/initial-setup.md
git diff HEAD~1 plugins/*/commands/project-init.md git diff HEAD~1 plugins/*/commands/project-init.md
git diff HEAD~1 plugins/*/commands/project-sync.md git diff HEAD~1 plugins/*/commands/project-sync.md
``` ```
@@ -114,7 +114,7 @@ When updating, review if changes affect the setup workflow:
**If setup commands changed:** **If setup commands changed:**
- Review what's new (new validation steps, new prompts, etc.) - Review what's new (new validation steps, new prompts, etc.)
- Consider re-running your plugin's setup command or `/project-init` to benefit from improvements - Consider re-running `/initial-setup` or `/project-init` to benefit from improvements
- Existing configurations remain valid unless changelog notes breaking changes - Existing configurations remain valid unless changelog notes breaking changes
**If hooks changed:** **If hooks changed:**
@@ -142,7 +142,7 @@ deactivate
### Configuration no longer works ### Configuration no longer works
1. Check CHANGELOG.md for breaking changes 1. Check CHANGELOG.md for breaking changes
2. Run your plugin's setup command (e.g., `/pm-setup`) to re-validate and fix configuration 2. Run `/initial-setup` to re-validate and fix configuration
3. Compare your config files with documentation in `docs/CONFIGURATION.md` 3. Compare your config files with documentation in `docs/CONFIGURATION.md`
### MCP server won't start after update ### MCP server won't start after update

View File

@@ -1,6 +0,0 @@
2026-02-03T14:09:25 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/gitea/tests/test_config.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md
2026-02-03T14:09:33 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/gitea/tests/test_gitea_client.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md
2026-02-03T14:10:22 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/gitea/tests/test_issues.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md
2026-02-03T14:17:12 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/gitea/README.md | docs/COMMANDS-CHEATSHEET.md CLAUDE.md
2026-02-03T14:18:27 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/gitea/CHANGELOG.md | docs/COMMANDS-CHEATSHEET.md CLAUDE.md
2026-02-03T14:18:41 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/gitea/TESTING.md | docs/COMMANDS-CHEATSHEET.md CLAUDE.md

View File

@@ -1,92 +0,0 @@
# Changelog
All notable changes to the Gitea MCP Server will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.3.0] - 2026-02-03
### Added
- Pull request tools (7 tools):
- `list_pull_requests` - List PRs from repository
- `get_pull_request` - Get specific PR details
- `get_pr_diff` - Get PR diff content
- `get_pr_comments` - Get comments on a PR
- `create_pr_review` - Create PR review (approve/request changes/comment)
- `add_pr_comment` - Add comment to PR
- `create_pull_request` - Create new pull request
- Label creation tools (3 tools):
- `create_label` - Create repo-level label
- `create_org_label` - Create organization-level label
- `create_label_smart` - Auto-detect org vs repo for label creation
- Validation tools (2 tools):
- `validate_repo_org` - Check if repo belongs to organization
- `get_branch_protection` - Get branch protection rules
### Changed
- Total tools increased from 20 to 36
- Updated test suite to 64 tests (was 42)
### Fixed
- Test fixtures updated to use `owner/repo` format
- Fixed aggregate_issues tests to pass required `org` argument
## [1.2.0] - 2026-01-28
### Added
- Milestone management tools (5 tools):
- `list_milestones` - List all milestones
- `get_milestone` - Get specific milestone
- `create_milestone` - Create new milestone
- `update_milestone` - Update existing milestone
- `delete_milestone` - Delete a milestone
- Issue dependency tools (4 tools):
- `list_issue_dependencies` - List blocking issues
- `create_issue_dependency` - Create dependency between issues
- `remove_issue_dependency` - Remove dependency
- `get_execution_order` - Calculate parallelizable execution order
## [1.1.0] - 2026-01-21
### Added
- Wiki and lessons learned tools (7 tools):
- `list_wiki_pages` - List all wiki pages
- `get_wiki_page` - Get specific wiki page content
- `create_wiki_page` - Create new wiki page
- `update_wiki_page` - Update existing wiki page
- `create_lesson` - Create lessons learned entry
- `search_lessons` - Search lessons by query/tags
- `allocate_rfc_number` - Get next available RFC number
- Automatic git remote URL detection for repository configuration
- Support for SSH, HTTPS, and HTTP git URL formats
### Changed
- Configuration now uses `owner/repo` format exclusively
- Removed separate `GITEA_OWNER` configuration (now derived from repo path)
## [1.0.0] - 2025-01-06
### Added
- Initial release with 8 core tools:
- `list_issues` - List issues from repository
- `get_issue` - Get specific issue details
- `create_issue` - Create new issue with labels
- `update_issue` - Update existing issue
- `add_comment` - Add comment to issue
- `get_labels` - Get all labels (org + repo)
- `suggest_labels` - Intelligent label suggestion
- `aggregate_issues` - Cross-repository issue aggregation (PMO mode)
- Hybrid configuration system (system + project level)
- Branch-aware security model
- Mode detection (project vs company/PMO)
- 42 unit tests with mocks
- Comprehensive documentation
[Unreleased]: https://github.com/owner/repo/compare/v1.3.0...HEAD
[1.3.0]: https://github.com/owner/repo/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/owner/repo/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/owner/repo/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/owner/repo/releases/tag/v1.0.0

View File

@@ -19,9 +19,8 @@ The Gitea MCP Server provides Claude Code with direct access to Gitea for issue
- **Hybrid Configuration**: System-level credentials + project-level paths - **Hybrid Configuration**: System-level credentials + project-level paths
- **PMO Support**: Multi-repository aggregation for organization-wide views - **PMO Support**: Multi-repository aggregation for organization-wide views
### Tools Provided (36 total) ### Tools Provided
#### Issue Management (6 tools)
| Tool | Description | Mode | | Tool | Description | Mode |
|------|-------------|------| |------|-------------|------|
| `list_issues` | List issues from repository | Both | | `list_issues` | List issues from repository | Both |
@@ -29,61 +28,9 @@ The Gitea MCP Server provides Claude Code with direct access to Gitea for issue
| `create_issue` | Create new issue with labels | Both | | `create_issue` | Create new issue with labels | Both |
| `update_issue` | Update existing issue | Both | | `update_issue` | Update existing issue | Both |
| `add_comment` | Add comment to issue | Both | | `add_comment` | Add comment to issue | Both |
| `aggregate_issues` | Cross-repository issue aggregation | PMO Only |
#### Label Management (5 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `get_labels` | Get all labels (org + repo) | Both | | `get_labels` | Get all labels (org + repo) | Both |
| `suggest_labels` | Intelligent label suggestion | Both | | `suggest_labels` | Intelligent label suggestion | Both |
| `create_label` | Create repo-level label | Both | | `aggregate_issues` | Cross-repository issue aggregation | PMO Only |
| `create_org_label` | Create organization-level label | Both |
| `create_label_smart` | Auto-detect org vs repo for label creation | Both |
#### Wiki & Lessons Learned (7 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `list_wiki_pages` | List all wiki pages | Both |
| `get_wiki_page` | Get specific wiki page content | Both |
| `create_wiki_page` | Create new wiki page | Both |
| `update_wiki_page` | Update existing wiki page | Both |
| `create_lesson` | Create lessons learned entry | Both |
| `search_lessons` | Search lessons by query/tags | Both |
| `allocate_rfc_number` | Get next available RFC number | Both |
#### Milestone Management (5 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `list_milestones` | List all milestones | Both |
| `get_milestone` | Get specific milestone | Both |
| `create_milestone` | Create new milestone | Both |
| `update_milestone` | Update existing milestone | Both |
| `delete_milestone` | Delete a milestone | Both |
#### Issue Dependencies (4 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `list_issue_dependencies` | List blocking issues | Both |
| `create_issue_dependency` | Create dependency between issues | Both |
| `remove_issue_dependency` | Remove dependency | Both |
| `get_execution_order` | Calculate parallelizable execution order | Both |
#### Pull Request Tools (7 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `list_pull_requests` | List PRs from repository | Both |
| `get_pull_request` | Get specific PR details | Both |
| `get_pr_diff` | Get PR diff content | Both |
| `get_pr_comments` | Get comments on a PR | Both |
| `create_pr_review` | Create PR review (approve/request changes) | Both |
| `add_pr_comment` | Add comment to PR | Both |
| `create_pull_request` | Create new pull request | Both |
#### Validation Tools (2 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `validate_repo_org` | Check if repo belongs to organization | Both |
| `get_branch_protection` | Get branch protection rules | Both |
## Architecture ## Architecture
@@ -93,20 +40,15 @@ The Gitea MCP Server provides Claude Code with direct access to Gitea for issue
mcp-servers/gitea/ mcp-servers/gitea/
├── .venv/ # Python virtual environment ├── .venv/ # Python virtual environment
├── requirements.txt # Python dependencies ├── requirements.txt # Python dependencies
├── run.sh # Entry point script
├── mcp_server/ ├── mcp_server/
│ ├── __init__.py │ ├── __init__.py
│ ├── server.py # MCP server entry point (36 tools) │ ├── server.py # MCP server entry point
│ ├── config.py # Configuration loader with auto-detection │ ├── config.py # Configuration loader
│ ├── gitea_client.py # Gitea API client │ ├── gitea_client.py # Gitea API client
│ └── tools/ │ └── tools/
│ ├── __init__.py │ ├── __init__.py
│ ├── issues.py # Issue management tools │ ├── issues.py # Issue tools
── labels.py # Label management tools ── labels.py # Label tools
│ ├── wiki.py # Wiki & lessons learned tools
│ ├── milestones.py # Milestone management tools
│ ├── dependencies.py # Issue dependency tools
│ └── pull_requests.py # Pull request tools
├── tests/ ├── tests/
│ ├── __init__.py │ ├── __init__.py
│ ├── test_config.py │ ├── test_config.py
@@ -114,8 +56,7 @@ mcp-servers/gitea/
│ ├── test_issues.py │ ├── test_issues.py
│ └── test_labels.py │ └── test_labels.py
├── README.md # This file ├── README.md # This file
── TESTING.md # Testing instructions ── TESTING.md # Testing instructions
└── CHANGELOG.md # Version history
``` ```
### Mode Detection ### Mode Detection
@@ -170,6 +111,7 @@ mkdir -p ~/.config/claude
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.example.com/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token_here GITEA_API_TOKEN=your_gitea_token_here
GITEA_OWNER=bandit
EOF EOF
chmod 600 ~/.config/claude/gitea.env chmod 600 ~/.config/claude/gitea.env
@@ -195,34 +137,14 @@ For company/PMO mode, omit the `.env` file or don't set `GITEA_REPO`.
**Required Variables**: **Required Variables**:
- `GITEA_API_URL` - Gitea API endpoint (e.g., `https://gitea.example.com/api/v1`) - `GITEA_API_URL` - Gitea API endpoint (e.g., `https://gitea.example.com/api/v1`)
- `GITEA_API_TOKEN` - Personal access token with repo permissions - `GITEA_API_TOKEN` - Personal access token with repo permissions
- `GITEA_OWNER` - Organization or user name (e.g., `bandit`)
### Project-Level Configuration ### Project-Level Configuration
**File**: `<project-root>/.env` **File**: `<project-root>/.env`
**Optional Variables**: **Optional Variables**:
- `GITEA_REPO` - Repository in `owner/repo` format (enables project mode) - `GITEA_REPO` - Repository name (enables project mode)
### Automatic Repository Detection
If `GITEA_REPO` is not set, the server auto-detects the repository from your git remote:
**Supported URL Formats**:
- SSH: `ssh://git@gitea.example.com:22/owner/repo.git`
- SSH short: `git@gitea.example.com:owner/repo.git`
- HTTPS: `https://gitea.example.com/owner/repo.git`
- HTTP: `http://gitea.example.com/owner/repo.git`
The repository is extracted as `owner/repo` format automatically.
### Project Directory Detection
The server finds your project directory using these strategies (in order):
1. `CLAUDE_PROJECT_DIR` environment variable (highest priority)
2. `PWD` environment variable (if `.git` or `.env` present)
3. Current working directory (if `.git` or `.env` present)
4. Falls back to company/PMO mode if no project found
### Generating Gitea API Token ### Generating Gitea API Token
@@ -298,13 +220,13 @@ suggestions = await label_tools.suggest_labels(context)
### Unit Tests ### Unit Tests
Run all 64 unit tests with mocks: Run all 42 unit tests with mocks:
```bash ```bash
pytest tests/ -v pytest tests/ -v
``` ```
Expected: `64 passed` Expected: `42 passed in 0.57s`
### Integration Tests ### Integration Tests
@@ -405,15 +327,11 @@ See [TESTING.md](./TESTING.md#troubleshooting) for more details.
### Project Structure ### Project Structure
- `config.py` - Hybrid configuration loader with auto-detection - `config.py` - Hybrid configuration loader with mode detection
- `gitea_client.py` - Synchronous Gitea API client using requests - `gitea_client.py` - Synchronous Gitea API client using requests
- `tools/issues.py` - Issue management with branch detection - `tools/issues.py` - Async wrappers with branch detection
- `tools/labels.py` - Label management and intelligent suggestions - `tools/labels.py` - Label management and suggestion
- `tools/wiki.py` - Wiki pages and lessons learned - `server.py` - MCP server with JSON-RPC 2.0 over stdio
- `tools/milestones.py` - Milestone CRUD operations
- `tools/dependencies.py` - Issue dependency tracking
- `tools/pull_requests.py` - PR review and management
- `server.py` - MCP server with 36 tools over JSON-RPC 2.0 stdio
### Adding New Tools ### Adding New Tools
@@ -456,14 +374,18 @@ def list_issues(self, state='open', labels=None, repo=None):
## Changelog ## Changelog
See [CHANGELOG.md](./CHANGELOG.md) for full version history. ### v1.0.0 (2025-01-06) - Phase 1 Complete
### Recent Updates ✅ Initial implementation:
- Configuration management (hybrid system + project)
- **v1.3.0** - Pull request tools (7 tools), label creation tools (3) - Gitea API client with all CRUD operations
- **v1.2.0** - Milestone management (5 tools), issue dependencies (4 tools) - MCP server with 8 tools
- **v1.1.0** - Wiki & lessons learned system (7 tools) - Issue tools with branch detection
- **v1.0.0** - Initial release with core issue/label tools (8 tools) - Label tools with intelligent suggestions
- Mode detection (project vs company)
- Branch-aware security model
- 42 unit tests (100% passing)
- Comprehensive documentation
## License ## License
@@ -485,6 +407,6 @@ For issues or questions:
--- ---
**Built for**: Leo Claude Marketplace - Project Management Plugins **Built for**: Leo Claude Marketplace - Project Management Plugins
**Tools**: 36 **Phase**: 1 (Complete)
**Status**: ✅ Production Ready **Status**: ✅ Production Ready
**Last Updated**: 2026-02-03 **Last Updated**: 2025-01-06

View File

@@ -28,7 +28,7 @@ source .venv/bin/activate # Linux/Mac
### Running All Tests ### Running All Tests
Run all 64 unit tests: Run all 42 unit tests:
```bash ```bash
pytest tests/ -v pytest tests/ -v
@@ -36,7 +36,7 @@ pytest tests/ -v
Expected output: Expected output:
``` ```
============================== 64 passed ============================== ============================== 42 passed in 0.57s ==============================
``` ```
### Running Specific Test Files ### Running Specific Test Files
@@ -532,7 +532,7 @@ python -m mcp_server.server
After completing all tests, verify: After completing all tests, verify:
- ✅ All 64 unit tests pass - ✅ All 42 unit tests pass
- ✅ MCP server starts without errors - ✅ MCP server starts without errors
- ✅ Configuration loads correctly - ✅ Configuration loads correctly
- ✅ Gitea API client connects successfully - ✅ Gitea API client connects successfully
@@ -548,7 +548,7 @@ After completing all tests, verify:
Phase 1 is complete when: Phase 1 is complete when:
1. **All unit tests pass** (64/64) 1. **All unit tests pass** (42/42)
2. **MCP server starts without errors** 2. **MCP server starts without errors**
3. **Can list issues from Gitea** 3. **Can list issues from Gitea**
4. **Can create issues with labels** (in development mode) 4. **Can create issues with labels** (in development mode)

View File

@@ -1,30 +0,0 @@
"""
Gitea MCP Server package.
Provides MCP tools for Gitea integration via JSON-RPC 2.0.
For external consumers (e.g., HTTP transport), use:
from mcp_server import get_tool_definitions, create_tool_dispatcher, GiteaClient
# Get tool schemas
tools = get_tool_definitions()
# Create dispatcher bound to a client
client = GiteaClient()
dispatch = create_tool_dispatcher(client)
result = await dispatch("list_issues", {"state": "open"})
"""
__version__ = "1.0.0"
from .tool_registry import get_tool_definitions, create_tool_dispatcher
from .gitea_client import GiteaClient
from .config import GiteaConfig
__all__ = [
"__version__",
"get_tool_definitions",
"create_tool_dispatcher",
"GiteaClient",
"GiteaConfig",
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +0,0 @@
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "gitea-mcp-server"
version = "1.0.0"
description = "MCP Server for Gitea integration - provides issue, label, wiki, milestone, dependency, and PR tools"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}
authors = [
{ name = "Leo Miranda" }
]
keywords = ["mcp", "gitea", "claude", "tools"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
dependencies = [
"mcp>=0.9.0",
"python-dotenv>=1.0.0",
"requests>=2.31.0",
"pydantic>=2.5.0",
]
[project.optional-dependencies]
test = [
"pytest>=7.4.3",
"pytest-asyncio>=0.23.0",
]
[tool.setuptools.packages.find]
where = ["."]
include = ["mcp_server*"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]

View File

@@ -28,6 +28,7 @@ def test_load_system_config(tmp_path, monkeypatch):
assert result['api_url'] == 'https://test.com/api/v1' assert result['api_url'] == 'https://test.com/api/v1'
assert result['api_token'] == 'test_token' assert result['api_token'] == 'test_token'
assert result['owner'] == 'test_owner'
assert result['mode'] == 'company' # No repo specified assert result['mode'] == 'company' # No repo specified
assert result['repo'] is None assert result['repo'] is None

View File

@@ -14,7 +14,8 @@ def mock_config():
mock_instance.load.return_value = { mock_instance.load.return_value = {
'api_url': 'https://test.com/api/v1', 'api_url': 'https://test.com/api/v1',
'api_token': 'test_token', 'api_token': 'test_token',
'repo': 'test_owner/test_repo', # Combined owner/repo format 'owner': 'test_owner',
'repo': 'test_repo',
'mode': 'project' 'mode': 'project'
} }
yield mock_cfg yield mock_cfg
@@ -30,7 +31,8 @@ def test_client_initialization(gitea_client):
"""Test client initializes with correct configuration""" """Test client initializes with correct configuration"""
assert gitea_client.base_url == 'https://test.com/api/v1' assert gitea_client.base_url == 'https://test.com/api/v1'
assert gitea_client.token == 'test_token' assert gitea_client.token == 'test_token'
assert gitea_client.repo == 'test_owner/test_repo' # Combined format assert gitea_client.owner == 'test_owner'
assert gitea_client.repo == 'test_repo'
assert gitea_client.mode == 'project' assert gitea_client.mode == 'project'
assert 'Authorization' in gitea_client.session.headers assert 'Authorization' in gitea_client.session.headers
assert gitea_client.session.headers['Authorization'] == 'token test_token' assert gitea_client.session.headers['Authorization'] == 'token test_token'
@@ -90,20 +92,15 @@ def test_create_issue(gitea_client):
} }
mock_response.raise_for_status = Mock() mock_response.raise_for_status = Mock()
# Mock is_org_repo to avoid network call during label resolution with patch.object(gitea_client.session, 'post', return_value=mock_response):
with patch.object(gitea_client, 'is_org_repo', return_value=True): issue = gitea_client.create_issue(
# Mock get_org_labels and get_labels for label resolution title='New Issue',
with patch.object(gitea_client, 'get_org_labels', return_value=[{'name': 'Type/Bug', 'id': 1}]): body='Issue body',
with patch.object(gitea_client, 'get_labels', return_value=[]): labels=['Type/Bug']
with patch.object(gitea_client.session, 'post', return_value=mock_response): )
issue = gitea_client.create_issue(
title='New Issue',
body='Issue body',
labels=['Type/Bug']
)
assert issue['title'] == 'New Issue' assert issue['title'] == 'New Issue'
gitea_client.session.post.assert_called_once() gitea_client.session.post.assert_called_once()
def test_update_issue(gitea_client): def test_update_issue(gitea_client):
@@ -164,7 +161,7 @@ def test_get_org_labels(gitea_client):
mock_response.raise_for_status = Mock() mock_response.raise_for_status = Mock()
with patch.object(gitea_client.session, 'get', return_value=mock_response): with patch.object(gitea_client.session, 'get', return_value=mock_response):
labels = gitea_client.get_org_labels(org='test_owner') labels = gitea_client.get_org_labels()
assert len(labels) == 2 assert len(labels) == 2
@@ -179,7 +176,7 @@ def test_list_repos(gitea_client):
mock_response.raise_for_status = Mock() mock_response.raise_for_status = Mock()
with patch.object(gitea_client.session, 'get', return_value=mock_response): with patch.object(gitea_client.session, 'get', return_value=mock_response):
repos = gitea_client.list_repos(org='test_owner') repos = gitea_client.list_repos()
assert len(repos) == 2 assert len(repos) == 2
assert repos[0]['name'] == 'repo1' assert repos[0]['name'] == 'repo1'
@@ -199,7 +196,7 @@ def test_aggregate_issues(gitea_client):
[{'number': 2, 'title': 'Issue 2'}] # repo2 [{'number': 2, 'title': 'Issue 2'}] # repo2
]) ])
aggregated = gitea_client.aggregate_issues(org='test_owner', state='open') aggregated = gitea_client.aggregate_issues(state='open')
assert 'repo1' in aggregated assert 'repo1' in aggregated
assert 'repo2' in aggregated assert 'repo2' in aggregated
@@ -208,13 +205,14 @@ def test_aggregate_issues(gitea_client):
def test_no_repo_specified_error(gitea_client): def test_no_repo_specified_error(gitea_client):
"""Test error when repository not specified or invalid format""" """Test error when repository not specified"""
# Create client without repo # Create client without repo
with patch('mcp_server.gitea_client.GiteaConfig') as mock_cfg: with patch('mcp_server.gitea_client.GiteaConfig') as mock_cfg:
mock_instance = mock_cfg.return_value mock_instance = mock_cfg.return_value
mock_instance.load.return_value = { mock_instance.load.return_value = {
'api_url': 'https://test.com/api/v1', 'api_url': 'https://test.com/api/v1',
'api_token': 'test_token', 'api_token': 'test_token',
'owner': 'test_owner',
'repo': None, # No repo 'repo': None, # No repo
'mode': 'company' 'mode': 'company'
} }
@@ -223,7 +221,7 @@ def test_no_repo_specified_error(gitea_client):
with pytest.raises(ValueError) as exc_info: with pytest.raises(ValueError) as exc_info:
client.list_issues() client.list_issues()
assert "Use 'owner/repo' format" in str(exc_info.value) assert "Repository not specified" in str(exc_info.value)
# ======================================== # ========================================

View File

@@ -119,26 +119,22 @@ async def test_aggregate_issues_company_mode(issue_tools):
'repo2': [{'number': 2}] 'repo2': [{'number': 2}]
}) })
aggregated = await issue_tools.aggregate_issues(org='test_owner') aggregated = await issue_tools.aggregate_issues()
assert 'repo1' in aggregated assert 'repo1' in aggregated
assert 'repo2' in aggregated assert 'repo2' in aggregated
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_aggregate_issues_project_mode(issue_tools): async def test_aggregate_issues_project_mode_error(issue_tools):
"""Test that aggregate_issues works in project mode with org argument""" """Test that aggregate_issues fails in project mode"""
issue_tools.gitea.mode = 'project' issue_tools.gitea.mode = 'project'
with patch.object(issue_tools, '_get_current_branch', return_value='development'): with patch.object(issue_tools, '_get_current_branch', return_value='development'):
issue_tools.gitea.aggregate_issues = Mock(return_value={ with pytest.raises(ValueError) as exc_info:
'repo1': [{'number': 1}] await issue_tools.aggregate_issues()
})
# aggregate_issues now works in any mode when org is provided assert "only available in company mode" in str(exc_info.value)
aggregated = await issue_tools.aggregate_issues(org='test_owner')
assert 'repo1' in aggregated
def test_branch_detection(): def test_branch_detection():

View File

@@ -79,69 +79,6 @@ Add to your Claude Code MCP configuration (`~/.config/claude/mcp.json` or projec
1. **System-level** (`~/.config/claude/netbox.env`): Credentials and defaults 1. **System-level** (`~/.config/claude/netbox.env`): Credentials and defaults
2. **Project-level** (`.env` in current directory): Optional overrides 2. **Project-level** (`.env` in current directory): Optional overrides
## Module Filtering (Token Optimization)
By default, the NetBox MCP server registers all 182 tools across 8 modules, consuming ~19,810 tokens of context. For most workflows, you only need a subset of modules.
### Configuration
Add `NETBOX_ENABLED_MODULES` to your `~/.config/claude/netbox.env`:
```bash
# Enable only specific modules (comma-separated)
NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras
```
If unset, all modules are enabled (backward compatible).
### Available Modules
| Module | Tool Count | Description | cmdb-assistant Commands |
|--------|------------|-------------|------------------------|
| `dcim` | ~60 | Sites, devices, racks, interfaces, cables | `/cmdb-device`, `/cmdb-site`, `/cmdb-search`, `/cmdb-topology` |
| `ipam` | ~40 | IP addresses, prefixes, VLANs, VRFs | `/cmdb-ip`, `/ip-conflicts`, `/cmdb-search` |
| `virtualization` | ~20 | Clusters, VMs, VM interfaces | `/cmdb-search`, `/cmdb-audit`, `/cmdb-register` |
| `extras` | ~12 | Tags, journal entries, audit log | `/change-audit`, `/cmdb-register` |
| `circuits` | ~15 | Providers, circuits, terminations | — |
| `tenancy` | ~12 | Tenants, contacts | — |
| `vpn` | ~15 | Tunnels, IKE/IPSec policies, L2VPN | — |
| `wireless` | ~8 | Wireless LANs, links, groups | — |
### Recommended Configurations
**For cmdb-assistant users** (~43 tools, ~4,500 tokens):
```bash
NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras
```
**Basic infrastructure** (~100 tools):
```bash
NETBOX_ENABLED_MODULES=dcim,ipam
```
**Full CMDB** (all modules, ~182 tools):
```bash
# Omit NETBOX_ENABLED_MODULES or set to all modules
NETBOX_ENABLED_MODULES=dcim,ipam,circuits,virtualization,tenancy,vpn,wireless,extras
```
### Startup Logging
On startup, the server logs enabled modules and tool count:
```
NetBox MCP Server initialized: 43 tools registered (modules: dcim, extras, ipam, virtualization)
```
### Disabled Tool Behavior
Calling a tool from a disabled module returns a clear error:
```
Tool 'circuits_list_circuits' is not available (module 'circuits' not enabled).
Enabled modules: dcim, extras, ipam, virtualization
```
## Available Tools ## Available Tools
### DCIM (Data Center Infrastructure Management) ### DCIM (Data Center Infrastructure Management)
@@ -191,18 +128,18 @@ Enabled modules: dcim, extras, ipam, virtualization
| `circuits_create_provider` | Create a provider | | `circuits_create_provider` | Create a provider |
| `circuits_list_circuits` | List circuits | | `circuits_list_circuits` | List circuits |
| `circuits_create_circuit` | Create a circuit | | `circuits_create_circuit` | Create a circuit |
| `circ_list_terminations` | List terminations | | `circuits_list_circuit_terminations` | List terminations |
| ... and more | | ... and more |
### Virtualization ### Virtualization
| Tool | Description | | Tool | Description |
|------|-------------| |------|-------------|
| `virt_list_clusters` | List clusters | | `virtualization_list_clusters` | List clusters |
| `virt_create_cluster` | Create a cluster | | `virtualization_create_cluster` | Create a cluster |
| `virt_list_vms` | List VMs | | `virtualization_list_virtual_machines` | List VMs |
| `virt_create_vm` | Create a VM | | `virtualization_create_virtual_machine` | Create a VM |
| `virt_list_vm_ifaces` | List VM interfaces | | `virtualization_list_vm_interfaces` | List VM interfaces |
| ... and more | | ... and more |
### Tenancy ### Tenancy
@@ -230,9 +167,9 @@ Enabled modules: dcim, extras, ipam, virtualization
| Tool | Description | | Tool | Description |
|------|-------------| |------|-------------|
| `wlan_list_lans` | List wireless LANs | | `wireless_list_wireless_lans` | List wireless LANs |
| `wlan_create_lan` | Create a WLAN | | `wireless_create_wireless_lan` | Create a WLAN |
| `wlan_list_links` | List wireless links | | `wireless_list_wireless_links` | List wireless links |
| ... and more | | ... and more |
### Extras ### Extras

View File

@@ -9,17 +9,11 @@ from pathlib import Path
from dotenv import load_dotenv from dotenv import load_dotenv
import os import os
import logging import logging
from typing import Dict, List, Optional, Set from typing import Dict, Optional
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# All available NetBox modules
ALL_MODULES = frozenset([
'dcim', 'ipam', 'circuits', 'virtualization',
'tenancy', 'vpn', 'wireless', 'extras'
])
class NetBoxConfig: class NetBoxConfig:
"""Configuration loader for NetBox MCP Server""" """Configuration loader for NetBox MCP Server"""
@@ -29,7 +23,6 @@ class NetBoxConfig:
self.api_token: Optional[str] = None self.api_token: Optional[str] = None
self.verify_ssl: bool = True self.verify_ssl: bool = True
self.timeout: int = 30 self.timeout: int = 30
self.enabled_modules: Set[str] = set(ALL_MODULES)
def load(self) -> Dict[str, any]: def load(self) -> Dict[str, any]:
""" """
@@ -80,9 +73,6 @@ class NetBoxConfig:
self.timeout = 30 self.timeout = 30
logger.warning(f"Invalid NETBOX_TIMEOUT value '{timeout_str}', using default 30") logger.warning(f"Invalid NETBOX_TIMEOUT value '{timeout_str}', using default 30")
# Module filtering
self.enabled_modules = self._load_enabled_modules()
# Validate required variables # Validate required variables
self._validate() self._validate()
@@ -94,8 +84,7 @@ class NetBoxConfig:
'api_url': self.api_url, 'api_url': self.api_url,
'api_token': self.api_token, 'api_token': self.api_token,
'verify_ssl': self.verify_ssl, 'verify_ssl': self.verify_ssl,
'timeout': self.timeout, 'timeout': self.timeout
'enabled_modules': self.enabled_modules
} }
def _validate(self) -> None: def _validate(self) -> None:
@@ -117,40 +106,3 @@ class NetBoxConfig:
f"Missing required configuration: {', '.join(missing)}\n" f"Missing required configuration: {', '.join(missing)}\n"
"Check your ~/.config/claude/netbox.env file" "Check your ~/.config/claude/netbox.env file"
) )
def _load_enabled_modules(self) -> Set[str]:
"""
Load enabled modules from NETBOX_ENABLED_MODULES environment variable.
Format: Comma-separated list of module names.
Example: NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras
Returns:
Set of enabled module names. If env var is unset/empty, returns all modules.
"""
modules_str = os.getenv('NETBOX_ENABLED_MODULES', '').strip()
if not modules_str:
logger.info("NETBOX_ENABLED_MODULES not set, all modules enabled (default)")
return set(ALL_MODULES)
# Parse comma-separated list, strip whitespace
requested = {m.strip().lower() for m in modules_str.split(',') if m.strip()}
# Validate module names
invalid = requested - ALL_MODULES
if invalid:
logger.warning(
f"Unknown modules in NETBOX_ENABLED_MODULES: {', '.join(sorted(invalid))}. "
f"Valid modules: {', '.join(sorted(ALL_MODULES))}"
)
# Return only valid modules
enabled = requested & ALL_MODULES
if not enabled:
logger.warning("No valid modules enabled, falling back to all modules")
return set(ALL_MODULES)
logger.info(f"Enabled modules: {', '.join(sorted(enabled))}")
return enabled

View File

@@ -8,12 +8,11 @@ Tenancy, VPN, Wireless, and Extras.
import asyncio import asyncio
import logging import logging
import json import json
from typing import Optional, Set
from mcp.server import Server from mcp.server import Server
from mcp.server.stdio import stdio_server from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent from mcp.types import Tool, TextContent
from .config import NetBoxConfig, ALL_MODULES from .config import NetBoxConfig
from .netbox_client import NetBoxClient from .netbox_client import NetBoxClient
from .tools.dcim import DCIMTools from .tools.dcim import DCIMTools
from .tools.ipam import IPAMTools from .tools.ipam import IPAMTools
@@ -1454,49 +1453,6 @@ TOOL_NAME_MAP = {
} }
# Map tool name prefixes to module names.
# This handles both full prefixes and shortened prefixes used in TOOL_NAME_MAP.
PREFIX_TO_MODULE = {
'dcim': 'dcim',
'ipam': 'ipam',
'circuits': 'circuits',
'circ': 'circuits', # Shortened prefix
'virtualization': 'virtualization',
'virt': 'virtualization', # Shortened prefix
'tenancy': 'tenancy',
'vpn': 'vpn',
'wireless': 'wireless',
'wlan': 'wireless', # Shortened prefix
'extras': 'extras',
}
def _get_tool_module(tool_name: str) -> Optional[str]:
"""
Determine which module a tool belongs to.
Checks TOOL_NAME_MAP first for shortened names, then falls back to prefix extraction.
Args:
tool_name: The tool name (e.g., 'dcim_list_devices', 'virt_list_vms')
Returns:
Module name (e.g., 'dcim', 'virtualization') or None if unknown
"""
# Check mapped short names first
if tool_name in TOOL_NAME_MAP:
category, _ = TOOL_NAME_MAP[tool_name]
return category
# Fall back to prefix extraction
parts = tool_name.split('_', 1)
if len(parts) < 2:
return None
prefix = parts[0]
return PREFIX_TO_MODULE.get(prefix)
class NetBoxMCPServer: class NetBoxMCPServer:
"""MCP Server for NetBox integration""" """MCP Server for NetBox integration"""
@@ -1504,8 +1460,6 @@ class NetBoxMCPServer:
self.server = Server("netbox-mcp") self.server = Server("netbox-mcp")
self.config = None self.config = None
self.client = None self.client = None
self.enabled_modules: Set[str] = set(ALL_MODULES)
# Tool instances - only instantiated for enabled modules
self.dcim_tools = None self.dcim_tools = None
self.ipam_tools = None self.ipam_tools = None
self.circuits_tools = None self.circuits_tools = None
@@ -1520,39 +1474,18 @@ class NetBoxMCPServer:
try: try:
config_loader = NetBoxConfig() config_loader = NetBoxConfig()
self.config = config_loader.load() self.config = config_loader.load()
self.enabled_modules = self.config['enabled_modules']
self.client = NetBoxClient() self.client = NetBoxClient()
self.dcim_tools = DCIMTools(self.client)
self.ipam_tools = IPAMTools(self.client)
self.circuits_tools = CircuitsTools(self.client)
self.virtualization_tools = VirtualizationTools(self.client)
self.tenancy_tools = TenancyTools(self.client)
self.vpn_tools = VPNTools(self.client)
self.wireless_tools = WirelessTools(self.client)
self.extras_tools = ExtrasTools(self.client)
# Conditionally instantiate tool classes for enabled modules only logger.info(f"NetBox MCP Server initialized for {self.config['api_url']}")
if 'dcim' in self.enabled_modules:
self.dcim_tools = DCIMTools(self.client)
if 'ipam' in self.enabled_modules:
self.ipam_tools = IPAMTools(self.client)
if 'circuits' in self.enabled_modules:
self.circuits_tools = CircuitsTools(self.client)
if 'virtualization' in self.enabled_modules:
self.virtualization_tools = VirtualizationTools(self.client)
if 'tenancy' in self.enabled_modules:
self.tenancy_tools = TenancyTools(self.client)
if 'vpn' in self.enabled_modules:
self.vpn_tools = VPNTools(self.client)
if 'wireless' in self.enabled_modules:
self.wireless_tools = WirelessTools(self.client)
if 'extras' in self.enabled_modules:
self.extras_tools = ExtrasTools(self.client)
# Count tools that will be registered
tool_count = sum(
1 for name in TOOL_DEFINITIONS
if _get_tool_module(name) in self.enabled_modules
)
modules_str = ', '.join(sorted(self.enabled_modules))
logger.info(
f"NetBox MCP Server initialized: {tool_count} tools registered "
f"(modules: {modules_str})"
)
except Exception as e: except Exception as e:
logger.error(f"Failed to initialize: {e}") logger.error(f"Failed to initialize: {e}")
raise raise
@@ -1562,14 +1495,9 @@ class NetBoxMCPServer:
@self.server.list_tools() @self.server.list_tools()
async def list_tools() -> list[Tool]: async def list_tools() -> list[Tool]:
"""Return list of available tools, filtered by enabled modules""" """Return list of available tools"""
tools = [] tools = []
for name, definition in TOOL_DEFINITIONS.items(): for name, definition in TOOL_DEFINITIONS.items():
# Filter tools by enabled modules
module = _get_tool_module(name)
if module not in self.enabled_modules:
continue
tools.append(Tool( tools.append(Tool(
name=name, name=name,
description=definition['description'], description=definition['description'],
@@ -1604,14 +1532,6 @@ class NetBoxMCPServer:
'virtualization_list_virtual_machines') to meet the 28-character 'virtualization_list_virtual_machines') to meet the 28-character
limit. TOOL_NAME_MAP handles the translation to actual method names. limit. TOOL_NAME_MAP handles the translation to actual method names.
""" """
# Check module is enabled (routing guard)
module = _get_tool_module(name)
if module and module not in self.enabled_modules:
raise ValueError(
f"Tool '{name}' is not available (module '{module}' not enabled). "
f"Enabled modules: {', '.join(sorted(self.enabled_modules))}"
)
# Check if this is a mapped short name # Check if this is a mapped short name
if name in TOOL_NAME_MAP: if name in TOOL_NAME_MAP:
category, method_name = TOOL_NAME_MAP[name] category, method_name = TOOL_NAME_MAP[name]

View File

@@ -32,9 +32,9 @@ The following NetBox MCP tools are available for infrastructure management:
- `ipam_list_available_ips`, `ipam_create_available_ip` - IP allocation - `ipam_list_available_ips`, `ipam_create_available_ip` - IP allocation
**Virtualization:** **Virtualization:**
- `virt_list_vms`, `virt_create_vm`, `virt_update_vm`, `virt_delete_vm` - VM management - `virtualization_list_virtual_machines`, `virtualization_create_virtual_machine` - VM management
- `virt_list_clusters`, `virt_create_cluster`, `virt_update_cluster`, `virt_delete_cluster` - Cluster management - `virtualization_list_clusters`, `virtualization_create_cluster` - Cluster management
- `virt_list_vm_ifaces`, `virt_create_vm_iface` - VM interface management - `virtualization_list_vm_interfaces` - VM interface management
**Circuits:** **Circuits:**
- `circuits_list_circuits`, `circuits_create_circuit` - Circuit management - `circuits_list_circuits`, `circuits_create_circuit` - Circuit management

View File

@@ -31,7 +31,7 @@ When the user provides a search query, determine the best approach:
3. **Site search**: Use `dcim_list_sites` with name filter 3. **Site search**: Use `dcim_list_sites` with name filter
4. **Prefix search**: Use `ipam_list_prefixes` with prefix or within filter 4. **Prefix search**: Use `ipam_list_prefixes` with prefix or within filter
5. **VLAN search**: Use `ipam_list_vlans` with vid or name filter 5. **VLAN search**: Use `ipam_list_vlans` with vid or name filter
6. **VM search**: Use `virt_list_vms` with name filter 6. **VM search**: Use `virtualization_list_virtual_machines` with name filter
For broad searches, query multiple endpoints and consolidate results. For broad searches, query multiple endpoints and consolidate results.

View File

@@ -18,7 +18,7 @@ Configure the cmdb-assistant plugin with NetBox integration.
## Usage ## Usage
``` ```
/cmdb-setup /initial-setup
``` ```
## Instructions ## Instructions

View File

@@ -24,7 +24,7 @@ Standard visual header for cmdb-assistant commands.
| `/cmdb-topology` | Topology | | `/cmdb-topology` | Topology |
| `/change-audit` | Change Audit | | `/change-audit` | Change Audit |
| `/ip-conflicts` | IP Conflict Detection | | `/ip-conflicts` | IP Conflict Detection |
| `/cmdb-setup` | Setup Wizard | | `/initial-setup` | Setup Wizard |
| Agent mode | Infrastructure Management | | Agent mode | Infrastructure Management |
## Usage ## Usage

View File

@@ -100,5 +100,5 @@ You are a contract validation specialist. Your role is to perform comprehensive
2. Parses all README.md files 2. Parses all README.md files
3. Runs 66 pairwise compatibility checks 3. Runs 66 pairwise compatibility checks
4. Finds 3 errors, 4 warnings 4. Finds 3 errors, 4 warnings
5. Reports: "Command conflict: pluginA and pluginB both define /setup" 5. Reports: "Command conflict: projman and data-platform both define /initial-setup"
6. Suggests: "Rename one command to avoid ambiguity" 6. Suggests: "Rename one command to avoid ambiguity"

View File

@@ -2,7 +2,7 @@
description: Interactive setup wizard for contract-validator plugin description: Interactive setup wizard for contract-validator plugin
--- ---
# /cv-setup - Contract Validator Setup Wizard # /initial-setup - Contract-Validator Setup Wizard
## Skills to Load ## Skills to Load
- skills/visual-output.md - skills/visual-output.md

View File

@@ -65,6 +65,6 @@ Available MCP tools for contract-validator operations.
## Error Handling ## Error Handling
If MCP tools fail: If MCP tools fail:
1. Check if `/cv-setup` has been run 1. Check if `/initial-setup` has been run
2. Verify session was restarted after setup 2. Verify session was restarted after setup
3. Check MCP server venv exists and is valid 3. Check MCP server venv exists and is valid

View File

@@ -18,12 +18,12 @@ This project uses the data-platform plugin for data engineering workflows.
| Command | Purpose | | Command | Purpose |
|---------|---------| |---------|---------|
| `/data-ingest` | Load data from files or database | | `/ingest` | Load data from files or database |
| `/data-profile` | Generate statistical profile | | `/profile` | Generate statistical profile |
| `/data-schema` | Show schema information | | `/schema` | Show schema information |
| `/data-explain` | Explain dbt model | | `/explain` | Explain dbt model |
| `/data-lineage` | Show data lineage | | `/lineage` | Show data lineage |
| `/data-run` | Execute dbt models | | `/run` | Execute dbt models |
### data_ref Convention ### data_ref Convention
@@ -36,9 +36,9 @@ DataFrames are stored with references. Use meaningful names:
### dbt Workflow ### dbt Workflow
1. Always validate before running: `/data-run` includes automatic `dbt_parse` 1. Always validate before running: `/run` includes automatic `dbt_parse`
2. For dbt 1.9+, check for deprecated syntax before commits 2. For dbt 1.9+, check for deprecated syntax before commits
3. Use `/data-lineage` to understand impact of changes 3. Use `/lineage` to understand impact of changes
### Database Access ### Database Access
@@ -69,22 +69,22 @@ DATA_PLATFORM_MAX_ROWS=100000
### Data Exploration ### Data Exploration
``` ```
/data-ingest data/raw_customers.csv /ingest data/raw_customers.csv
/data-profile raw_customers /profile raw_customers
/data-schema /schema
``` ```
### ETL Development ### ETL Development
``` ```
/data-schema orders # Understand source /schema orders # Understand source
/data-explain stg_orders # Understand transformation /explain stg_orders # Understand transformation
/data-run stg_orders # Test the model /run stg_orders # Test the model
/data-lineage fct_orders # Check downstream impact /lineage fct_orders # Check downstream impact
``` ```
### Database Analysis ### Database Analysis
``` ```
/data-schema # List all tables /schema # List all tables
pg_columns orders # Detailed schema pg_columns orders # Detailed schema
st_tables # Find spatial data st_tables # Find spatial data
``` ```

View File

@@ -145,5 +145,5 @@ Use `/data-gate` when you want to automate.
## Related Commands ## Related Commands
- `/data-gate` - Binary pass/fail for automation - `/data-gate` - Binary pass/fail for automation
- `/data-lineage` - Visualize dbt model dependencies - `/lineage` - Visualize dbt model dependencies
- `/data-schema` - Explore database schema - `/schema` - Explore database schema

View File

@@ -1,4 +1,4 @@
# /data-explain - dbt Model Explanation # /explain - dbt Model Explanation
## Skills to Load ## Skills to Load
- skills/dbt-workflow.md - skills/dbt-workflow.md
@@ -13,7 +13,7 @@ Display header: `DATA-PLATFORM - Model Explanation`
## Usage ## Usage
``` ```
/data-explain <model_name> /explain <model_name>
``` ```
## Workflow ## Workflow
@@ -26,8 +26,8 @@ Display header: `DATA-PLATFORM - Model Explanation`
## Examples ## Examples
``` ```
/data-explain dim_customers /explain dim_customers
/data-explain fct_orders /explain fct_orders
``` ```
## Required MCP Tools ## Required MCP Tools

View File

@@ -1,4 +1,4 @@
# /data-ingest - Data Ingestion # /ingest - Data Ingestion
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -11,7 +11,7 @@ Display header: `DATA-PLATFORM - Ingest`
## Usage ## Usage
``` ```
/data-ingest [source] /ingest [source]
``` ```
## Workflow ## Workflow
@@ -31,9 +31,9 @@ Display header: `DATA-PLATFORM - Ingest`
## Examples ## Examples
``` ```
/data-ingest data/sales.csv /ingest data/sales.csv
/data-ingest data/customers.parquet /ingest data/customers.parquet
/data-ingest "SELECT * FROM orders WHERE created_at > '2024-01-01'" /ingest "SELECT * FROM orders WHERE created_at > '2024-01-01'"
``` ```
## Required MCP Tools ## Required MCP Tools

View File

@@ -1,4 +1,4 @@
# /data-setup - Data Platform Setup Wizard # /initial-setup - Data Platform Setup Wizard
## Skills to Load ## Skills to Load
- skills/setup-workflow.md - skills/setup-workflow.md
@@ -11,7 +11,7 @@ Display header: `DATA-PLATFORM - Setup Wizard`
## Usage ## Usage
``` ```
/data-setup /initial-setup
``` ```
## Workflow ## Workflow

View File

@@ -1,4 +1,4 @@
# /data-lineage - Data Lineage Visualization # /lineage - Data Lineage Visualization
## Skills to Load ## Skills to Load
- skills/lineage-analysis.md - skills/lineage-analysis.md
@@ -12,7 +12,7 @@ Display header: `DATA-PLATFORM - Lineage`
## Usage ## Usage
``` ```
/data-lineage <model_name> [--depth N] /lineage <model_name> [--depth N]
``` ```
## Workflow ## Workflow
@@ -25,8 +25,8 @@ Display header: `DATA-PLATFORM - Lineage`
## Examples ## Examples
``` ```
/data-lineage dim_customers /lineage dim_customers
/data-lineage fct_orders --depth 3 /lineage fct_orders --depth 3
``` ```
## Required MCP Tools ## Required MCP Tools

View File

@@ -1,4 +1,4 @@
# /data-profile - Data Profiling # /profile - Data Profiling
## Skills to Load ## Skills to Load
- skills/data-profiling.md - skills/data-profiling.md
@@ -12,7 +12,7 @@ Display header: `DATA-PLATFORM - Data Profile`
## Usage ## Usage
``` ```
/data-profile <data_ref> /profile <data_ref>
``` ```
## Workflow ## Workflow
@@ -27,8 +27,8 @@ Execute `skills/data-profiling.md` profiling workflow:
## Examples ## Examples
``` ```
/data-profile sales_data /profile sales_data
/data-profile df_a1b2c3d4 /profile df_a1b2c3d4
``` ```
## Required MCP Tools ## Required MCP Tools

View File

@@ -1,4 +1,4 @@
# /data-run - Execute dbt Models # /run - Execute dbt Models
## Skills to Load ## Skills to Load
- skills/dbt-workflow.md - skills/dbt-workflow.md
@@ -12,7 +12,7 @@ Display header: `DATA-PLATFORM - dbt Run`
## Usage ## Usage
``` ```
/data-run [model_selection] [--full-refresh] /run [model_selection] [--full-refresh]
``` ```
## Workflow ## Workflow
@@ -30,11 +30,11 @@ See `skills/dbt-workflow.md` for full selection patterns.
## Examples ## Examples
``` ```
/data-run # Run all models /run # Run all models
/data-run dim_customers # Run specific model /run dim_customers # Run specific model
/data-run +fct_orders # Run model and upstream /run +fct_orders # Run model and upstream
/data-run tag:daily # Run models with tag /run tag:daily # Run models with tag
/data-run --full-refresh # Rebuild incremental models /run --full-refresh # Rebuild incremental models
``` ```
## Required MCP Tools ## Required MCP Tools

View File

@@ -1,4 +1,4 @@
# /data-schema - Schema Exploration # /schema - Schema Exploration
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -11,7 +11,7 @@ Display header: `DATA-PLATFORM - Schema Explorer`
## Usage ## Usage
``` ```
/data-schema [table_name | data_ref] /schema [table_name | data_ref]
``` ```
## Workflow ## Workflow
@@ -30,9 +30,9 @@ Display header: `DATA-PLATFORM - Schema Explorer`
## Examples ## Examples
``` ```
/data-schema # List all tables and DataFrames /schema # List all tables and DataFrames
/data-schema customers # Show table schema /schema customers # Show table schema
/data-schema sales_data # Show DataFrame schema /schema sales_data # Show DataFrame schema
``` ```
## Required MCP Tools ## Required MCP Tools

View File

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

View File

@@ -40,9 +40,9 @@ Use conventional commits:
| Command | Use Case | | Command | Use Case |
|---------|----------| |---------|----------|
| `/git-commit` | Create commit with smart message | | `/commit` | Create commit with smart message |
| `/git-commit-push` | Commit and push | | `/commit-push` | Commit and push |
| `/git-commit-merge` | Commit and merge to base | | `/commit-merge` | Commit and merge to base |
| `/branch-start` | Start new branch | | `/branch-start` | Start new branch |
| `/git-status` | Enhanced status | | `/git-status` | Enhanced status |

View File

@@ -1,10 +1,10 @@
--- ---
name: git-commit-merge name: commit-merge
description: Commit current changes and merge branch into target description: Commit current changes and merge branch into target
agent: git-assistant agent: git-assistant
--- ---
# /git-commit-merge - Commit and Merge # /commit-merge - Commit and Merge
## Skills ## Skills
@@ -29,7 +29,7 @@ Commit current changes, then merge the current branch into a target branch.
## Workflow ## Workflow
1. **Display header** - Show GIT-FLOW Commit & Merge header 1. **Display header** - Show GIT-FLOW Commit & Merge header
2. **Run /git-commit** - Execute standard commit workflow 2. **Run /commit** - Execute standard commit workflow
3. **Identify target** - Prompt for target branch if not specified 3. **Identify target** - Prompt for target branch if not specified
4. **Select strategy** - Merge commit, squash, or rebase (per merge-workflow.md) 4. **Select strategy** - Merge commit, squash, or rebase (per merge-workflow.md)
5. **Execute merge** - Switch to target, pull, merge, push 5. **Execute merge** - Switch to target, pull, merge, push

View File

@@ -1,10 +1,10 @@
--- ---
name: git-commit-push name: commit-push
description: Create a commit and push to remote in one operation description: Create a commit and push to remote in one operation
agent: git-assistant agent: git-assistant
--- ---
# /git-commit-push - Commit and Push # /commit-push - Commit and Push
## Skills ## Skills
@@ -28,7 +28,7 @@ Create a commit and push to the remote repository in one operation.
## Workflow ## Workflow
1. **Display header** - Show GIT-FLOW Commit & Push header 1. **Display header** - Show GIT-FLOW Commit & Push header
2. **Run /git-commit** - Execute standard commit workflow 2. **Run /commit** - Execute standard commit workflow
3. **Check upstream** - Set up tracking if needed (`git push -u`) 3. **Check upstream** - Set up tracking if needed (`git push -u`)
4. **Push** - Push to remote 4. **Push** - Push to remote
5. **Handle conflicts** - Offer rebase/merge/force if push fails (per sync-workflow.md) 5. **Handle conflicts** - Offer rebase/merge/force if push fails (per sync-workflow.md)

View File

@@ -1,10 +1,10 @@
--- ---
name: git-commit-sync name: commit-sync
description: Commit, push, and sync with base branch description: Commit, push, and sync with base branch
agent: git-assistant agent: git-assistant
--- ---
# /git-commit-sync - Commit, Push, and Sync # /commit-sync - Commit, Push, and Sync
## Skills ## Skills
@@ -28,7 +28,7 @@ Full sync operation: commit local changes, push to remote, sync with upstream/ba
## Workflow ## Workflow
1. **Display header** - Show GIT-FLOW Commit Sync header 1. **Display header** - Show GIT-FLOW Commit Sync header
2. **Run /git-commit** - Execute standard commit workflow 2. **Run /commit** - Execute standard commit workflow
3. **Push to remote** - Push committed changes 3. **Push to remote** - Push committed changes
4. **Fetch with prune** - `git fetch --all --prune` 4. **Fetch with prune** - `git fetch --all --prune`
5. **Sync with base** - Rebase on base branch (per sync-workflow.md) 5. **Sync with base** - Rebase on base branch (per sync-workflow.md)

View File

@@ -1,10 +1,10 @@
--- ---
name: git-commit name: commit
description: Create a git commit with auto-generated conventional commit message description: Create a git commit with auto-generated conventional commit message
agent: git-assistant agent: git-assistant
--- ---
# /git-commit - Smart Commit # /commit - Smart Commit
## Skills ## Skills

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 ---
/git-commit - Commit staged changes /commit - Commit staged changes
/git-commit-push - Commit and push /commit-push - Commit and push
``` ```

View File

@@ -6,7 +6,7 @@ Defines conventional commit message format for consistent, parseable commit hist
## When to Use ## When to Use
- Generating commit messages in `/git-commit` - Generating commit messages in `/commit`
- Validating user-provided commit messages - Validating user-provided commit messages
- Explaining commit format to users - Explaining commit format to users

View File

@@ -6,7 +6,7 @@ Defines merge strategies, conflict resolution approaches, and post-merge cleanup
## When to Use ## When to Use
- Merging feature branches in `/git-commit-merge` - Merging feature branches in `/commit-merge`
- Resolving conflicts during sync operations - Resolving conflicts during sync operations
- Cleaning up after successful merges - Cleaning up after successful merges

View File

@@ -6,8 +6,8 @@ Defines push/pull patterns, rebase strategies, upstream tracking, and stale bran
## When to Use ## When to Use
- Pushing commits in `/git-commit-push` - Pushing commits in `/commit-push`
- Full sync operations in `/git-commit-sync` - Full sync operations in `/commit-sync`
- Detecting and reporting stale branches - Detecting and reporting stale branches
## Push Workflow ## Push Workflow

View File

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

View File

@@ -17,13 +17,13 @@ Display header: `PR-REVIEW - Project Setup`
Fast setup when system-level config already exists. Fast setup when system-level config already exists.
**Use when:** Already ran `/pr-setup`, starting new project **Use when:** Already ran `/initial-setup`, starting new project
## Workflow ## Workflow
### Pre-Flight Check ### Pre-Flight Check
Verify `~/.config/claude/gitea.env` exists. If missing: redirect to `/pr-setup` Verify `~/.config/claude/gitea.env` exists. If missing: redirect to `/initial-setup`
### Project Setup ### Project Setup

View File

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

View File

@@ -3,35 +3,26 @@ name: orchestrator
description: Sprint orchestration agent - coordinates execution and tracks progress description: Sprint orchestration agent - coordinates execution and tracks progress
model: sonnet model: sonnet
permissionMode: acceptEdits permissionMode: acceptEdits
skills: mcp-tools-reference, batch-execution
--- ---
# Sprint Orchestration Agent # Sprint Orchestration Agent
You are the **Orchestrator Agent** - a concise, action-oriented coordinator who keeps sprints on track. You are the **Orchestrator Agent** - a concise, action-oriented coordinator who keeps sprints on track.
## Skill Loading Protocol ## Skills to Load
**Frontmatter skills (auto-injected, always available — DO NOT re-read these):** - skills/mcp-tools-reference.md
- `mcp-tools-reference` — MCP tool signatures for all Gitea operations
- `batch-execution` — Plan-then-batch protocol for API execution
**Phase 1 skills — read ONCE at session start, before any work begins:**
- skills/branch-security.md - skills/branch-security.md
- skills/sprint-approval.md - skills/sprint-approval.md
- skills/sprint-lifecycle.md
- skills/visual-output.md
- skills/runaway-detection.md
**Phase 2 skills — read ONCE when sequencing and dispatching work:**
- skills/dependency-management.md - skills/dependency-management.md
- skills/lessons-learned.md - skills/lessons-learned.md
- skills/git-workflow.md - skills/git-workflow.md
- skills/progress-tracking.md - skills/progress-tracking.md
- skills/runaway-detection.md
- skills/wiki-conventions.md - skills/wiki-conventions.md
- skills/domain-consultation.md - skills/domain-consultation.md
- skills/sprint-lifecycle.md
**CRITICAL: Read each skill file exactly ONCE. Do NOT re-read skill files between MCP API calls. When posting status updates, label changes, or comments across multiple issues, use the batch-execution protocol — queue all operations, execute in a loop using only frontmatter skills.** - skills/visual-output.md
## Your Personality ## Your Personality

View File

@@ -3,39 +3,28 @@ name: planner
description: Sprint planning agent - thoughtful architecture analysis and issue creation description: Sprint planning agent - thoughtful architecture analysis and issue creation
model: opus model: opus
permissionMode: default permissionMode: default
skills: mcp-tools-reference, batch-execution
--- ---
# Sprint Planning Agent # Sprint Planning Agent
You are the **Planner Agent** - a methodical architect who thoroughly analyzes requirements before creating well-structured plans. You are the **Planner Agent** - a methodical architect who thoroughly analyzes requirements before creating well-structured plans.
## Skill Loading Protocol ## Skills to Load
**Frontmatter skills (auto-injected, always available — DO NOT re-read these):** - skills/mcp-tools-reference.md
- `mcp-tools-reference` — MCP tool signatures for all Gitea operations
- `batch-execution` — Plan-then-batch protocol for API execution
**Phase 1 skills — read ONCE at session start, before any work begins:**
- skills/branch-security.md - skills/branch-security.md
- skills/repo-validation.md - skills/repo-validation.md
- skills/sprint-lifecycle.md
- skills/visual-output.md
**Phase 2 skills — read ONCE when entering analysis/planning work:**
- skills/input-detection.md - skills/input-detection.md
- skills/lessons-learned.md - skills/lessons-learned.md
- skills/wiki-conventions.md - skills/wiki-conventions.md
- skills/task-sizing.md - skills/task-sizing.md
- skills/issue-conventions.md - skills/issue-conventions.md
- skills/sprint-approval.md
- skills/planning-workflow.md - skills/planning-workflow.md
- skills/label-taxonomy/labels-reference.md - skills/label-taxonomy/labels-reference.md
- skills/domain-consultation.md - skills/domain-consultation.md
- skills/sprint-lifecycle.md
**Phase 3 skills — read ONCE before requesting approval:** - skills/visual-output.md
- skills/sprint-approval.md
**CRITICAL: Read each skill file exactly ONCE. Do NOT re-read skill files between MCP API calls. During batch execution (Step 8a of planning-workflow.md), use ONLY the frontmatter skills — no file reads.**
## Your Personality ## Your Personality

View File

@@ -11,7 +11,7 @@ This project uses the **projman** plugin for sprint planning and project managem
| `/sprint-status` | Check current sprint progress and identify blockers | | `/sprint-status` | Check current sprint progress and identify blockers |
| `/sprint-close` | Complete sprint and capture lessons learned to Gitea Wiki | | `/sprint-close` | Complete sprint and capture lessons learned to Gitea Wiki |
| `/labels-sync` | Synchronize label taxonomy from Gitea | | `/labels-sync` | Synchronize label taxonomy from Gitea |
| `/pm-setup` | Run initial setup for projman plugin | | `/initial-setup` | Run initial setup for projman plugin |
| `/rfc create` | Create new RFC from conversation or clarified spec | | `/rfc create` | Create new RFC from conversation or clarified spec |
| `/rfc list` | List all RFCs grouped by status | | `/rfc list` | List all RFCs grouped by status |
| `/rfc review` | Submit Draft RFC for review | | `/rfc review` | Submit Draft RFC for review |

View File

@@ -2,7 +2,7 @@
description: Diagnose issues and create reports, or investigate existing diagnostic issues description: Diagnose issues and create reports, or investigate existing diagnostic issues
--- ---
# PM Debug # Debug
## Skills Required ## Skills Required
@@ -17,9 +17,9 @@ Unified debugging command for diagnostics and issue investigation.
## Invocation ## Invocation
``` ```
/pm-debug # Ask which mode /debug # Ask which mode
/pm-debug report # Run diagnostics, create issue /debug report # Run diagnostics, create issue
/pm-debug review # Investigate existing issues /debug review # Investigate existing issues
``` ```
## Mode Selection ## Mode Selection

View File

@@ -3,7 +3,7 @@ description: Pre-sprint-close code quality review
agent: code-reviewer agent: code-reviewer
--- ---
# PM Review - Code Review for Sprint Close # Code Review for Sprint Close
## Skills Required ## Skills Required
@@ -16,7 +16,7 @@ Review recent code changes for quality issues before closing the sprint.
## Invocation ## Invocation
Run `/pm-review` before `/sprint-close` to catch issues. Run `/review` before `/sprint-close` to catch issues.
## Workflow ## Workflow

View File

@@ -2,7 +2,7 @@
description: Configure projman - full setup, quick project init, or sync after repo move description: Configure projman - full setup, quick project init, or sync after repo move
--- ---
# PM Setup # Setup
## Skills Required ## Skills Required
@@ -22,11 +22,11 @@ Unified setup command for all configuration needs.
## Invocation ## Invocation
``` ```
/pm-setup # Auto-detect appropriate mode /setup # Auto-detect appropriate mode
/pm-setup --full # Full wizard (MCP + system + project) /setup --full # Full wizard (MCP + system + project)
/pm-setup --quick # Project-only setup /setup --quick # Project-only setup
/pm-setup --sync # Update after repo move /setup --sync # Update after repo move
/pm-setup --clear-cache # Clear plugin cache (between sessions only) /setup --clear-cache # Clear plugin cache (between sessions only)
``` ```
## Mode Detection ## Mode Detection

View File

@@ -14,7 +14,6 @@ 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
@@ -83,12 +82,3 @@ 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

@@ -7,8 +7,7 @@ agent: planner
## Skills Required ## Skills Required
- skills/mcp-tools-reference.md (frontmatter — auto-injected) - skills/mcp-tools-reference.md
- skills/batch-execution.md (frontmatter — auto-injected)
- skills/branch-security.md - skills/branch-security.md
- skills/repo-validation.md - skills/repo-validation.md
- skills/input-detection.md - skills/input-detection.md
@@ -20,7 +19,6 @@ 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
@@ -58,12 +56,3 @@ 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

@@ -7,8 +7,7 @@ agent: orchestrator
## Skills Required ## Skills Required
- skills/mcp-tools-reference.md (frontmatter — auto-injected) - skills/mcp-tools-reference.md
- skills/batch-execution.md (frontmatter — auto-injected)
- skills/branch-security.md - skills/branch-security.md
- skills/sprint-approval.md - skills/sprint-approval.md
- skills/dependency-management.md - skills/dependency-management.md

View File

@@ -1,80 +1,46 @@
--- ---
description: Check current sprint progress, identify blockers, optionally generate dependency diagram or token budget report description: Check current sprint progress, identify blockers, optionally generate dependency diagram
--- ---
# Sprint Status # Sprint Status
## Skills Required ## Skills Required
**Always loaded:**
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
- skills/progress-tracking.md
**Conditional — only load if matching flag is present:** - skills/dependency-management.md
- skills/sprint-lifecycle.md — load if displaying lifecycle state (always, but this is small) - skills/sprint-lifecycle.md
- 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 or token budget report. Check current sprint progress, identify blockers, and show execution status. Optionally generate a visual dependency diagram.
## 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
1. **Fetch Active Milestone**`get_milestone` for the open milestone 0. **Display Lifecycle State** - Read current Sprint/* state from milestone description per `skills/sprint-lifecycle.md` and display in output header.
2. **Read Lifecycle State** — Parse `**Sprint State:**` from milestone description 1. **Fetch Sprint Issues** - Get all issues for current milestone
3. **Fetch Sprint Issues**`list_issues` filtered by milestone 2. **Calculate Progress** - Count completed vs total issues
4. **Calculate Progress** — Count closed vs total issues 3. **Identify Active Tasks** - Find issues with `Status/In-Progress`
5. **Identify Blockers** Find issues with `Status/Blocked` label 4. **Identify Blockers** - Find issues with `Status/Blocked`
6. **Display Output** — Format header + progress bar + issue table + blockers 5. **Show Dependency Status** - Which tasks are now unblocked
6. **Parse Progress Comments** - Extract real-time status from structured comments
That's it. No dependency analysis, no token estimation, no progress comment parsing unless a flag asks for it. ### If --diagram flag:
### If --diagram flag, THEN ALSO: 7. **Fetch Dependencies** - Use `list_issue_dependencies` for each issue
7. Fetch dependencies with `list_issue_dependencies` 8. **Get Execution Order** - Use `get_execution_order` for batch grouping
8. Load `skills/dependency-management.md` 9. **Generate Mermaid Syntax** - Create flowchart with status colors
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
### Default Output (no flags) See `skills/progress-tracking.md` for the progress display format.
```
╔══════════════════════════════════════════════════════════════════╗
║ 📋 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)
@@ -102,3 +68,13 @@ 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

@@ -2,7 +2,7 @@
description: Run tests with coverage or generate tests for specified code description: Run tests with coverage or generate tests for specified code
--- ---
# PM Test # Test
## Skills Required ## Skills Required
@@ -15,13 +15,13 @@ Unified testing command for running tests and generating new tests.
## Invocation ## Invocation
``` ```
/pm-test # Default: run tests /test # Default: run tests
/pm-test run # Run tests, check coverage /test run # Run tests, check coverage
/pm-test run --coverage # Run with coverage report /test run --coverage # Run with coverage report
/pm-test run --verbose # Verbose output /test run --verbose # Verbose output
/pm-test gen <target> # Generate tests for target /test gen <target> # Generate tests for target
/pm-test gen <target> --type=unit # Specific test type /test gen <target> --type=unit # Specific test type
/pm-test gen <target> --framework=jest # Specific framework /test gen <target> --framework=jest # Specific framework
``` ```
## Mode Selection ## Mode Selection
@@ -104,15 +104,15 @@ See `skills/test-standards.md` for test patterns and structure.
## Sprint Integration ## Sprint Integration
The `/pm-test` command plays a critical role in the sprint close workflow: The `/test` command plays a critical role in the sprint close workflow:
1. After `/pm-review` identifies code quality issues 1. After `/review` identifies code quality issues
2. Before `/sprint-close` finalizes the sprint 2. Before `/sprint-close` finalizes the sprint
3. The code reviewer and orchestrator reference test results when deciding if a sprint is ready to close 3. The code reviewer and orchestrator reference test results when deciding if a sprint is ready to close
### Pre-Close Verification ### Pre-Close Verification
When running `/pm-test run` before sprint close: When running `/test run` before sprint close:
1. **Identify sprint files** - Files changed in the current sprint (via git diff against development) 1. **Identify sprint files** - Files changed in the current sprint (via git diff against development)
2. **Check test coverage** - Report which sprint files have tests and which don't 2. **Check test coverage** - Report which sprint files have tests and which don't
@@ -125,31 +125,31 @@ When running `/pm-test run` before sprint close:
### Run all tests ### Run all tests
``` ```
/pm-test run /test run
``` ```
Detects framework, runs full test suite, reports results. Detects framework, runs full test suite, reports results.
### Run with coverage ### Run with coverage
``` ```
/pm-test run --coverage /test run --coverage
``` ```
Same as above plus coverage percentage per file. Same as above plus coverage percentage per file.
### Generate tests for a specific file ### Generate tests for a specific file
``` ```
/pm-test gen src/auth/jwt_service.py /test gen src/auth/jwt_service.py
``` ```
Analyzes the file, generates a test file at `tests/test_jwt_service.py`. Analyzes the file, generates a test file at `tests/test_jwt_service.py`.
### Generate specific test type ### Generate specific test type
``` ```
/pm-test gen src/api/routes/auth.py --type=integration /test gen src/api/routes/auth.py --type=integration
``` ```
Generates integration tests (request/response patterns) instead of unit tests. Generates integration tests (request/response patterns) instead of unit tests.
### Generate with specific framework ### Generate with specific framework
``` ```
/pm-test gen src/components/Card.jsx --framework=vitest /test gen src/components/Card.jsx --framework=vitest
``` ```
Uses Vitest instead of auto-detected framework. Uses Vitest instead of auto-detected framework.
@@ -161,7 +161,7 @@ Uses Vitest instead of auto-detected framework.
|----------|----------| |----------|----------|
| No test framework detected | List what was checked, ask user to specify test command | | No test framework detected | List what was checked, ask user to specify test command |
| Tests fail | Report failures clearly, recommend "TESTS MUST PASS before sprint close" | | Tests fail | Report failures clearly, recommend "TESTS MUST PASS before sprint close" |
| No tests exist for sprint files | Warn with file list, offer to generate with `/pm-test gen` | | No tests exist for sprint files | Warn with file list, offer to generate with `/test gen` |
| External services required | Ask for confirmation before running tests that need database/API | | External services required | Ask for confirmation before running tests that need database/API |
| Mixed framework project | Detect all frameworks, ask which to run or run all | | Mixed framework project | Detect all frameworks, ask which to run or run all |

View File

@@ -1,116 +0,0 @@
---
name: batch-execution
description: Batch MCP API execution to eliminate redundant skill reloading between repetitive operations
---
# Batch Execution Pattern
## Purpose
Separate cognitive work (analysis, planning, decision-making) from mechanical API execution (issue creation, dependency setup, status updates). Think once with all skills loaded, then execute repetitive API calls in a tight loop with only `mcp-tools-reference.md` needed.
## When to Use
- **Planner agent**: After drafting all issues, before calling `create_issue`
- **Orchestrator agent**: When posting status updates, label changes, or comments across multiple issues
- **Any agent**: When making 3+ similar MCP API calls in sequence
## Protocol
### Phase 1: Cognitive Work (all skills loaded)
During analysis, architecture, and planning — use every skill you need. Read files, think deeply, ask questions, resolve ambiguity. This is where the full skill set pays for itself.
**Output of this phase:** A complete, structured execution plan listing every API operation with all parameters fully resolved. No ambiguity, no placeholders that require re-analysis.
### Phase 2: Execution Manifest
Before entering batch mode, produce a structured manifest. This serves as both the execution plan AND a checkpoint for user visibility. Format:
```
## Execution Manifest
### Issue Creation (N items)
1. `create_issue` — title: "[Sprint XX] feat: ..." | labels: [...] | milestone: N
2. `create_issue` — title: "[Sprint XX] fix: ..." | labels: [...] | milestone: N
...
### Dependency Setup (N items)
1. `create_issue_dependency` — issue: $1 depends_on: $2
...
### Milestone Assignment (N items)
1. `update_issue` — issue: $1 milestone: N
...
### Status/Label Updates (N items)
1. `update_issue` — issue: #N labels: [add "Status/In-Progress"]
...
```
Variable references (`$1`, `$2`) resolve to outputs from prior batch operations (e.g., `$1` = issue number returned by first `create_issue`).
### Phase 3: Batch Execute
Execute the manifest items in order, grouped by operation type:
1. **All `create_issue` calls** — collect returned issue numbers
2. **Resolve variable references** — map `$1` → actual issue #45, `$2`#46, etc.
3. **All `create_issue_dependency` calls** — using resolved numbers
4. **All milestone assignments** — if not done during creation
5. **All status/label updates** — using resolved numbers
**Rules during batch execution:**
- Do NOT re-read any skill files between calls
- Do NOT re-analyze or second-guess the plan — it was finalized in Phase 1
- Do NOT add commentary between individual API calls — batch them silently
- DO track success/failure per operation
- DO continue on individual failures (log and report at end)
- DO post a progress summary after each batch group completes
### Phase 4: Batch Report
After all operations complete, report results:
```
## Batch Execution Complete
### Issue Creation: 6/6 ✓
- #45: [Sprint 19] feat: JWT generation
- #46: [Sprint 19] feat: Login endpoint
- #47: [Sprint 19] feat: Token refresh
- #48: [Sprint 19] test: Auth unit tests
- #49: [Sprint 19] docs: API documentation
- #50: [Sprint 19] chore: CI pipeline
### Dependencies: 4/4 ✓
- #46 depends on #45
- #47 depends on #45
- #48 depends on #46, #47
- #49 depends on #46
### Milestone Assignment: 6/6 ✓
- All issues assigned to Sprint 19
### Failures: 0
```
## Error Handling
| Error | Action |
|-------|--------|
| Single API call fails | Log error, continue with next item |
| Dependency target missing (prior create failed) | Skip dependency, log as blocked |
| All creates fail | STOP batch, report connection/auth issue |
| Partial milestone assignment | Report which issues weren't assigned |
After batch completes, if any failures: present failure summary and ask user whether to retry failed operations or continue.
## Anti-Patterns
| Wrong | Why | Right |
|-------|-----|-------|
| Re-reading `mcp-tools-reference.md` before each API call | Wastes tokens; you already know the tool signatures | Read once, execute many |
| Interleaving analysis with API calls | Forces full context per call | Finish ALL analysis first, THEN batch execute |
| Calling create_issue one at a time with commentary between | Token overhead per turn | Queue all creates, execute in tight loop |
| Stopping the batch to ask user about individual items | Defeats batching purpose | Complete batch, report results, ask about failures |

View File

@@ -84,38 +84,21 @@ Think through:
- What dependencies exist? - What dependencies exist?
- What are potential risks? - What are potential risks?
### 8. Draft Issue Specifications (DO NOT create yet) ### 8. Create Gitea Issues
Follow `skills/issue-conventions.md` and `skills/task-sizing.md` to prepare the complete specification for ALL issues. **Do NOT call `create_issue` yet.** Follow `skills/issue-conventions.md` and `skills/task-sizing.md`:
- Use proper title format: `[Sprint XX] <type>: <description>`
- Include wiki implementation reference
- Apply appropriate labels using `suggest_labels`
- **Refuse to create L/XL tasks without breakdown**
For each issue, resolve completely: ### 9. Set Up Dependencies
- Title: `[Sprint XX] <type>: <description>`
- Body: Full description with wiki reference, acceptance criteria, technical notes
- Labels: Use `suggest_labels` to determine, then finalize the list
- Milestone: The sprint milestone (create first if needed)
- Dependencies: Which issues depend on which (by draft order index)
**Refuse to create L/XL tasks without breakdown.** ```python
create_issue_dependency(repo="org/repo", issue_number=46, depends_on=45)
```
Output: A complete execution manifest per `skills/batch-execution.md` Phase 2 format. ### 10. Create or Select Milestone
### 8a. Batch Execute Issue Creation
Follow `skills/batch-execution.md` Phase 3:
1. Execute all `create_issue` calls — collect returned issue numbers
2. Execute all `create_issue_dependency` calls — using collected numbers
3. Assign all issues to milestone
4. Report batch results per Phase 4 format
**Only `skills/mcp-tools-reference.md` is needed for this step.** Do NOT re-read other skill files.
### 9. (Merged into Step 8a)
Dependencies are now created as part of the batch execution in Step 8a. No separate step needed.
### 10. Create or Select Milestone (before batch)
**This step runs BEFORE Step 8a** — the milestone must exist before batch issue creation can assign to it.
```python ```python
create_milestone( create_milestone(
@@ -126,7 +109,7 @@ create_milestone(
) )
``` ```
If milestone already exists, select it. Record the milestone ID for use in the batch manifest. Assign issues to the milestone.
### 11. Request Sprint Approval ### 11. Request Sprint Approval

View File

@@ -12,7 +12,7 @@ Defines code review criteria, severity classification, and output format.
## When to Use ## When to Use
- **Code Reviewer agent**: During pre-sprint-close review - **Code Reviewer agent**: During pre-sprint-close review
- **Commands**: `/pm-review` - **Commands**: `/review`
--- ---

View File

@@ -1,6 +1,6 @@
# Setup Workflows # Setup Workflows
Shared workflows for the `/pm-setup` command modes. Shared workflows for the `/setup` command modes.
## Mode Detection Logic ## Mode Detection Logic

View File

@@ -20,7 +20,7 @@ Defines the valid sprint lifecycle states and transitions, enforced via labels o
``` ```
idle -> Sprint/Planning -> Sprint/Executing -> Sprint/Reviewing -> idle idle -> Sprint/Planning -> Sprint/Executing -> Sprint/Reviewing -> idle
(sprint-plan) (sprint-start) (pm-review) (sprint-close) (sprint-plan) (sprint-start) (review) (sprint-close)
``` ```
## State Labels ## State Labels
@@ -30,7 +30,7 @@ idle -> Sprint/Planning -> Sprint/Executing -> Sprint/Reviewing -> idle
| *(no Sprint/* label)* | `/sprint-close` or initial state | Idle - no active sprint phase | | *(no Sprint/* label)* | `/sprint-close` or initial state | Idle - no active sprint phase |
| `Sprint/Planning` | `/sprint-plan` | Planning in progress | | `Sprint/Planning` | `/sprint-plan` | Planning in progress |
| `Sprint/Executing` | `/sprint-start` | Execution in progress | | `Sprint/Executing` | `/sprint-start` | Execution in progress |
| `Sprint/Reviewing` | `/pm-review` | Code review in progress | | `Sprint/Reviewing` | `/review` | Code review in progress |
**Rule:** Only ONE `Sprint/*` label may exist on a milestone at a time. Setting a new one removes the previous one. **Rule:** Only ONE `Sprint/*` label may exist on a milestone at a time. Setting a new one removes the previous one.
@@ -42,8 +42,8 @@ idle -> Sprint/Planning -> Sprint/Executing -> Sprint/Reviewing -> idle
|---------|---------------|------------|----------------| |---------|---------------|------------|----------------|
| `/sprint-plan` | idle (no Sprint/* label) | `Sprint/Planning` | Warn: "Sprint is in [state]. Run `/sprint-close` first or use `--force` to re-plan." Allow with `--force`. | | `/sprint-plan` | idle (no Sprint/* label) | `Sprint/Planning` | Warn: "Sprint is in [state]. Run `/sprint-close` first or use `--force` to re-plan." Allow with `--force`. |
| `/sprint-start` | `Sprint/Planning` | `Sprint/Executing` | Warn: "Expected Sprint/Planning state but found [state]. Run `/sprint-plan` first or use `--force`." Allow with `--force`. | | `/sprint-start` | `Sprint/Planning` | `Sprint/Executing` | Warn: "Expected Sprint/Planning state but found [state]. Run `/sprint-plan` first or use `--force`." Allow with `--force`. |
| `/pm-review` | `Sprint/Executing` | `Sprint/Reviewing` | Warn: "Expected Sprint/Executing state but found [state]." Allow with `--force`. | | `/review` | `Sprint/Executing` | `Sprint/Reviewing` | Warn: "Expected Sprint/Executing state but found [state]." Allow with `--force`. |
| `/sprint-close` | `Sprint/Reviewing` | Remove all Sprint/* labels (idle) | Warn: "Expected Sprint/Reviewing state but found [state]. Run `/pm-review` first or use `--force`." Allow with `--force`. | | `/sprint-close` | `Sprint/Reviewing` | Remove all Sprint/* labels (idle) | Warn: "Expected Sprint/Reviewing state but found [state]. Run `/review` first or use `--force`." Allow with `--force`. |
| `/sprint-status` | Any | No change (read-only) | Display current state in output. | | `/sprint-status` | Any | No change (read-only) | Display current state in output. |
--- ---

View File

@@ -1,115 +0,0 @@
---
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

@@ -41,12 +41,12 @@ For commands that don't invoke a specific agent phase:
| Command | Phase Emoji | Phase Name | | Command | Phase Emoji | Phase Name |
|---------|-------------|------------| |---------|-------------|------------|
| `/sprint-status` | 📊 Chart | STATUS | | `/sprint-status` | 📊 Chart | STATUS |
| `/pm-setup` | ⚙️ Gear | SETUP | | `/setup` | ⚙️ Gear | SETUP |
| `/pm-debug` | 🐛 Bug | DEBUG | | `/debug` | 🐛 Bug | DEBUG |
| `/labels-sync` | 🏷️ Label | LABELS | | `/labels-sync` | 🏷️ Label | LABELS |
| `/suggest-version` | 📦 Package | VERSION | | `/suggest-version` | 📦 Package | VERSION |
| `/proposal-status` | 📋 Clipboard | PROPOSALS | | `/proposal-status` | 📋 Clipboard | PROPOSALS |
| `/pm-test` | 🧪 Flask | TEST | | `/test` | 🧪 Flask | TEST |
| `/rfc` | 📄 Document | RFC [Sub-Command] | | `/rfc` | 📄 Document | RFC [Sub-Command] |
--- ---
@@ -99,22 +99,3 @@ 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

@@ -10,12 +10,12 @@ Add this snippet to your project's CLAUDE.md to enable viz-platform capabilities
This project uses viz-platform for Dash Mantine Components dashboards. This project uses viz-platform for Dash Mantine Components dashboards.
### Available Commands ### Available Commands
- `/viz-component {name}` - Inspect DMC component props - `/component {name}` - Inspect DMC component props
- `/viz-chart {type}` - Create Plotly charts (line, bar, scatter, pie, area, histogram, box, heatmap, sunburst, treemap) - `/chart {type}` - Create Plotly charts (line, bar, scatter, pie, area, histogram, box, heatmap, sunburst, treemap)
- `/viz-dashboard {template}` - Create layouts (basic, sidebar, tabs, split) - `/dashboard {template}` - Create layouts (basic, sidebar, tabs, split)
- `/viz-theme {name}` - Apply a theme - `/theme {name}` - Apply a theme
- `/viz-theme-new {name}` - Create custom theme - `/theme-new {name}` - Create custom theme
- `/viz-theme-css {name}` - Export theme as CSS - `/theme-css {name}` - Export theme as CSS
### MCP Tools Available ### MCP Tools Available
- **DMC**: list_components, get_component_props, validate_component - **DMC**: list_components, get_component_props, validate_component
@@ -44,13 +44,13 @@ If using with data-platform, add this section:
## Data + Visualization Workflow ## Data + Visualization Workflow
### Data Loading (data-platform) ### Data Loading (data-platform)
- `/data-ingest {file}` - Load CSV, Parquet, or JSON - `/ingest {file}` - Load CSV, Parquet, or JSON
- `/data-schema {table}` - View database schema - `/schema {table}` - View database schema
- `/data-profile {data_ref}` - Statistical summary - `/profile {data_ref}` - Statistical summary
### Visualization (viz-platform) ### Visualization (viz-platform)
- `/viz-chart {type}` - Create charts from loaded data - `/chart {type}` - Create charts from loaded data
- `/viz-dashboard {template}` - Build dashboard layouts - `/dashboard {template}` - Build dashboard layouts
### Workflow Pattern ### Workflow Pattern
1. Load data: `read_csv("data.csv")` → returns `data_ref` 1. Load data: `read_csv("data.csv")` → returns `data_ref`

View File

@@ -41,5 +41,5 @@ accessibility_validate_theme(theme_name="corporate")
## Related Commands ## Related Commands
- `/viz-theme-new {name}` - Create accessible theme - `/theme-new {name}` - Create accessible theme
- `/viz-chart {type}` - Create chart (check colors after) - `/chart {type}` - Create chart (check colors after)

View File

@@ -2,7 +2,7 @@
description: Configure responsive breakpoints for dashboard layouts description: Configure responsive breakpoints for dashboard layouts
--- ---
# Viz Breakpoints # Configure Breakpoints
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Configure responsive breakpoints for mobile-first design across screen sizes.
## Usage ## Usage
``` ```
/viz-breakpoints {layout_ref} /breakpoints {layout_ref}
``` ```
## Arguments ## Arguments
@@ -30,7 +30,7 @@ Configure responsive breakpoints for mobile-first design across screen sizes.
## Workflow ## Workflow
1. **User invokes**: `/viz-breakpoints my-dashboard` 1. **User invokes**: `/breakpoints my-dashboard`
2. **Agent asks**: Which breakpoints to customize? (shows current settings) 2. **Agent asks**: Which breakpoints to customize? (shows current settings)
3. **Agent asks**: Mobile column count? (xs, typically 1-2) 3. **Agent asks**: Mobile column count? (xs, typically 1-2)
4. **Agent asks**: Tablet column count? (md, typically 4-6) 4. **Agent asks**: Tablet column count? (md, typically 4-6)
@@ -39,5 +39,5 @@ Configure responsive breakpoints for mobile-first design across screen sizes.
## Related Commands ## Related Commands
- `/viz-dashboard {template}` - Create layout with default breakpoints - `/dashboard {template}` - Create layout with default breakpoints
- `/viz-theme {name}` - Theme includes default spacing values - `/theme {name}` - Theme includes default spacing values

View File

@@ -2,7 +2,7 @@
description: Export a Plotly chart to PNG, SVG, or PDF format description: Export a Plotly chart to PNG, SVG, or PDF format
--- ---
# Viz Chart Export # Export Chart
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Export a Plotly chart to static image formats.
## Usage ## Usage
``` ```
/viz-chart-export {format} /chart-export {format}
``` ```
## Arguments ## Arguments
@@ -38,5 +38,5 @@ Requires `kaleido` package: `pip install kaleido`
## Related Commands ## Related Commands
- `/viz-chart {type}` - Create a chart - `/chart {type}` - Create a chart
- `/viz-theme {name}` - Apply theme before export - `/theme {name}` - Apply theme before export

View File

@@ -2,7 +2,7 @@
description: Create a Plotly chart with theme integration description: Create a Plotly chart with theme integration
--- ---
# Viz Chart # Create Chart
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Create a Plotly chart with automatic theme token application.
## Usage ## Usage
``` ```
/viz-chart {type} /chart {type}
``` ```
## Arguments ## Arguments
@@ -36,6 +36,6 @@ chart_create(chart_type="line", data_ref="df", x="date", y="value", theme=None)
## Related Commands ## Related Commands
- `/viz-chart-export {format}` - Export chart to image - `/chart-export {format}` - Export chart to image
- `/viz-theme {name}` - Apply theme to charts - `/theme {name}` - Apply theme to charts
- `/viz-dashboard` - Create layout with charts - `/dashboard` - Create layout with charts

View File

@@ -2,7 +2,7 @@
description: Inspect Dash Mantine Component props and validation description: Inspect Dash Mantine Component props and validation
--- ---
# Viz Component # Inspect Component
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Inspect a DMC component's props, types, and defaults.
## Usage ## Usage
``` ```
/viz-component {name} /component {name}
``` ```
## Arguments ## Arguments
@@ -38,5 +38,5 @@ validate_component(component="Button", props={"variant": "filled"})
## Related Commands ## Related Commands
- `/viz-chart {type}` - Create charts - `/chart {type}` - Create charts
- `/viz-dashboard {template}` - Create layouts - `/dashboard {template}` - Create layouts

View File

@@ -2,7 +2,7 @@
description: Create a dashboard layout with the layout-builder agent description: Create a dashboard layout with the layout-builder agent
--- ---
# Viz Dashboard # Create Dashboard
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Create a dashboard layout with filters, grids, and sections.
## Usage ## Usage
``` ```
/viz-dashboard {template} /dashboard {template}
``` ```
## Arguments ## Arguments
@@ -37,5 +37,5 @@ Activates **layout-builder** agent which orchestrates:
## Related Commands ## Related Commands
- `/viz-breakpoints {layout}` - Configure responsive breakpoints - `/breakpoints {layout}` - Configure responsive breakpoints
- `/viz-chart {type}` - Add charts to layout - `/chart {type}` - Add charts to layout

View File

@@ -61,8 +61,8 @@ Each finding includes:
## Related Commands ## Related Commands
- `/design-gate` - Binary pass/fail for sprint execution (no detailed report) - `/design-gate` - Binary pass/fail for sprint execution (no detailed report)
- `/viz-component` - Inspect individual DMC component props - `/component` - Inspect individual DMC component props
- `/viz-theme` - Check active theme configuration - `/theme` - Check active theme configuration
## Requirements ## Requirements

View File

@@ -2,7 +2,7 @@
description: Interactive setup wizard for viz-platform plugin description: Interactive setup wizard for viz-platform plugin
--- ---
# Viz Setup # Viz-Platform Setup Wizard
## Visual Output ## Visual Output
@@ -41,5 +41,5 @@ Verify MCP server loads, display summary, prompt session restart.
## Related Commands ## Related Commands
- `/viz-component {name}` - Inspect component props - `/component {name}` - Inspect component props
- `/viz-chart {type}` - Create a chart - `/chart {type}` - Create a chart

View File

@@ -2,7 +2,7 @@
description: Export a theme as CSS custom properties description: Export a theme as CSS custom properties
--- ---
# Viz Theme CSS # Export Theme as CSS
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Export a theme's design tokens as CSS custom properties.
## Usage ## Usage
``` ```
/viz-theme-css {name} /theme-css {name}
``` ```
## Arguments ## Arguments
@@ -38,5 +38,5 @@ Use cases: external CSS, design handoff, documentation, other frameworks.
## Related Commands ## Related Commands
- `/viz-theme {name}` - Apply a theme - `/theme {name}` - Apply a theme
- `/viz-theme-new {name}` - Create a new theme - `/theme-new {name}` - Create a new theme

View File

@@ -2,7 +2,7 @@
description: Create a new custom theme with design tokens description: Create a new custom theme with design tokens
--- ---
# Viz Theme New # Create New Theme
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Create a new custom theme with specified design tokens.
## Usage ## Usage
``` ```
/viz-theme-new {name} /theme-new {name}
``` ```
## Arguments ## Arguments
@@ -37,5 +37,5 @@ theme_validate(theme_name="corporate")
## Related Commands ## Related Commands
- `/viz-theme {name}` - Apply a theme - `/theme {name}` - Apply a theme
- `/viz-theme-css {name}` - Export theme as CSS - `/theme-css {name}` - Export theme as CSS

View File

@@ -2,7 +2,7 @@
description: Apply an existing theme to the current context description: Apply an existing theme to the current context
--- ---
# Viz Theme # Apply Theme
## Skills to Load ## Skills to Load
- skills/mcp-tools-reference.md - skills/mcp-tools-reference.md
@@ -21,7 +21,7 @@ Apply an existing theme to activate its design tokens.
## Usage ## Usage
``` ```
/viz-theme {name} /theme {name}
``` ```
## Arguments ## Arguments
@@ -41,5 +41,5 @@ When activated, new charts/layouts automatically use theme tokens.
## Related Commands ## Related Commands
- `/viz-theme-new {name}` - Create a new theme - `/theme-new {name}` - Create a new theme
- `/viz-theme-css {name}` - Export theme as CSS - `/theme-css {name}` - Export theme as CSS

View File

@@ -1,55 +0,0 @@
#!/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"
echo "Switched to LEAN profile (6 plugins, 1 MCP server)"
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"
echo "Switched to FULL profile (12 plugins, 5 MCP servers)"
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