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>
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>
- 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>
- 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>
- 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>
- 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>
- 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>
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>
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>
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>
- 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>
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>
- 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>
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>
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>
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>