82 Commits

Author SHA1 Message Date
7d0b6050f9 Merge pull request 'development' (#428) from development into main
Reviewed-on: #428
2026-02-04 16:01:15 +00:00
6209ab9597 Merge pull request 'feat(projman): wire --tokens flag into /sprint-status' (#427) from feat/sprint-status-tokens-flag into development
Reviewed-on: #427
2026-02-04 16:00:58 +00:00
2c41ca338d feat(projman): wire --tokens flag into /sprint-status
Add token budget reporting option to sprint-status command:
- Update description to mention token budget report
- Add token-budget-report.md to skills list
- Add --tokens invocation option
- Add workflow section for generating token report

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

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

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

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

All command references now use v7.0.0 namespaced names.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:18:19 -05:00
ab3847c656 Merge pull request 'development' (#424) from development into main
Reviewed-on: #424
2026-02-04 02:53:11 +00:00
76105e98e0 Merge pull request 'refactor!: Command namespace rename (v7.0.0 breaking change)' (#423) from refactor/command-namespace-rename into development
Reviewed-on: #423
2026-02-04 02:52:53 +00:00
da628a3774 docs: fix remaining stale command references in UPDATING.md and CONFIGURATION.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:31:29 -05:00
2d6fce9285 chore: bump version to 7.0.0, add CHANGELOG entry
BREAKING CHANGE: command namespace rename - see CHANGELOG.md

Merged unreleased 6.0.0 content (plan-then-batch optimization) into 7.0.0.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:21:53 -05:00
a04a3c7a60 docs: update all cross-cutting documentation for v7.0.0 namespace rename
Updated:
- docs/COMMANDS-CHEATSHEET.md - command reference table + all workflow examples
- docs/CONFIGURATION.md - setup commands + plugin config table
- README.md - all plugin command lists
- CLAUDE.md - command reference tables

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:19:59 -05:00
4ba38eb620 refactor: update internal command references in all plugin files
Updated:
- projman: 4 commands + 4 skills + integration snippet
- git-flow: 4 commands + 3 skills + integration snippet
- pr-review: 1 command cross-reference
- cmdb-assistant: 1 command + 1 skill
- data-platform: 8 commands + integration snippet
- viz-platform: 11 commands + integration snippet
- contract-validator: 1 command + 1 skill + 1 agent

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:16:00 -05:00
71f1f3239a refactor: rename command files for namespace consistency
BREAKING CHANGE: All generic command names now prefixed with plugin namespace.
See CHANGELOG.md v7.0.0 for complete rename map.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:07:18 -05:00
49891c1e0c Merge pull request 'development' (#422) from development into main
Reviewed-on: #422
2026-02-04 01:09:37 +00:00
c6182a3fda Merge pull request 'feat(projman): add plan-then-batch skill optimization' (#421) from feat/plan-then-batch-optimization into development
Reviewed-on: #421
2026-02-04 00:59:03 +00:00
0e70156e26 feat(projman): add plan-then-batch skill optimization
Separate cognitive work from mechanical API execution to reduce
skill-related token consumption by ~76-83% during sprint workflows.

Changes:
- Add batch-execution.md skill with 4-phase protocol
- Promote mcp-tools-reference and batch-execution to frontmatter
  for planner and orchestrator agents (auto-injected, zero re-read)
- Replace "Skills to Load" with phase-based "Skill Loading Protocol"
- Restructure planning-workflow.md Steps 8-10 for batch execution
- Update agent matrix in CLAUDE.md and docs/CONFIGURATION.md
- Add Phase-Based Skill Loading documentation section
- Clean up .gitignore (transient files, dev symlinks)

Token impact:
- 6-issue sprint planning: ~76% reduction
- 10-issue sprint planning: ~80% reduction
- 8-issue status updates: ~83% reduction

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 19:57:10 -05:00
01c225540b Merge pull request 'development' (#420) from development into main
Reviewed-on: #420
2026-02-03 20:48:48 +00:00
52c5be32c4 Merge pull request 'chore: release v5.10.0' (#419) from chore/release-5.10.0 into development
Reviewed-on: #419
2026-02-03 20:48:33 +00:00
46e83bc711 chore: release v5.10.0
- NetBox MCP: Module-based tool filtering for token optimization
- Gitea MCP: Standardized build backend to setuptools
- cmdb-assistant: Fixed documentation tool name references

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:11:15 -05:00
c0443a7f36 Merge pull request 'development' (#418) from development into main
Reviewed-on: #418
2026-02-03 20:07:40 +00:00
c4dd4ee25d Merge pull request 'fix(gitea): standardize build backend to setuptools' (#417) from fix/gitea-mcp-setuptools into development
Reviewed-on: #417
2026-02-03 20:07:24 +00:00
184ab48933 fix(gitea): standardize build backend to setuptools
Replace hatchling with setuptools to match all other MCP servers
(contract-validator, viz-platform, data-platform).

Changes:
- build-system: hatchling → setuptools>=61.0
- license: string → PEP 639 format {text = "MIT"}
- Remove redundant License classifier
- Add [tool.setuptools.packages.find] config
- Add [tool.pytest.ini_options] for consistency

Verified: pip install -e . succeeds, 36 tools registered, 64 tests pass.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:05:56 -05:00
a741ec3f88 Merge pull request 'development' (#416) from development into main
Reviewed-on: #416
2026-02-03 19:47:50 +00:00
f1732f07c1 Merge pull request 'feat(gitea): add pip-installable packaging for external consumption' (#415) from feat/gitea-mcp-packaging into development
Reviewed-on: #415
2026-02-03 19:47:33 +00:00
f9df3b57ea Merge pull request 'development' (#414) from development into main
Reviewed-on: #414
2026-02-03 19:23:55 +00:00
b0e6d738fa Merge pull request 'fix(gitea): fix 15 failing tests and update documentation' (#413) from fix/gitea-mcp-tests-docs into development
Reviewed-on: #413
2026-02-03 19:23:41 +00:00
9044fe28ec fix(gitea): fix 15 failing tests and update documentation
Test Fixes:
- Fix mock_config fixture to use 'owner/repo' format (was separate fields)
- Update test_client_initialization to match current client API
- Add required 'org' argument to get_org_labels, list_repos, aggregate_issues tests
- Update error message assertion in test_no_repo_specified_error
- Fix test_create_issue to mock is_org_repo and label resolution
- Update aggregate_issues tests in test_issues.py with org argument

Documentation Updates:
- Expand tools table from 8 to 36 tools (organized by category)
- Update directory structure to show all 6 tool files
- Remove unused GITEA_OWNER from configuration docs
- Add automatic repository detection documentation
- Add project directory detection strategies
- Update test count from 42 to 64
- Create CHANGELOG.md with full version history

All 64 tests now pass. No production code changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:22:02 -05:00
c37107fc42 feat(gitea): add pip-installable packaging for external consumption
Extract tool definitions and dispatcher from server.py into tool_registry.py
to enable transport-agnostic reuse. External consumers (e.g., HTTP transport
in gitea-mcp-remote) can now import and use the Gitea MCP tools without
duplicating code.

Changes:
- Create pyproject.toml with PEP 621 compliant package manifest (hatchling)
- Create tool_registry.py with get_tool_definitions() and create_tool_dispatcher()
- Refactor server.py to use registry (1100 -> 93 lines)
- Update __init__.py with package exports and __version__

The tool_filter parameter enables selective tool exposure for remote servers.
Stdio transport behavior is unchanged - all 36 tools still work identically.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 13:57:59 -05:00
841ce67dae Merge pull request 'development' (#412) from development into main
Reviewed-on: #412
2026-02-03 17:12:09 +00:00
da0be51946 Merge pull request 'feat(netbox): add module-based tool filtering for token optimization' (#411) from feat/netbox-module-filtering into development
Reviewed-on: #411
2026-02-03 17:11:44 +00:00
d9d80d77cb feat(netbox): add module-based tool filtering for token optimization
Reduces NetBox MCP context token consumption from ~19,810 tokens (182 tools)
to ~4,500 tokens (~43 tools) by enabling environment-variable-driven module
filtering.

Key changes:
- Add NETBOX_ENABLED_MODULES env var to config.py
- Filter tool registration based on enabled modules in server.py
- Conditional tool class instantiation for memory efficiency
- Routing guard with clear error messages for disabled modules
- Startup logging shows enabled modules and tool count

Also fixes documentation referencing incorrect tool names:
- virtualization_* → virt_* in cmdb-assistant docs
- wireless_* → wlan_* in README
- circuits_list_circuit_terminations → circ_list_terminations

Recommended config for cmdb-assistant users:
NETBOX_ENABLED_MODULES=dcim,ipam,virtualization,extras

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:08:46 -05:00
3557f17177 Merge pull request 'development' (#410) from development into main
Reviewed-on: #410
2026-02-03 16:11:00 +00:00
a005610a37 Merge pull request 'feat(agents): add permissionMode, disallowedTools, skills frontmatter to all 25 agents' (#409) from feat/agent-frontmatter-hardening-v3 into development
Reviewed-on: #409
2026-02-03 16:10:25 +00:00
19ba80191f 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:08:49 -05:00
8f9ba64688 Merge pull request 'development' (#408) from development into main
Reviewed-on: #408
2026-02-03 07:42:17 +00:00
e35e22cffb Merge pull request 'chore: release v5.9.0' (#407) from release/v5.9.0 into development
Reviewed-on: #407
2026-02-03 07:41:20 +00:00
61907b78db chore: release v5.9.0
- Plugin installation scripts for consumer projects
- MCP server mapping via mcp_servers field in plugin.json
- CLAUDE.md section markers for install/uninstall
- Agent model selection (25 agents with model frontmatter)
- Agent frontmatter standardization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 02:38:31 -05:00
0ea30e0d75 Merge pull request 'development' (#406) from development into main
Reviewed-on: #406
2026-02-03 07:15:10 +00:00
c530f568ed Merge pull request 'development' (#404) from development into main
Reviewed-on: #404
2026-02-03 03:40:17 +00:00
027ae660c4 Merge pull request 'development' (#402) from development into main
Reviewed-on: #402
2026-02-03 03:15:17 +00:00
5e20c6b6ef Merge pull request 'development' (#400) from development into main
Reviewed-on: #400
2026-02-03 02:58:24 +00:00
5e20a4a229 Merge pull request 'development' (#398) from development into main
Reviewed-on: #398
2026-02-03 01:40:43 +00:00
56c9a38813 Merge pull request 'development' (#396) from development into main
Reviewed-on: #396
2026-02-03 00:38:17 +00:00
67d769e9e5 Merge pull request 'development' (#394) from development into main
Reviewed-on: #394
2026-02-02 22:03:39 +00:00
3d2f14b0ab Merge pull request 'development' (#392) from development into main
Reviewed-on: #392
2026-02-02 21:03:07 +00:00
b76e53c215 Merge pull request 'development' (#390) from development into main
Reviewed-on: #390
2026-02-02 19:30:43 +00:00
3d96f6b505 Merge pull request 'development' (#388) from development into main
Reviewed-on: #388
2026-02-02 19:10:30 +00:00
edee44088c Merge pull request 'development' (#385) from development into main
Reviewed-on: #385
2026-02-02 16:49:08 +00:00
938ddd7b69 Merge pull request 'development' (#383) from development into main
Reviewed-on: #383
2026-02-02 16:27:41 +00:00
aa68883f87 Merge pull request 'development' (#381) from development into main
Reviewed-on: #381
2026-02-02 14:57:54 +00:00
dd36a79bcb Merge pull request 'development' (#379) from development into main
Reviewed-on: #379
2026-02-02 14:50:21 +00:00
091e3d25f3 Merge pull request 'development' (#372) from development into main
Reviewed-on: #372
2026-02-02 00:11:11 +00:00
b605a2de5e Merge pull request 'development' (#354) from development into main
Reviewed-on: #354
2026-02-01 19:33:57 +00:00
4aa0baa2a6 Merge pull request 'development' (#352) from development into main
Reviewed-on: #352
2026-02-01 19:10:34 +00:00
e3db084195 Merge pull request 'development' (#349) from development into main
Reviewed-on: #349
2026-02-01 18:49:22 +00:00
2a92211b28 Merge pull request 'development' (#347) from development into main
Reviewed-on: #347
2026-01-31 21:15:06 +00:00
de6cba5f31 Merge pull request 'development' (#345) from development into main
Reviewed-on: #345
2026-01-31 19:28:42 +00:00
31dcf0338c Merge pull request 'development' (#343) from development into main
Reviewed-on: #343
2026-01-30 23:15:45 +00:00
569dc9a8f2 Merge pull request 'development' (#341) from development into main
Reviewed-on: #341
2026-01-30 23:07:33 +00:00
7217790143 Merge pull request 'development' (#339) from development into main
Reviewed-on: #339
2026-01-30 22:35:42 +00:00
97159274c7 Merge pull request 'development' (#337) from development into main
Reviewed-on: #337
2026-01-30 20:04:20 +00:00
5cf4b4a78c Merge pull request 'development' (#335) from development into main
Reviewed-on: #335
2026-01-30 18:24:55 +00:00
96a612a1f4 Merge pull request 'development' (#333) from development into main
Reviewed-on: #333
2026-01-30 17:15:50 +00:00
47a3a8b48a Merge pull request 'development' (#330) from development into main
Reviewed-on: #330
2026-01-30 16:50:26 +00:00
1b75b10fec Merge pull request 'development' (#328) from development into main
Reviewed-on: #328
2026-01-30 16:36:27 +00:00
e925f80252 Merge pull request 'development' (#326) from development into main
Reviewed-on: #326
2026-01-29 23:10:38 +00:00
b1070aac52 Merge pull request 'development' (#320) from development into main
Reviewed-on: #320
2026-01-29 17:13:12 +00:00
d2b6560fba Merge pull request 'development' (#318) from development into main
Reviewed-on: #318
2026-01-29 17:00:15 +00:00
4b1c561bb6 Merge pull request 'development' (#316) from development into main
Reviewed-on: #316
2026-01-29 03:20:50 +00:00
786d3c0013 Merge pull request 'development' (#314) from development into main
Reviewed-on: #314
2026-01-29 03:13:15 +00:00
59cc67f857 Merge pull request 'development' (#311) from development into main
Reviewed-on: #311
2026-01-29 03:03:54 +00:00
6613ef1d67 Merge pull request 'development' (#301) from development into main
Reviewed-on: #301
2026-01-29 02:26:42 +00:00
6619d0a2fb Merge pull request 'development' (#299) from development into main
Reviewed-on: #299
2026-01-29 02:19:11 +00:00
dc08ce1439 Merge pull request 'development' (#293) from development into main
Reviewed-on: #293
2026-01-29 01:42:49 +00:00
2173f3389a Merge pull request 'development' (#289) from development into main
Reviewed-on: #289
2026-01-28 22:49:18 +00:00
fab1345bcb Merge pull request 'development' (#286) from development into main
Reviewed-on: #286
2026-01-28 22:41:07 +00:00
36e6ac2dd0 Merge pull request 'development' (#283) from development into main
Reviewed-on: #283
2026-01-28 21:48:57 +00:00
3e0e779803 Merge pull request 'development' (#280) from development into main
Reviewed-on: #280
2026-01-28 20:37:52 +00:00
74198743ab Merge pull request 'development' (#271) from development into main
Reviewed-on: #271
2026-01-28 19:27:45 +00:00
d57bff184e Merge pull request 'development' (#265) from development into main
Reviewed-on: #265
2026-01-28 18:45:38 +00:00
84 changed files with 2498 additions and 1407 deletions

View File

@@ -6,7 +6,7 @@
},
"metadata": {
"description": "Project management plugins with Gitea and NetBox integrations",
"version": "5.8.0"
"version": "7.0.0"
},
"plugins": [
{

View File

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

View File

@@ -6,6 +6,159 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
### 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
### Added
- **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
---
## [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

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

View File

@@ -1,4 +1,4 @@
# Leo Claude Marketplace - v5.8.0
# Leo Claude Marketplace - v7.0.0
A collection of Claude Code plugins for project management, infrastructure automation, and development workflows.
@@ -12,6 +12,7 @@ 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.
- 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
- Lessons learned capture via Gitea Wiki
- Native issue dependencies with parallel execution
@@ -19,7 +20,7 @@ AI-guided sprint planning with full Gitea integration. Transforms a proven 15-sp
- Branch-aware security (development/staging/production)
- Pre-sprint-close code quality review and test verification
**Commands:** `/sprint-plan`, `/sprint-start`, `/sprint-status`, `/sprint-close`, `/labels-sync`, `/setup`, `/review`, `/test`, `/debug`, `/suggest-version`, `/proposal-status`, `/rfc`
**Commands:** `/sprint-plan`, `/sprint-start`, `/sprint-status`, `/sprint-close`, `/labels-sync`, `/pm-setup`, `/pm-review`, `/pm-test`, `/pm-debug`, `/suggest-version`, `/proposal-status`, `/rfc`
#### [git-flow](./plugins/git-flow) *NEW in v3.0.0*
**Git Workflow Automation**
@@ -32,7 +33,7 @@ Smart git operations with intelligent commit messages and branch management.
- Merge and cleanup automation
- Protected branch awareness
**Commands:** `/commit`, `/commit-push`, `/commit-merge`, `/commit-sync`, `/branch-start`, `/branch-cleanup`, `/git-status`, `/git-config`
**Commands:** `/git-commit`, `/git-commit-push`, `/git-commit-merge`, `/git-commit-sync`, `/branch-start`, `/branch-cleanup`, `/git-status`, `/git-config`
#### [pr-review](./plugins/pr-review) *NEW in v3.0.0*
**Multi-Agent PR Review**
@@ -44,7 +45,7 @@ Comprehensive pull request review using specialized agents.
- Actionable feedback with suggested fixes
- Gitea integration for automated review submission
**Commands:** `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff`, `/initial-setup`, `/project-init`, `/project-sync`
**Commands:** `/pr-review`, `/pr-summary`, `/pr-findings`, `/pr-diff`, `/pr-setup`, `/project-init`, `/project-sync`
#### [claude-config-maintainer](./plugins/claude-config-maintainer)
**CLAUDE.md and Settings Optimization**
@@ -64,7 +65,7 @@ Validate plugin marketplaces for command conflicts, tool overlaps, and broken ag
- Data flow validation for agent sequences
- Markdown or JSON reports with actionable suggestions
**Commands:** `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph`, `/initial-setup`
**Commands:** `/validate-contracts`, `/check-agent`, `/list-interfaces`, `/dependency-graph`, `/cv-setup`
### Productivity
@@ -107,7 +108,7 @@ Security vulnerability detection and code refactoring tools.
Full CRUD operations for network infrastructure management directly from Claude Code.
**Commands:** `/initial-setup`, `/cmdb-search`, `/cmdb-device`, `/cmdb-ip`, `/cmdb-site`, `/cmdb-audit`, `/cmdb-register`, `/cmdb-sync`, `/cmdb-topology`, `/change-audit`, `/ip-conflicts`
**Commands:** `/cmdb-setup`, `/cmdb-search`, `/cmdb-device`, `/cmdb-ip`, `/cmdb-site`, `/cmdb-audit`, `/cmdb-register`, `/cmdb-sync`, `/cmdb-topology`, `/change-audit`, `/ip-conflicts`
### Data Engineering
@@ -122,7 +123,7 @@ Comprehensive data engineering toolkit with persistent DataFrame storage.
- 100k row limit with chunking support
- Auto-detection of dbt projects
**Commands:** `/ingest`, `/profile`, `/schema`, `/explain`, `/lineage`, `/lineage-viz`, `/run`, `/dbt-test`, `/data-quality`, `/data-review`, `/data-gate`, `/initial-setup`
**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`
### Visualization
@@ -138,7 +139,7 @@ Visualization toolkit with version-locked component validation and design token
- 5 Page tools for multi-page app structure
- Dual theme storage: user-level and project-level
**Commands:** `/chart`, `/chart-export`, `/dashboard`, `/theme`, `/theme-new`, `/theme-css`, `/component`, `/accessibility-check`, `/breakpoints`, `/design-review`, `/design-gate`, `/initial-setup`
**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`
## Domain Advisory Pattern
@@ -254,7 +255,7 @@ Add to `.claude/settings.json` in your target project:
After installing plugins, run the setup wizard:
```
/initial-setup
/pm-setup
```
The wizard handles everything:
@@ -314,8 +315,8 @@ After installing plugins, the `/plugin` command may show `(no content)` - this i
| code-sentinel | `/code-sentinel:security-scan` |
| claude-config-maintainer | `/claude-config-maintainer:analyze` |
| cmdb-assistant | `/cmdb-assistant:cmdb-search` |
| data-platform | `/data-platform:ingest` |
| viz-platform | `/viz-platform:chart` |
| data-platform | `/data-platform:data-ingest` |
| viz-platform | `/viz-platform:viz-chart` |
| contract-validator | `/contract-validator:validate-contracts` |
## 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-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** | `/review` | | X | Pre-sprint-close code quality review (debug artifacts, security, error handling) |
| **projman** | `/test` | | X | Run tests (`/test run`) or generate tests (`/test gen <target>`) |
| **projman** | `/pm-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** | `/sprint-close` | | X | Complete sprint and capture lessons learned to Gitea Wiki |
| **projman** | `/labels-sync` | | X | Synchronize label taxonomy from Gitea |
| **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 `/setup --sync` |
| **projman** | `/debug` | | X | Diagnostics (`/debug report`) or investigate (`/debug review`) |
| **projman** | `/pm-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** | `/pm-debug` | | X | Diagnostics (`/pm-debug report`) or investigate (`/pm-debug review`) |
| **projman** | `/suggest-version` | | X | Analyze CHANGELOG and recommend semantic version bump |
| **projman** | `/proposal-status` | | X | View proposal and implementation hierarchy with status |
| **projman** | `/rfc` | | X | RFC lifecycle management (`/rfc create\|list\|review\|approve\|reject`) |
| **git-flow** | `/commit` | | X | Create commit with auto-generated conventional message |
| **git-flow** | `/commit-push` | | X | Commit and push to remote in one operation |
| **git-flow** | `/commit-merge` | | X | Commit current changes, then merge into target branch |
| **git-flow** | `/commit-sync` | | X | Full sync: commit, push, and sync with upstream/base branch |
| **git-flow** | `/git-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** | `/git-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** | `/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** | `/git-status` | | X | Enhanced git status with recommendations |
| **git-flow** | `/git-config` | | X | Configure git-flow settings for the project |
| **pr-review** | `/initial-setup` | | X | Setup wizard for pr-review (shares Gitea MCP with projman) |
| **pr-review** | `/pr-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-sync` | | X | Sync config with git remote after repo move/rename |
| **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-optimize-settings` | | X | Optimize permissions (profiles, consolidation, dry-run) |
| **claude-config-maintainer** | `/config-permissions-map` | | X | Visual review layer + permission coverage map |
| **cmdb-assistant** | `/initial-setup` | | X | Setup wizard for NetBox MCP server |
| **cmdb-assistant** | `/cmdb-setup` | | X | Setup wizard for NetBox MCP server |
| **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-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** | `/ip-conflicts` | | X | Detect IP conflicts and overlapping prefixes |
| **project-hygiene** | *PostToolUse hook* | X | | Removes temp files, warns about unexpected root files |
| **data-platform** | `/ingest` | | X | Load data from CSV, Parquet, JSON into DataFrame |
| **data-platform** | `/profile` | | X | Generate data profiling report with statistics |
| **data-platform** | `/schema` | | X | Explore database schemas, tables, columns |
| **data-platform** | `/explain` | | X | Explain query execution plan |
| **data-platform** | `/lineage` | | X | Show dbt model lineage and dependencies |
| **data-platform** | `/run` | | X | Run dbt models with validation |
| **data-platform** | `/data-ingest` | | X | Load data from CSV, Parquet, JSON into DataFrame |
| **data-platform** | `/data-profile` | | X | Generate data profiling report with statistics |
| **data-platform** | `/data-schema` | | X | Explore database schemas, tables, columns |
| **data-platform** | `/data-explain` | | X | Explain query execution plan |
| **data-platform** | `/data-lineage` | | X | Show dbt model lineage and dependencies |
| **data-platform** | `/data-run` | | X | Run dbt models with validation |
| **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** | `/data-quality` | | X | DataFrame quality checks (nulls, duplicates, types, outliers) |
| **data-platform** | `/initial-setup` | | X | Setup wizard for data-platform MCP servers |
| **data-platform** | `/data-setup` | | X | Setup wizard for data-platform MCP servers |
| **data-platform** | *SessionStart hook* | X | | Checks PostgreSQL connection (non-blocking warning) |
| **viz-platform** | `/initial-setup` | | X | Setup wizard for viz-platform MCP server |
| **viz-platform** | `/chart` | | X | Create Plotly charts with theme integration |
| **viz-platform** | `/dashboard` | | X | Create dashboard layouts with filters and grids |
| **viz-platform** | `/theme` | | X | Apply existing theme to visualizations |
| **viz-platform** | `/theme-new` | | X | Create new custom theme with design tokens |
| **viz-platform** | `/theme-css` | | X | Export theme as CSS custom properties |
| **viz-platform** | `/component` | | X | Inspect DMC component props and validation |
| **viz-platform** | `/chart-export` | | X | Export charts to PNG, SVG, PDF via kaleido |
| **viz-platform** | `/viz-setup` | | X | Setup wizard for viz-platform MCP server |
| **viz-platform** | `/viz-chart` | | X | Create Plotly charts with theme integration |
| **viz-platform** | `/viz-dashboard` | | X | Create dashboard layouts with filters and grids |
| **viz-platform** | `/viz-theme` | | X | Apply existing theme to visualizations |
| **viz-platform** | `/viz-theme-new` | | X | Create new custom theme with design tokens |
| **viz-platform** | `/viz-theme-css` | | X | Export theme as CSS custom properties |
| **viz-platform** | `/viz-component` | | X | Inspect DMC component props and validation |
| **viz-platform** | `/viz-chart-export` | | X | Export charts to PNG, SVG, PDF via kaleido |
| **viz-platform** | `/accessibility-check` | | X | Color blind validation (WCAG contrast ratios) |
| **viz-platform** | `/breakpoints` | | X | Configure responsive layout breakpoints |
| **viz-platform** | `/viz-breakpoints` | | X | Configure responsive layout breakpoints |
| **viz-platform** | `/design-review` | | X | Detailed design system audits |
| **viz-platform** | `/design-gate` | | X | Binary pass/fail design system validation gates |
| **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** | `/list-interfaces` | | X | Show all plugin interfaces |
| **contract-validator** | `/dependency-graph` | | X | Mermaid visualization of plugin dependencies |
| **contract-validator** | `/initial-setup` | | X | Setup wizard for contract-validator MCP |
| **contract-validator** | `/cv-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 |
|----------|---------|-------------|
| **Setup** | projman, pr-review, cmdb-assistant, data-platform | `/setup`, `/initial-setup` |
| **Setup** | projman, pr-review, cmdb-assistant, data-platform, viz-platform, contract-validator | `/pm-setup`, `/pr-setup`, `/cmdb-setup`, `/data-setup`, `/viz-setup`, `/cv-setup` |
| **Task Planning** | projman, clarity-assist | Sprint management, requirement clarification |
| **Code Quality** | code-sentinel, pr-review | Security scanning, PR reviews |
| **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
5. /branch-start feat/... # Create feature branch
... implement features ...
6. /commit # Commit with conventional message
6. /git-commit # Commit with conventional message
7. /sprint-status --diagram # Check progress with visualization
8. /review # Pre-close quality review
9. /test run # Verify test coverage
8. /pm-review # Pre-close quality review
9. /pm-test run # Verify test coverage
10. /sprint-close # Capture lessons learned
```
@@ -178,8 +178,8 @@ Quick daily workflow with git-flow:
1. /git-status # Check current state
2. /branch-start fix/... # Start bugfix branch
... make changes ...
3. /commit # Auto-generate commit message
4. /commit-push # Push to remote
3. /git-commit # Auto-generate commit message
4. /git-commit-push # Push to remote
5. /branch-cleanup # Clean merged branches
```
@@ -213,8 +213,8 @@ Safe refactoring with preview:
1. /refactor-dry # Preview opportunities
2. /security-scan # Baseline security check
3. /refactor # Apply improvements
4. /test run # Verify nothing broke
5. /commit # Commit with descriptive message
4. /pm-test run # Verify nothing broke
5. /git-commit # Commit with descriptive message
```
### Example 6: Infrastructure Documentation
@@ -233,12 +233,12 @@ Managing infrastructure with CMDB:
Working with data pipelines:
```
1. /ingest file.csv # Load data into DataFrame
2. /profile # Generate data profiling report
3. /schema # Explore database schemas
4. /lineage model_name # View dbt model dependencies
5. /run model_name # Execute dbt models
6. /explain "SELECT ..." # Analyze query execution plan
1. /data-ingest file.csv # Load data into DataFrame
2. /data-profile # Generate data profiling report
3. /data-schema # Explore database schemas
4. /data-lineage model_name # View dbt model dependencies
5. /data-run model_name # Execute dbt models
6. /data-explain "SELECT ..." # Analyze query execution plan
```
### Example 7: First-Time Setup (New Machine)
@@ -246,7 +246,7 @@ Working with data pipelines:
Setting up the marketplace for the first time:
```
1. /setup --full # Full setup: MCP + system config + project
1. /pm-setup --full # Full setup: MCP + system config + project
# → Follow prompts for Gitea URL, org
# → Add token manually when prompted
# → Confirm repository name
@@ -260,7 +260,7 @@ Setting up the marketplace for the first time:
Adding a new project when system config exists:
```
1. /setup --quick # Quick project setup (auto-detected)
1. /pm-setup --quick # Quick project setup (auto-detected)
# → Confirms detected repo name
# → Creates .env
2. /labels-sync # Sync Gitea labels
@@ -272,8 +272,8 @@ Adding a new project when system config exists:
## Quick Tips
- **Hooks run automatically** - doc-guardian and code-sentinel protect you without manual invocation
- **Use `/commit` over `git commit`** - generates better commit messages following conventions
- **Run `/review` before `/sprint-close`** - catches issues before closing the sprint
- **Use `/git-commit` over `git commit`** - generates better commit messages following conventions
- **Run `/pm-review` before `/sprint-close`** - catches issues before closing the sprint
- **Use `/clarify` for vague requests** - especially helpful for complex requirements
- **`/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:**
```
/setup
/pm-setup
```
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
└─────────────────────────────────────────────────────────────────────────────┘
/setup --full
(or /setup auto-detects)
/pm-setup --full
(or /pm-setup auto-detects)
┌──────────────────────────────┼──────────────────────────────┐
▼ ▼ ▼
@@ -79,7 +79,7 @@ The interactive wizard auto-detects what's needed and handles everything except
┌───────────────┴───────────────┐
▼ ▼
/setup --quick /setup
/pm-setup --quick /pm-setup
(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
### `/setup --full` - Full Setup
### `/pm-setup --full` - Full Setup
| 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` |
| **7. Validation** | Automated | Tests API connectivity, shows summary |
### `/setup --quick` - Quick Project Setup
### `/pm-setup --quick` - Quick Project Setup
| 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 |
|------|-------------|--------------|
| `/setup` | Any time | Auto-detects: runs full, quick, or sync as needed |
| `/setup --full` | First time on a machine | Full setup: MCP server + system config + project config |
| `/setup --quick` | Starting a new project | Quick setup: project config only (assumes system is ready) |
| `/setup --sync` | After repo move/rename | Updates .env to match current git remote |
| `/pm-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 |
| `/pm-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 |
**Auto-detection logic:**
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
**Typical workflow:**
1. Install plugin → run `/setup` (auto-runs full mode)
2. Start new project → run `/setup` (auto-runs quick mode)
3. Repository moved? → run `/setup` (auto-runs sync mode)
1. Install plugin → run `/pm-setup` (auto-runs full mode)
2. Start new project → run `/pm-setup` (auto-runs quick mode)
3. Repository moved? → run `/pm-setup` (auto-runs sync mode)
---
@@ -182,7 +182,7 @@ This marketplace uses a **hybrid configuration** approach:
**Benefits:**
- Single token per service (update once, use everywhere)
- Easy multi-project setup (just run `/setup` in each project)
- Easy multi-project setup (just run `/pm-setup` in each project)
- Security (tokens never committed to git, never typed into AI chat)
- Project isolation (each project can override defaults)
@@ -190,7 +190,7 @@ This marketplace uses a **hybrid configuration** approach:
## Prerequisites
Before running `/setup`:
Before running `/pm-setup`:
1. **Python 3.10+** installed
```bash
@@ -213,7 +213,7 @@ Before running `/setup`:
Run the setup wizard in Claude Code:
```
/setup
/pm-setup
```
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 |
|--------|---------------|----------------|---------------|
| **projman** | gitea.env | .env (GITEA_REPO=owner/repo) | `/setup` |
| **pr-review** | gitea.env | .env (GITEA_REPO=owner/repo) | `/initial-setup` |
| **projman** | gitea.env | .env (GITEA_REPO=owner/repo) | `/pm-setup` |
| **pr-review** | gitea.env | .env (GITEA_REPO=owner/repo) | `/pr-setup` |
| **git-flow** | git-flow.env (optional) | .env (optional) | None needed |
| **clarity-assist** | None | None | None needed |
| **cmdb-assistant** | netbox.env | None | `/initial-setup` |
| **data-platform** | postgres.env | .env (optional) | `/initial-setup` |
| **viz-platform** | None | .env (optional DMC_VERSION) | `/initial-setup` |
| **cmdb-assistant** | netbox.env | None | `/cmdb-setup` |
| **data-platform** | postgres.env | .env (optional) | `/data-setup` |
| **viz-platform** | None | .env (optional DMC_VERSION) | `/viz-setup` |
| **doc-guardian** | None | None | None needed |
| **code-sentinel** | None | None | None needed |
| **project-hygiene** | None | None | None needed |
| **claude-config-maintainer** | None | None | None needed |
| **contract-validator** | None | None | `/initial-setup` |
| **contract-validator** | None | None | `/cv-setup` |
---
@@ -408,7 +408,7 @@ Once system-level config is set up, adding new projects is simple:
```
cd ~/projects/new-project
/setup
/pm-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` |
|--------|-------|---------|-------------------|--------------------|----------|
| projman | planner | opus | default | — | body text (14) |
| projman | orchestrator | sonnet | acceptEdits | — | body text (12) |
| projman | planner | opus | default | — | frontmatter (2) + body text (12) |
| projman | orchestrator | sonnet | acceptEdits | — | frontmatter (2) + body text (10) |
| projman | executor | sonnet | bypassPermissions | — | frontmatter (7) |
| projman | code-reviewer | opus | default | Write, Edit, MultiEdit | frontmatter (4) |
| pr-review | coordinator | sonnet | plan | Write, Edit, MultiEdit | — |
@@ -591,13 +591,47 @@ 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.
### 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
### API Validation
When running `/setup`, the command:
When running `/pm-setup`, the command:
1. **Detects** organization and repository from git remote URL
2. **Validates** via Gitea API: `GET /api/v1/repos/{org}/{repo}`
@@ -612,7 +646,7 @@ When you start a Claude Code session, a hook automatically:
1. Reads `GITEA_REPO` (in `owner/repo` format) from `.env`
2. Compares with current `git remote get-url origin`
3. **Warns** if mismatch detected: "Repository location mismatch. Run `/setup --sync` to update."
3. **Warns** if mismatch detected: "Repository location mismatch. Run `/pm-setup --sync` to update."
This helps when you:
- Move a repository to a different organization
@@ -707,7 +741,7 @@ cat .env
3. **Never type tokens into AI chat**
- Always edit config files directly in your editor
- The `/setup` wizard respects this
- The `/pm-setup` wizard respects this
4. **Rotate tokens periodically**
- 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:
- `/debug report` - Run full diagnostics, create issue if problems found
- `/debug review` - Investigate existing diagnostic issues and propose fixes
- `/pm-debug report` - Run full diagnostics, create issue if problems found
- `/pm-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
### When to Re-run `/initial-setup`
### When to Re-run Setup
You typically **don't need** to re-run setup after updates. However, re-run if:
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:
- Changelog mentions **new required environment variables**
- 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:**
```bash
git diff HEAD~1 plugins/*/commands/initial-setup.md
git diff HEAD~1 plugins/*/commands/*-setup.md
git diff HEAD~1 plugins/*/commands/project-init.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:**
- Review what's new (new validation steps, new prompts, etc.)
- Consider re-running `/initial-setup` or `/project-init` to benefit from improvements
- Consider re-running your plugin's setup command or `/project-init` to benefit from improvements
- Existing configurations remain valid unless changelog notes breaking changes
**If hooks changed:**
@@ -142,7 +142,7 @@ deactivate
### Configuration no longer works
1. Check CHANGELOG.md for breaking changes
2. Run `/initial-setup` to re-validate and fix configuration
2. Run your plugin's setup command (e.g., `/pm-setup`) to re-validate and fix configuration
3. Compare your config files with documentation in `docs/CONFIGURATION.md`
### MCP server won't start after update

View File

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

@@ -0,0 +1,92 @@
# 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,8 +19,9 @@ The Gitea MCP Server provides Claude Code with direct access to Gitea for issue
- **Hybrid Configuration**: System-level credentials + project-level paths
- **PMO Support**: Multi-repository aggregation for organization-wide views
### Tools Provided
### Tools Provided (36 total)
#### Issue Management (6 tools)
| Tool | Description | Mode |
|------|-------------|------|
| `list_issues` | List issues from repository | Both |
@@ -28,9 +29,61 @@ The Gitea MCP Server provides Claude Code with direct access to Gitea for issue
| `create_issue` | Create new issue with labels | Both |
| `update_issue` | Update existing 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 |
| `suggest_labels` | Intelligent label suggestion | Both |
| `aggregate_issues` | Cross-repository issue aggregation | PMO Only |
| `create_label` | Create repo-level label | Both |
| `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
@@ -40,15 +93,20 @@ The Gitea MCP Server provides Claude Code with direct access to Gitea for issue
mcp-servers/gitea/
├── .venv/ # Python virtual environment
├── requirements.txt # Python dependencies
├── run.sh # Entry point script
├── mcp_server/
│ ├── __init__.py
│ ├── server.py # MCP server entry point
│ ├── config.py # Configuration loader
│ ├── server.py # MCP server entry point (36 tools)
│ ├── config.py # Configuration loader with auto-detection
│ ├── gitea_client.py # Gitea API client
│ └── tools/
│ ├── __init__.py
│ ├── issues.py # Issue tools
── labels.py # Label tools
│ ├── issues.py # Issue management tools
── labels.py # Label management tools
│ ├── wiki.py # Wiki & lessons learned tools
│ ├── milestones.py # Milestone management tools
│ ├── dependencies.py # Issue dependency tools
│ └── pull_requests.py # Pull request tools
├── tests/
│ ├── __init__.py
│ ├── test_config.py
@@ -56,7 +114,8 @@ mcp-servers/gitea/
│ ├── test_issues.py
│ └── test_labels.py
├── README.md # This file
── TESTING.md # Testing instructions
── TESTING.md # Testing instructions
└── CHANGELOG.md # Version history
```
### Mode Detection
@@ -111,7 +170,6 @@ mkdir -p ~/.config/claude
cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token_here
GITEA_OWNER=bandit
EOF
chmod 600 ~/.config/claude/gitea.env
@@ -137,14 +195,34 @@ For company/PMO mode, omit the `.env` file or don't set `GITEA_REPO`.
**Required Variables**:
- `GITEA_API_URL` - Gitea API endpoint (e.g., `https://gitea.example.com/api/v1`)
- `GITEA_API_TOKEN` - Personal access token with repo permissions
- `GITEA_OWNER` - Organization or user name (e.g., `bandit`)
### Project-Level Configuration
**File**: `<project-root>/.env`
**Optional Variables**:
- `GITEA_REPO` - Repository name (enables project mode)
- `GITEA_REPO` - Repository in `owner/repo` format (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
@@ -220,13 +298,13 @@ suggestions = await label_tools.suggest_labels(context)
### Unit Tests
Run all 42 unit tests with mocks:
Run all 64 unit tests with mocks:
```bash
pytest tests/ -v
```
Expected: `42 passed in 0.57s`
Expected: `64 passed`
### Integration Tests
@@ -327,11 +405,15 @@ See [TESTING.md](./TESTING.md#troubleshooting) for more details.
### Project Structure
- `config.py` - Hybrid configuration loader with mode detection
- `config.py` - Hybrid configuration loader with auto-detection
- `gitea_client.py` - Synchronous Gitea API client using requests
- `tools/issues.py` - Async wrappers with branch detection
- `tools/labels.py` - Label management and suggestion
- `server.py` - MCP server with JSON-RPC 2.0 over stdio
- `tools/issues.py` - Issue management with branch detection
- `tools/labels.py` - Label management and intelligent suggestions
- `tools/wiki.py` - Wiki pages and lessons learned
- `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
@@ -374,18 +456,14 @@ def list_issues(self, state='open', labels=None, repo=None):
## Changelog
### v1.0.0 (2025-01-06) - Phase 1 Complete
See [CHANGELOG.md](./CHANGELOG.md) for full version history.
✅ Initial implementation:
- Configuration management (hybrid system + project)
- Gitea API client with all CRUD operations
- MCP server with 8 tools
- Issue tools with branch detection
- Label tools with intelligent suggestions
- Mode detection (project vs company)
- Branch-aware security model
- 42 unit tests (100% passing)
- Comprehensive documentation
### Recent Updates
- **v1.3.0** - Pull request tools (7 tools), label creation tools (3)
- **v1.2.0** - Milestone management (5 tools), issue dependencies (4 tools)
- **v1.1.0** - Wiki & lessons learned system (7 tools)
- **v1.0.0** - Initial release with core issue/label tools (8 tools)
## License
@@ -407,6 +485,6 @@ For issues or questions:
---
**Built for**: Leo Claude Marketplace - Project Management Plugins
**Phase**: 1 (Complete)
**Tools**: 36
**Status**: ✅ Production Ready
**Last Updated**: 2025-01-06
**Last Updated**: 2026-02-03

View File

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

View File

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

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

View File

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

View File

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

View File

@@ -79,6 +79,69 @@ Add to your Claude Code MCP configuration (`~/.config/claude/mcp.json` or projec
1. **System-level** (`~/.config/claude/netbox.env`): Credentials and defaults
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
### DCIM (Data Center Infrastructure Management)
@@ -128,18 +191,18 @@ Add to your Claude Code MCP configuration (`~/.config/claude/mcp.json` or projec
| `circuits_create_provider` | Create a provider |
| `circuits_list_circuits` | List circuits |
| `circuits_create_circuit` | Create a circuit |
| `circuits_list_circuit_terminations` | List terminations |
| `circ_list_terminations` | List terminations |
| ... and more |
### Virtualization
| Tool | Description |
|------|-------------|
| `virtualization_list_clusters` | List clusters |
| `virtualization_create_cluster` | Create a cluster |
| `virtualization_list_virtual_machines` | List VMs |
| `virtualization_create_virtual_machine` | Create a VM |
| `virtualization_list_vm_interfaces` | List VM interfaces |
| `virt_list_clusters` | List clusters |
| `virt_create_cluster` | Create a cluster |
| `virt_list_vms` | List VMs |
| `virt_create_vm` | Create a VM |
| `virt_list_vm_ifaces` | List VM interfaces |
| ... and more |
### Tenancy
@@ -167,9 +230,9 @@ Add to your Claude Code MCP configuration (`~/.config/claude/mcp.json` or projec
| Tool | Description |
|------|-------------|
| `wireless_list_wireless_lans` | List wireless LANs |
| `wireless_create_wireless_lan` | Create a WLAN |
| `wireless_list_wireless_links` | List wireless links |
| `wlan_list_lans` | List wireless LANs |
| `wlan_create_lan` | Create a WLAN |
| `wlan_list_links` | List wireless links |
| ... and more |
### Extras

View File

@@ -9,11 +9,17 @@ from pathlib import Path
from dotenv import load_dotenv
import os
import logging
from typing import Dict, Optional
from typing import Dict, List, Optional, Set
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# All available NetBox modules
ALL_MODULES = frozenset([
'dcim', 'ipam', 'circuits', 'virtualization',
'tenancy', 'vpn', 'wireless', 'extras'
])
class NetBoxConfig:
"""Configuration loader for NetBox MCP Server"""
@@ -23,6 +29,7 @@ class NetBoxConfig:
self.api_token: Optional[str] = None
self.verify_ssl: bool = True
self.timeout: int = 30
self.enabled_modules: Set[str] = set(ALL_MODULES)
def load(self) -> Dict[str, any]:
"""
@@ -73,6 +80,9 @@ class NetBoxConfig:
self.timeout = 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
self._validate()
@@ -84,7 +94,8 @@ class NetBoxConfig:
'api_url': self.api_url,
'api_token': self.api_token,
'verify_ssl': self.verify_ssl,
'timeout': self.timeout
'timeout': self.timeout,
'enabled_modules': self.enabled_modules
}
def _validate(self) -> None:
@@ -106,3 +117,40 @@ class NetBoxConfig:
f"Missing required configuration: {', '.join(missing)}\n"
"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,11 +8,12 @@ Tenancy, VPN, Wireless, and Extras.
import asyncio
import logging
import json
from typing import Optional, Set
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
from .config import NetBoxConfig
from .config import NetBoxConfig, ALL_MODULES
from .netbox_client import NetBoxClient
from .tools.dcim import DCIMTools
from .tools.ipam import IPAMTools
@@ -1453,6 +1454,49 @@ 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:
"""MCP Server for NetBox integration"""
@@ -1460,6 +1504,8 @@ class NetBoxMCPServer:
self.server = Server("netbox-mcp")
self.config = None
self.client = None
self.enabled_modules: Set[str] = set(ALL_MODULES)
# Tool instances - only instantiated for enabled modules
self.dcim_tools = None
self.ipam_tools = None
self.circuits_tools = None
@@ -1474,18 +1520,39 @@ class NetBoxMCPServer:
try:
config_loader = NetBoxConfig()
self.config = config_loader.load()
self.enabled_modules = self.config['enabled_modules']
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)
logger.info(f"NetBox MCP Server initialized for {self.config['api_url']}")
# Conditionally instantiate tool classes for enabled modules only
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:
logger.error(f"Failed to initialize: {e}")
raise
@@ -1495,9 +1562,14 @@ class NetBoxMCPServer:
@self.server.list_tools()
async def list_tools() -> list[Tool]:
"""Return list of available tools"""
"""Return list of available tools, filtered by enabled modules"""
tools = []
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(
name=name,
description=definition['description'],
@@ -1532,6 +1604,14 @@ class NetBoxMCPServer:
'virtualization_list_virtual_machines') to meet the 28-character
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
if name in TOOL_NAME_MAP:
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
**Virtualization:**
- `virtualization_list_virtual_machines`, `virtualization_create_virtual_machine` - VM management
- `virtualization_list_clusters`, `virtualization_create_cluster` - Cluster management
- `virtualization_list_vm_interfaces` - VM interface management
- `virt_list_vms`, `virt_create_vm`, `virt_update_vm`, `virt_delete_vm` - VM management
- `virt_list_clusters`, `virt_create_cluster`, `virt_update_cluster`, `virt_delete_cluster` - Cluster management
- `virt_list_vm_ifaces`, `virt_create_vm_iface` - VM interface management
**Circuits:**
- `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
4. **Prefix search**: Use `ipam_list_prefixes` with prefix or within filter
5. **VLAN search**: Use `ipam_list_vlans` with vid or name filter
6. **VM search**: Use `virtualization_list_virtual_machines` with name filter
6. **VM search**: Use `virt_list_vms` with name filter
For broad searches, query multiple endpoints and consolidate results.

View File

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

View File

@@ -24,7 +24,7 @@ Standard visual header for cmdb-assistant commands.
| `/cmdb-topology` | Topology |
| `/change-audit` | Change Audit |
| `/ip-conflicts` | IP Conflict Detection |
| `/initial-setup` | Setup Wizard |
| `/cmdb-setup` | Setup Wizard |
| Agent mode | Infrastructure Management |
## 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
3. Runs 66 pairwise compatibility checks
4. Finds 3 errors, 4 warnings
5. Reports: "Command conflict: projman and data-platform both define /initial-setup"
5. Reports: "Command conflict: pluginA and pluginB both define /setup"
6. Suggests: "Rename one command to avoid ambiguity"

View File

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

View File

@@ -65,6 +65,6 @@ Available MCP tools for contract-validator operations.
## Error Handling
If MCP tools fail:
1. Check if `/initial-setup` has been run
1. Check if `/cv-setup` has been run
2. Verify session was restarted after setup
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 |
|---------|---------|
| `/ingest` | Load data from files or database |
| `/profile` | Generate statistical profile |
| `/schema` | Show schema information |
| `/explain` | Explain dbt model |
| `/lineage` | Show data lineage |
| `/run` | Execute dbt models |
| `/data-ingest` | Load data from files or database |
| `/data-profile` | Generate statistical profile |
| `/data-schema` | Show schema information |
| `/data-explain` | Explain dbt model |
| `/data-lineage` | Show data lineage |
| `/data-run` | Execute dbt models |
### data_ref Convention
@@ -36,9 +36,9 @@ DataFrames are stored with references. Use meaningful names:
### dbt Workflow
1. Always validate before running: `/run` includes automatic `dbt_parse`
1. Always validate before running: `/data-run` includes automatic `dbt_parse`
2. For dbt 1.9+, check for deprecated syntax before commits
3. Use `/lineage` to understand impact of changes
3. Use `/data-lineage` to understand impact of changes
### Database Access
@@ -69,22 +69,22 @@ DATA_PLATFORM_MAX_ROWS=100000
### Data Exploration
```
/ingest data/raw_customers.csv
/profile raw_customers
/schema
/data-ingest data/raw_customers.csv
/data-profile raw_customers
/data-schema
```
### ETL Development
```
/schema orders # Understand source
/explain stg_orders # Understand transformation
/run stg_orders # Test the model
/lineage fct_orders # Check downstream impact
/data-schema orders # Understand source
/data-explain stg_orders # Understand transformation
/data-run stg_orders # Test the model
/data-lineage fct_orders # Check downstream impact
```
### Database Analysis
```
/schema # List all tables
/data-schema # List all tables
pg_columns orders # Detailed schema
st_tables # Find spatial data
```

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@ Defines merge strategies, conflict resolution approaches, and post-merge cleanup
## When to Use
- Merging feature branches in `/commit-merge`
- Merging feature branches in `/git-commit-merge`
- Resolving conflicts during sync operations
- 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
- Pushing commits in `/commit-push`
- Full sync operations in `/commit-sync`
- Pushing commits in `/git-commit-push`
- Full sync operations in `/git-commit-sync`
- Detecting and reporting stale branches
## Push Workflow

View File

@@ -19,28 +19,28 @@ Standard header format for consistent visual output across all git-flow commands
## Command Headers
### /commit
### /git-commit
```
+----------------------------------------------------------------------+
| GIT-FLOW Smart Commit |
+----------------------------------------------------------------------+
```
### /commit-push
### /git-commit-push
```
+----------------------------------------------------------------------+
| GIT-FLOW Commit & Push |
+----------------------------------------------------------------------+
```
### /commit-sync
### /git-commit-sync
```
+----------------------------------------------------------------------+
| GIT-FLOW Commit Sync |
+----------------------------------------------------------------------+
```
### /commit-merge
### /git-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.
**Use when:** Already ran `/initial-setup`, starting new project
**Use when:** Already ran `/pr-setup`, starting new project
## Workflow
### Pre-Flight Check
Verify `~/.config/claude/gitea.env` exists. If missing: redirect to `/initial-setup`
Verify `~/.config/claude/gitea.env` exists. If missing: redirect to `/pr-setup`
### Project Setup

View File

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

View File

@@ -3,26 +3,35 @@ name: orchestrator
description: Sprint orchestration agent - coordinates execution and tracks progress
model: sonnet
permissionMode: acceptEdits
skills: mcp-tools-reference, batch-execution
---
# Sprint Orchestration Agent
You are the **Orchestrator Agent** - a concise, action-oriented coordinator who keeps sprints on track.
## Skills to Load
## Skill Loading Protocol
- skills/mcp-tools-reference.md
**Frontmatter skills (auto-injected, always available — DO NOT re-read these):**
- `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/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/lessons-learned.md
- skills/git-workflow.md
- skills/progress-tracking.md
- skills/runaway-detection.md
- skills/wiki-conventions.md
- skills/domain-consultation.md
- skills/sprint-lifecycle.md
- skills/visual-output.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.**
## Your Personality

View File

@@ -3,28 +3,39 @@ name: planner
description: Sprint planning agent - thoughtful architecture analysis and issue creation
model: opus
permissionMode: default
skills: mcp-tools-reference, batch-execution
---
# Sprint Planning Agent
You are the **Planner Agent** - a methodical architect who thoroughly analyzes requirements before creating well-structured plans.
## Skills to Load
## Skill Loading Protocol
- skills/mcp-tools-reference.md
**Frontmatter skills (auto-injected, always available — DO NOT re-read these):**
- `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/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/lessons-learned.md
- skills/wiki-conventions.md
- skills/task-sizing.md
- skills/issue-conventions.md
- skills/sprint-approval.md
- skills/planning-workflow.md
- skills/label-taxonomy/labels-reference.md
- skills/domain-consultation.md
- skills/sprint-lifecycle.md
- skills/visual-output.md
**Phase 3 skills — read ONCE before requesting approval:**
- 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

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-close` | Complete sprint and capture lessons learned to Gitea Wiki |
| `/labels-sync` | Synchronize label taxonomy from Gitea |
| `/initial-setup` | Run initial setup for projman plugin |
| `/pm-setup` | Run initial setup for projman plugin |
| `/rfc create` | Create new RFC from conversation or clarified spec |
| `/rfc list` | List all RFCs grouped by status |
| `/rfc review` | Submit Draft RFC for review |

View File

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

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
description: Run tests with coverage or generate tests for specified code
---
# Test
# PM Test
## Skills Required
@@ -15,13 +15,13 @@ Unified testing command for running tests and generating new tests.
## Invocation
```
/test # Default: run tests
/test run # Run tests, check coverage
/test run --coverage # Run with coverage report
/test run --verbose # Verbose output
/test gen <target> # Generate tests for target
/test gen <target> --type=unit # Specific test type
/test gen <target> --framework=jest # Specific framework
/pm-test # Default: run tests
/pm-test run # Run tests, check coverage
/pm-test run --coverage # Run with coverage report
/pm-test run --verbose # Verbose output
/pm-test gen <target> # Generate tests for target
/pm-test gen <target> --type=unit # Specific test type
/pm-test gen <target> --framework=jest # Specific framework
```
## Mode Selection
@@ -104,15 +104,15 @@ See `skills/test-standards.md` for test patterns and structure.
## Sprint Integration
The `/test` command plays a critical role in the sprint close workflow:
The `/pm-test` command plays a critical role in the sprint close workflow:
1. After `/review` identifies code quality issues
1. After `/pm-review` identifies code quality issues
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
### Pre-Close Verification
When running `/test run` before sprint close:
When running `/pm-test run` before sprint close:
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
@@ -125,31 +125,31 @@ When running `/test run` before sprint close:
### Run all tests
```
/test run
/pm-test run
```
Detects framework, runs full test suite, reports results.
### Run with coverage
```
/test run --coverage
/pm-test run --coverage
```
Same as above plus coverage percentage per file.
### Generate tests for a specific file
```
/test gen src/auth/jwt_service.py
/pm-test gen src/auth/jwt_service.py
```
Analyzes the file, generates a test file at `tests/test_jwt_service.py`.
### Generate specific test type
```
/test gen src/api/routes/auth.py --type=integration
/pm-test gen src/api/routes/auth.py --type=integration
```
Generates integration tests (request/response patterns) instead of unit tests.
### Generate with specific framework
```
/test gen src/components/Card.jsx --framework=vitest
/pm-test gen src/components/Card.jsx --framework=vitest
```
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 |
| 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 `/test gen` |
| No tests exist for sprint files | Warn with file list, offer to generate with `/pm-test gen` |
| 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 |

View File

@@ -14,6 +14,7 @@ agent: orchestrator
- skills/progress-tracking.md
- skills/git-workflow.md
- skills/sprint-lifecycle.md
- skills/token-budget-report.md
## Purpose
@@ -82,3 +83,12 @@ If the sprint was linked to an RFC:
║ [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,7 +7,8 @@ agent: planner
## Skills Required
- skills/mcp-tools-reference.md
- skills/mcp-tools-reference.md (frontmatter — auto-injected)
- skills/batch-execution.md (frontmatter — auto-injected)
- skills/branch-security.md
- skills/repo-validation.md
- skills/input-detection.md
@@ -19,6 +20,7 @@ agent: planner
- skills/planning-workflow.md
- skills/label-taxonomy/labels-reference.md
- skills/sprint-lifecycle.md
- skills/token-budget-report.md
## Purpose
@@ -56,3 +58,12 @@ Execute the planning workflow as defined in `skills/planning-workflow.md`.
║ [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,7 +7,8 @@ agent: orchestrator
## Skills Required
- skills/mcp-tools-reference.md
- skills/mcp-tools-reference.md (frontmatter — auto-injected)
- skills/batch-execution.md (frontmatter — auto-injected)
- skills/branch-security.md
- skills/sprint-approval.md
- skills/dependency-management.md

View File

@@ -1,5 +1,5 @@
---
description: Check current sprint progress, identify blockers, optionally generate dependency diagram
description: Check current sprint progress, identify blockers, optionally generate dependency diagram or token budget report
---
# Sprint Status
@@ -10,6 +10,7 @@ description: Check current sprint progress, identify blockers, optionally genera
- skills/progress-tracking.md
- skills/dependency-management.md
- skills/sprint-lifecycle.md
- skills/token-budget-report.md
## Purpose
@@ -20,6 +21,7 @@ Check current sprint progress, identify blockers, and show execution status. Opt
```
/sprint-status # Text-based status report
/sprint-status --diagram # Include Mermaid dependency diagram
/sprint-status --tokens # Show token budget estimation report
```
## Workflow
@@ -38,6 +40,14 @@ Check current sprint progress, identify blockers, and show execution status. Opt
8. **Get Execution Order** - Use `get_execution_order` for batch grouping
9. **Generate Mermaid Syntax** - Create flowchart with status colors
### If --tokens flag:
10. **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
See `skills/progress-tracking.md` for the progress display format.

View File

@@ -0,0 +1,116 @@
---
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,21 +84,38 @@ Think through:
- What dependencies exist?
- What are potential risks?
### 8. Create Gitea Issues
### 8. Draft Issue Specifications (DO NOT create 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**
Follow `skills/issue-conventions.md` and `skills/task-sizing.md` to prepare the complete specification for ALL issues. **Do NOT call `create_issue` yet.**
### 9. Set Up Dependencies
For each issue, resolve completely:
- 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)
```python
create_issue_dependency(repo="org/repo", issue_number=46, depends_on=45)
```
**Refuse to create L/XL tasks without breakdown.**
### 10. Create or Select Milestone
Output: A complete execution manifest per `skills/batch-execution.md` Phase 2 format.
### 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
create_milestone(
@@ -109,7 +126,7 @@ create_milestone(
)
```
Assign issues to the milestone.
If milestone already exists, select it. Record the milestone ID for use in the batch manifest.
### 11. Request Sprint Approval

View File

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

View File

@@ -1,6 +1,6 @@
# Setup Workflows
Shared workflows for the `/setup` command modes.
Shared workflows for the `/pm-setup` command modes.
## 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
(sprint-plan) (sprint-start) (review) (sprint-close)
(sprint-plan) (sprint-start) (pm-review) (sprint-close)
```
## 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 |
| `Sprint/Planning` | `/sprint-plan` | Planning in progress |
| `Sprint/Executing` | `/sprint-start` | Execution in progress |
| `Sprint/Reviewing` | `/review` | Code review in progress |
| `Sprint/Reviewing` | `/pm-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.
@@ -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-start` | `Sprint/Planning` | `Sprint/Executing` | Warn: "Expected Sprint/Planning state but found [state]. Run `/sprint-plan` first or use `--force`." 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 `/review` first or use `--force`." Allow with `--force`. |
| `/pm-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-status` | Any | No change (read-only) | Display current state in output. |
---

View File

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

View File

@@ -41,12 +41,12 @@ For commands that don't invoke a specific agent phase:
| Command | Phase Emoji | Phase Name |
|---------|-------------|------------|
| `/sprint-status` | 📊 Chart | STATUS |
| `/setup` | ⚙️ Gear | SETUP |
| `/debug` | 🐛 Bug | DEBUG |
| `/pm-setup` | ⚙️ Gear | SETUP |
| `/pm-debug` | 🐛 Bug | DEBUG |
| `/labels-sync` | 🏷️ Label | LABELS |
| `/suggest-version` | 📦 Package | VERSION |
| `/proposal-status` | 📋 Clipboard | PROPOSALS |
| `/test` | 🧪 Flask | TEST |
| `/pm-test` | 🧪 Flask | TEST |
| `/rfc` | 📄 Document | RFC [Sub-Command] |
---
@@ -99,3 +99,22 @@ For domain gate results displayed by orchestrator:
| Hourglass | In progress |
| Empty box | Pending / Not started |
| 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.
### Available Commands
- `/component {name}` - Inspect DMC component props
- `/chart {type}` - Create Plotly charts (line, bar, scatter, pie, area, histogram, box, heatmap, sunburst, treemap)
- `/dashboard {template}` - Create layouts (basic, sidebar, tabs, split)
- `/theme {name}` - Apply a theme
- `/theme-new {name}` - Create custom theme
- `/theme-css {name}` - Export theme as CSS
- `/viz-component {name}` - Inspect DMC component props
- `/viz-chart {type}` - Create Plotly charts (line, bar, scatter, pie, area, histogram, box, heatmap, sunburst, treemap)
- `/viz-dashboard {template}` - Create layouts (basic, sidebar, tabs, split)
- `/viz-theme {name}` - Apply a theme
- `/viz-theme-new {name}` - Create custom theme
- `/viz-theme-css {name}` - Export theme as CSS
### MCP Tools Available
- **DMC**: list_components, get_component_props, validate_component
@@ -44,13 +44,13 @@ If using with data-platform, add this section:
## Data + Visualization Workflow
### Data Loading (data-platform)
- `/ingest {file}` - Load CSV, Parquet, or JSON
- `/schema {table}` - View database schema
- `/profile {data_ref}` - Statistical summary
- `/data-ingest {file}` - Load CSV, Parquet, or JSON
- `/data-schema {table}` - View database schema
- `/data-profile {data_ref}` - Statistical summary
### Visualization (viz-platform)
- `/chart {type}` - Create charts from loaded data
- `/dashboard {template}` - Build dashboard layouts
- `/viz-chart {type}` - Create charts from loaded data
- `/viz-dashboard {template}` - Build dashboard layouts
### Workflow Pattern
1. Load data: `read_csv("data.csv")` → returns `data_ref`

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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