Commit Graph

265 Commits

Author SHA1 Message Date
d84425cbb0 refactor: bundle MCP servers inside plugins for cache compatibility
Claude Code only caches the plugin directory when installed from a
marketplace, not parent directories. This broke the shared mcp-servers/
architecture because relative paths like ../../mcp-servers/ resolved
to non-existent locations in the cache.

Changes:
- Move gitea and wikijs MCP servers into plugins/projman/mcp-servers/
- Move netbox MCP server into plugins/cmdb-assistant/mcp-servers/
- Update .mcp.json files to use ${CLAUDE_PLUGIN_ROOT}/mcp-servers/
- Update setup.sh to handle new bundled structure
- Add netbox.env config template to setup.sh
- Update CLAUDE.md and CANONICAL-PATHS.md documentation

This ensures plugins work correctly when installed and cached.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 17:23:02 -05:00
6c77c264f6 Merge pull request 'fix: correct labels path in setup.sh' (#25) from development into main
Reviewed-on: bandit/support-claude-mktplace#25
2025-12-15 22:09:32 +00:00
c73e4c4794 fix: correct labels path in setup.sh
Path was missing plugins/ directory prefix.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 17:08:58 -05:00
b3a41f722c Merge pull request 'development' (#24) from development into main
Reviewed-on: bandit/support-claude-mktplace#24
2025-12-12 17:38:07 +00:00
1bd2a5031b refactor: rename marketplace to bandit-claude-marketplace
- Changed marketplace name from projman-marketplace to bandit-claude-marketplace
- Updated all references in:
  - .claude-plugin/marketplace.json
  - README.md (installation instructions, structure diagram)
  - docs/CANONICAL-PATHS.md (structure and path examples)
- Cleaned up documentation to reflect correct marketplace location at repo root

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 12:35:41 -05:00
8292e6766b fix: restructure plugin system for Claude Code compatibility
Major fixes for Claude Code plugin installation:

1. Moved marketplace.json to repo root (.claude-plugin/)
   - Fixes known bug #11243, #11278 with local marketplace path resolution
   - Claude Code uses marketplace.json file path as base, not directory

2. Simplified plugin.json manifests
   - Removed commands/agents/skills directory declarations
   - Claude Code auto-discovers these from standard directories
   - Specifying directories caused "must end with .md" validation errors

3. Cleaned command frontmatter
   - Removed non-standard fields (name, agent, arguments)
   - Only description field is valid in command frontmatter

4. Removed deprecated claude-plugin-developer skill
   - Skill was never properly integrated
   - Removed from repo and all documentation references

All three plugins now validate successfully:
- projman: Sprint planning with Gitea/Wiki.js
- cmdb-assistant: NetBox CMDB integration
- project-hygiene: Post-task cleanup hooks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 12:29:27 -05:00
8afea1d163 fix: correct relative paths in marketplace.json
Changed from ./../../../plugins/ to ./../../plugins/
Path resolution is from marketplace directory, not from marketplace.json file.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 11:55:23 -05:00
011251c84e fix: use directory path format for commands/agents/skills
Claude Code requires simple directory paths like "./commands/"
not object declarations with individual entries.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 11:48:06 -05:00
97085021a9 Merge pull request 'fix: add missing plugin declarations and fix hardcoded paths' (#23) from development into main
Reviewed-on: bandit/support-claude-mktplace#23
2025-12-12 15:57:19 +00:00
cff97eb3bb fix: add missing plugin declarations and fix hardcoded paths
- projman/plugin.json: Added commands, agents, and skills declarations
- project-hygiene/plugin.json: Added hooks declaration for PostToolUse
- projman/.mcp.json: Changed hardcoded paths to ${CLAUDE_PLUGIN_ROOT}
- cmdb-assistant/.mcp.json: Changed hardcoded paths to ${CLAUDE_PLUGIN_ROOT}

Plugins were not being recognized because plugin.json files only had
metadata but no component declarations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 10:47:00 -05:00
eb2c184641 Merge pull request 'development' (#22) from development into main
Reviewed-on: bandit/support-claude-mktplace#22
2025-12-12 07:13:09 +00:00
310bd34e82 refactor: simplify gitea config to use owner/repo format
- Remove separate GITEA_OWNER config, use owner/repo format everywhere
- Add _parse_repo() helper to extract owner and repo from combined string
- Update plugin.json schema: file -> source, author as object
- Remove redundant configuration section from cmdb-assistant plugin
- Simplify gitea_client.py by removing excessive docstrings

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 02:12:22 -05:00
b067802da8 docs: update references and plugin configurations
- Update manifest-schema.md with latest schema changes
- Refine CLAUDE.md documentation
- Update MCP-WIKIJS, PLUGIN-PMO, PLUGIN-PROJMAN references
- Fix wikijs_client.py configuration
- Update plugin configs for cmdb-assistant and projman
- Add root .mcp.json for project-level MCP configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 01:25:49 -05:00
5cfe858b12 Merge pull request 'Add path safeguards to prevent structural damage' (#21) from development into main
Reviewed-on: bandit/support-claude-mktplace#21
2025-12-12 05:15:04 +00:00
b53aa7cb23 Add path safeguards to prevent structural damage
- Create docs/CANONICAL-PATHS.md as single source of truth
- Add mandatory path verification rules to CLAUDE.md
- Remove dead reference to CORRECT-ARCHITECTURE.md
- Add recovery protocol for path issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 00:13:34 -05:00
628180b9d1 Merge pull request 'feat: restore cmdb-assistant plugin and fix marketplace paths' (#20) from development into main 2025-12-12 04:41:47 +00:00
dc4f751240 feat: restore cmdb-assistant plugin and fix marketplace paths
- Restored cmdb-assistant plugin from commit ba599e3
- Moved to plugins/cmdb-assistant/ following new structure
- Updated .mcp.json path to ../../mcp-servers/netbox
- Fixed marketplace.json paths for all plugins (now in plugins/)
- Updated README.md with cmdb-assistant link and structure
- Updated CLAUDE.md governance to include cmdb-assistant

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 23:38:07 -05:00
732f0e62eb Merge pull request 'refactor: consolidate plugins into plugins/ directory' (#19) from development into main
Reviewed-on: bandit/support-claude-mktplace#19
2025-12-12 04:30:22 +00:00
e9e425933b refactor: consolidate plugins into plugins/ directory
- Created plugins/ directory to centralize all plugins
- Moved projman and project-hygiene into plugins/
- Updated .mcp.json paths from ../mcp-servers/ to ../../mcp-servers/
- Updated CLAUDE.md governance section with new directory structure
- Updated README.md with new repository structure diagram
- Fixed all path references in documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 23:26:38 -05:00
29e624581a Merge pull request 'feat: project refactoring - folder cleanup, governance, and automation' (#18) from development into main
Reviewed-on: bandit/support-claude-mktplace#18
2025-12-12 03:22:46 +00:00
8bb69d3556 feat: project refactoring - folder cleanup, governance, and automation
Project Structure Cleanup:
- Remove deprecated cmdb-assistant plugin
- Remove development output files (test scripts, status reports)
- Remove IDE-specific workspace files
- Create scripts/ directory for automation
- Create docs/architecture/ for Draw.io diagrams
- Create docs/workflows/ for workflow documentation
- Create .scratch/ directory for transient work

Governance & Documentation:
- Add File Creation Governance section to CLAUDE.md
- Add architecture diagram specifications (component-map, agent-workflow)
- Add docs/UPDATING.md with update workflow
- Update CHANGELOG.md with all changes

Installation Automation:
- Add scripts/setup.sh for initial installation
- Add scripts/post-update.sh for updates after git pull
- Add /initial-setup slash command

Maintenance:
- Update .gitignore with scratch directory
- Fix all project name references (use support-claude-mktplace)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 22:17:27 -05:00
4ae8be8bbc Merge pull request 'fix: critical plugin structure and configuration fixes' (#17) from development into main
Reviewed-on: bandit/support-claude-mktplace#17
2025-12-11 04:53:21 +00:00
b6a77d9b35 fix: critical plugin structure and configuration fixes
- Fix hooks.json: use valid PostToolUse event (not invalid task-completed)
- Move projman/plugin.json to projman/.claude-plugin/plugin.json
- Fix projman/.mcp.json to use venv python paths
- Add cmdb-assistant to marketplace.json
- Update .gitignore: allow .env files (private repo)
- Fix create_labels.py: use env vars instead of hardcoded token
- Add CLAUDE.md critical rules section to prevent future mistakes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 23:51:43 -05:00
2fafb6b85d Merge pull request 'fix: remove unsupported config/permissions keys from plugin.json' (#16) from development into main
Reviewed-on: bandit/support-claude-mktplace#16
2025-12-10 17:00:16 +00:00
7f20d06470 fix: remove unsupported config/permissions keys from plugin.json
Claude Code manifest schema only recognizes: name, version, description,
author, license, keywords, repository

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 11:58:56 -05:00
740b3bedd5 Merge pull request 'development' (#15) from development into main
Reviewed-on: bandit/support-claude-mktplace#15
2025-12-10 16:42:02 +00:00
239a4869b4 docs: add comprehensive README with project documentation links
Main repository README now includes:
- Overview of all plugins (projman, cmdb-assistant, project-hygiene)
- MCP server documentation links (Gitea, Wiki.js, NetBox)
- Installation and quick start guide
- Repository structure overview
- Links to reference documentation and testing reports
- Development and roadmap sections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 11:40:10 -05:00
b611b08283 feat: add project-hygiene plugin
Post-task cleanup hook that runs after Claude completes work:
- Deletes temp files (*.tmp, *.bak, __pycache__, etc.)
- Warns about unexpected files in project root
- Identifies orphaned files (test_*, debug_*, *_backup.*)
- Logs actions to .dev/logs/
- Supports project-local config via .hygiene.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 11:23:13 -05:00
ccc4ed418a Merge pull request 'fix: repository field must be string not object' (#14) from development into main
Reviewed-on: bandit/support-claude-mktplace#14
2025-12-09 19:18:16 +00:00
0b0bbaf093 fix: repository field must be string not object
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 14:17:41 -05:00
cefde5a2a3 Merge pull request 'fix: move plugin.json to root level' (#13) from development into main
Reviewed-on: bandit/support-claude-mktplace#13
2025-12-09 19:11:32 +00:00
78cac812ce fix: move plugin.json to root level
Claude Code expects plugin.json at the plugin root, not inside
.claude-plugin/ folder. Also simplified the manifest to match
working plugins that auto-discover commands from commands/ folder.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 14:10:29 -05:00
3c04489e71 Merge pull request 'fix: source path must start with ./' (#12) from development into main
Reviewed-on: bandit/support-claude-mktplace#12
2025-12-09 18:59:33 +00:00
3519a0ed67 fix: source path must start with ./
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 13:58:59 -05:00
70d4e13e61 Merge pull request 'fix: correct marketplace.json schema' (#11) from development into main
Reviewed-on: bandit/support-claude-mktplace#11
2025-12-09 18:58:05 +00:00
8860c02afc fix: correct marketplace.json schema
- Add required owner field with name and email
- Change source from object to string path
- Remove unsupported fields: displayName, featured, version, author

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 13:56:51 -05:00
529eeb66a3 Merge pull request 'fix: move marketplace.json into .claude-plugin folder' (#10) from development into main
Reviewed-on: bandit/support-claude-mktplace#10
2025-12-09 18:53:55 +00:00
c4544fe2a7 fix: move marketplace.json into .claude-plugin folder
Claude Code requires marketplace.json to be inside a .claude-plugin/
folder for proper detection as a valid marketplace.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 13:53:18 -05:00
a3cb806f35 Merge pull request 'refactor: rename projman-test-marketplace to projman-marketplace' (#9) from development into main
Reviewed-on: bandit/support-claude-mktplace#9
2025-12-09 18:42:15 +00:00
816cdc02d9 refactor: rename projman-test-marketplace to projman-marketplace
- Remove empty marketplace.json placeholder file
- Rename projman-test-marketplace/ to projman-marketplace/
- Update marketplace metadata (name, displayName, description)
- Update all documentation references

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 13:39:50 -05:00
d461673cb6 Merge pull request 'development' (#8) from development into main
Reviewed-on: bandit/support-claude-mktplace#8
2025-12-09 16:56:49 +00:00
ba599e342e refactor: update repository URL and rebrand to Bandit Labs
- Update git remote to new Tailscale hostname
- Replace old organization name (hhl-infra) with bandit
- Replace old repository name (claude-code-hhl-toolkit) with support-claude-mktplace
- Update all documentation references to use generic gitea.example.com
- Rebrand from HyperHive Labs to Bandit Labs across all files
- Rename workspace file to match new repository name

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 11:51:13 -05:00
a31447e28f feat: add NetBox MCP server for infrastructure management
Comprehensive MCP server covering the entire NetBox REST API:
- DCIM: sites, racks, devices, interfaces, cables, power
- IPAM: prefixes, IP addresses, VLANs, VRFs, ASNs
- Circuits: providers, circuits, terminations
- Virtualization: clusters, VMs, VM interfaces
- Tenancy: tenants, contacts, contact assignments
- VPN: tunnels, IKE/IPSec policies, L2VPN
- Wireless: WLANs, links, groups
- Extras: tags, custom fields, webhooks, audit log

Features:
- 100+ MCP tools for full CRUD operations
- Auto-pagination handling
- Hybrid config (system + project level)
- Available prefix/IP allocation support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 12:15:17 -05:00
0f34ca45bb Merge pull request 'development' (#7) from development into main
Reviewed-on: bandit/support-claude-mktplace#7
2025-12-03 15:24:32 +00:00
c9d8a91c83 Merge pull request 'feat/projman' (#6) from feat/projman into development
Reviewed-on: bandit/support-claude-mktplace#6
2025-12-03 15:24:00 +00:00
742ebd2533 docs: comprehensive testing report for Projman plugin
Testing Summary:
-  MCP servers (Gitea + Wiki.js) fully functional
-  Label system complete (43 labels created and synced)
-  Issue creation with automatic label resolution working
-  Label suggestion logic intelligent and accurate
-  Configuration system (hybrid) working perfectly

Tests Performed:
1. Pre-flight checks (MCP servers, configuration)
2. Label sync testing (43/43 labels fetched and synced)
3. Label suggestion testing (3 contexts, all accurate)
4. Issue creation testing (2 test issues created in Gitea)
5. Label ID resolution fix (automatic name→ID conversion)

Issues Fixed:
1. Wiki.js MCP server files restored from git
2. Label ID resolution added to create_issue

Test Artifacts:
- Issue #4: Manual test with 4 labels 
- Issue #5: Automated test with 11 labels 
- Updated labels-reference.md with current taxonomy
- Comprehensive testing documentation

Status: PRODUCTION READY (Core Features)
Recommendation: APPROVED for production sprint testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 10:30:18 -05:00
66da25f899 fix: add label ID resolution to Gitea create_issue
Problem:
- Gitea API expects label IDs (integers), not label names (strings)
- Previous implementation passed label names directly, causing 422 errors

Solution:
- Added _resolve_label_ids() method to convert names to IDs
- Fetches all labels (org + repo) and builds name->ID mapping
- Automatically resolves IDs before creating issues

Testing:
- Created test issue #4 with 4 labels (manual verification)
- Created test issue #5 with 11 labels (automated testing)
- All labels applied correctly in Gitea

Also updated:
- projman/skills/label-taxonomy/labels-reference.md with current taxonomy
- Status updated to "Synced with Gitea" (43 labels total)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 10:28:27 -05:00
1245862587 docs: add comprehensive status update for label creation
Status: Labels Created & Verified - Ready for Plugin Testing

Summary:
-  43 labels created in Gitea (27 org + 16 repo)
-  MCP server verified working (100% test pass)
-  Label suggestions tested and accurate
-  Documentation complete

Next: Full plugin functional testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 09:43:11 -05:00
3e571f0783 test: verify MCP server fetches all 43 labels correctly
Added comprehensive test for label fetching:
- Verifies 27 org labels + 16 repo labels = 43 total
- Tests label categorization
- Validates label suggestion logic

Test Results:  PASSED
- Organization labels: 27/27 
- Repository labels: 16/16 
- Total labels: 43/43 
- Label suggestions working correctly 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 09:42:25 -05:00
73fb5769ee feat: create all 43 labels in Gitea (27 org + 16 repo)
Successfully created complete label taxonomy:
- 27 organization labels (Agent, Complexity, Efforts, Priority, Risk, Source, Type)
- 16 repository labels (Component, Tech)
- All labels verified via API

Created:
- create_labels.py: Batch label creation script
- docs/LABEL_CREATION_COMPLETE.md: Verification and documentation

Corrected documentation: Total is 43 labels (not 44)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-21 09:37:50 -05:00