66 Commits

Author SHA1 Message Date
113839b0d8 feat: add plugin integration analysis to config-analyze command
Add automatic detection of active marketplace plugins and verification
that CLAUDE.md properly references them. This ensures projects using
marketplace plugins will have proper documentation to guide Claude Code
in using available tools.

Changes:
- Add claude-md-integration.md snippets to all 4 plugins (projman,
  cmdb-assistant, claude-config-maintainer, project-hygiene)
- Update marketplace.json with MCP server mappings for plugin detection
- Enhance /config-analyze to detect active plugins via MCP server names
- Update maintainer agent with plugin integration workflow
- Add plugin coverage percentage to analysis report
- User confirmation required before adding plugin references

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v2.1.0
2026-01-19 18:24:29 -05:00
15e0654950 chore: rebrand for public release
- Move repository from bandit to personal-projects organization
- Remove all "Bandit Labs" references
- Update author to Leo Miranda
- Rename marketplace from bandit-claude-marketplace to claude-code-marketplace
- Add MIT LICENSE file
- Remove outdated root .mcp.json (MCP servers now bundled in plugins)
- Update all repository URLs to new location

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v2.0.1
2026-01-19 17:49:40 -05:00
deae9a71d0 chore: release v2.0.0
- Remove Roadmap section from README (no longer representative)
- Update all version references to 2.0.0
- marketplace.json: 2.0.0
- projman plugin: 2.0.0
- Update documentation version references

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v2.0.0
2026-01-19 17:21:42 -05:00
ee33f63c9c docs: update CONFIGURATION.md for v1.0.0
- Remove Wiki.js configuration (replaced by Gitea Wiki)
- Update MCP server paths (bundled in plugin)
- Update token permissions for wiki access
- Simplify setup steps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:17:30 -05:00
657b7a7a6f docs: update README files for v1.0.0 release
- Update main README with new structure (MCP servers bundled in plugins)
- Remove Wiki.js references (replaced by Gitea Wiki)
- Add claude-config-maintainer plugin documentation
- Update projman README with new tools and features
- Update installation instructions for bundled MCP servers

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:16:16 -05:00
74b28170fa feat: major improvements to projman plugin v1.0.0
- Remove Wiki.js MCP server entirely
- Add wiki, milestone, and dependency tools to Gitea MCP server
- Add parallel execution support based on dependency graph
- Add mandatory pre-planning validations (org check, labels, docs/changes)
- Add CLI blocking rules to all agents (API-only)
- Add standardized task naming: [Sprint XX] <type>: <description>
- Add branch naming convention: feat/, fix/, debug/ prefixes
- Add MR body template without subtasks
- Add auto-close issues via commit keywords
- Create claude-config-maintainer plugin for CLAUDE.md optimization
- Update all sprint commands with new tools and workflows
- Update documentation to remove Wiki.js references

New MCP tools:
- Wiki: list_wiki_pages, get_wiki_page, create_wiki_page, create_lesson, search_lessons
- Milestones: list_milestones, get_milestone, create_milestone, update_milestone
- Dependencies: list_issue_dependencies, create_issue_dependency, get_execution_order
- Validation: validate_repo_org, get_branch_protection, create_label

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 17:12:35 -05:00
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
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
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
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
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
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