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>
This commit is contained in:
2025-12-09 11:51:13 -05:00
parent a31447e28f
commit ba599e342e
35 changed files with 658 additions and 142 deletions

View File

@@ -3,7 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"displayName": "Projman Test Marketplace", "displayName": "Projman Test Marketplace",
"description": "Local marketplace for testing the Projman plugin", "description": "Local marketplace for testing the Projman plugin",
"author": "Hyper Hive Labs", "author": "Bandit Labs",
"plugins": [ "plugins": [
{ {
"name": "projman", "name": "projman",

View File

@@ -98,7 +98,7 @@ Complete JSON schema reference for `.claude-plugin/plugin.json` files.
"version": "2.1.0", "version": "2.1.0",
"description": "Automated deployment tools for cloud platforms", "description": "Automated deployment tools for cloud platforms",
"author": { "author": {
"name": "Hyper Hive Labs", "name": "Bandit Labs",
"email": "plugins@hyperhivelabs.com", "email": "plugins@hyperhivelabs.com",
"url": "https://hyperhivelabs.com" "url": "https://hyperhivelabs.com"
}, },

View File

@@ -59,7 +59,7 @@ claude plugin marketplace add https://plugins.example.com
### marketplace.json Structure ### marketplace.json Structure
```json ```json
{ {
"name": "Hyper Hive Labs Plugins", "name": "Bandit Labs Plugins",
"description": "Restaurant automation and AI tools", "description": "Restaurant automation and AI tools",
"version": "1.0.0", "version": "1.0.0",
"plugins": [ "plugins": [
@@ -67,7 +67,7 @@ claude plugin marketplace add https://plugins.example.com
"name": "restaurant-analytics", "name": "restaurant-analytics",
"version": "2.1.0", "version": "2.1.0",
"description": "Analytics dashboard for restaurant data", "description": "Analytics dashboard for restaurant data",
"author": "Hyper Hive Labs", "author": "Bandit Labs",
"path": "plugins/restaurant-analytics", "path": "plugins/restaurant-analytics",
"tags": ["analytics", "restaurant", "reporting"], "tags": ["analytics", "restaurant", "reporting"],
"requirements": { "requirements": {
@@ -79,7 +79,7 @@ claude plugin marketplace add https://plugins.example.com
"name": "order-automation", "name": "order-automation",
"version": "1.5.2", "version": "1.5.2",
"description": "Automated order processing system", "description": "Automated order processing system",
"author": "Hyper Hive Labs", "author": "Bandit Labs",
"path": "plugins/order-automation", "path": "plugins/order-automation",
"featured": true, "featured": true,
"beta": false "beta": false

View File

@@ -163,7 +163,7 @@ See [docs/reference-material/projman-implementation-plan.md](docs/reference-mate
⚠️ **See `docs/CORRECT-ARCHITECTURE.md` for the authoritative structure reference** ⚠️ **See `docs/CORRECT-ARCHITECTURE.md` for the authoritative structure reference**
``` ```
hhl-infra/claude-code-hhl-toolkit/ bandit/support-claude-mktplace/
├── .claude-plugin/ ├── .claude-plugin/
│ └── marketplace.json │ └── marketplace.json
├── mcp-servers/ # ← SHARED BY BOTH PLUGINS ├── mcp-servers/ # ← SHARED BY BOTH PLUGINS

View File

@@ -0,0 +1,65 @@
{
"name": "cmdb-assistant",
"version": "1.0.0",
"description": "NetBox CMDB integration for infrastructure management - query, create, update, and manage network devices, IP addresses, sites, and more",
"author": "Bandit Labs",
"homepage": "https://github.com/bandit-labs/cmdb-assistant",
"license": "MIT",
"keywords": [
"netbox",
"cmdb",
"infrastructure",
"network",
"ipam",
"dcim"
],
"commands": {
"cmdb-search": {
"description": "Search NetBox for devices, IPs, sites, or any CMDB object",
"file": "commands/cmdb-search.md"
},
"cmdb-device": {
"description": "Manage network devices (create, view, update, delete)",
"file": "commands/cmdb-device.md"
},
"cmdb-ip": {
"description": "Manage IP addresses and prefixes",
"file": "commands/cmdb-ip.md"
},
"cmdb-site": {
"description": "Manage sites and locations",
"file": "commands/cmdb-site.md"
}
},
"agents": {
"cmdb-assistant": {
"description": "Infrastructure management assistant for NetBox CMDB operations",
"file": "agents/cmdb-assistant.md"
}
},
"mcpServers": {
"netbox": {
"description": "NetBox API integration via MCP",
"configFile": ".mcp.json"
}
},
"configuration": {
"required": [
{
"name": "NETBOX_URL",
"description": "NetBox instance URL (e.g., https://netbox.example.com)"
},
{
"name": "NETBOX_TOKEN",
"description": "NetBox API token for authentication"
}
],
"optional": [
{
"name": "NETBOX_VERIFY_SSL",
"description": "Verify SSL certificates (default: true)",
"default": "true"
}
]
}
}

9
cmdb-assistant/.mcp.json Normal file
View File

@@ -0,0 +1,9 @@
{
"mcpServers": {
"netbox": {
"command": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/netbox/.venv/bin/python",
"args": ["-m", "mcp_server.server"],
"cwd": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/netbox"
}
}
}

170
cmdb-assistant/README.md Normal file
View File

@@ -0,0 +1,170 @@
# CMDB Assistant
A Claude Code plugin for NetBox CMDB integration - query, create, update, and manage your network infrastructure directly from Claude Code.
## Features
- **Full CRUD Operations**: Create, read, update, and delete across all NetBox modules
- **Smart Search**: Find devices, IPs, sites, and more with natural language queries
- **IP Management**: Allocate IPs, manage prefixes, track VLANs
- **Infrastructure Documentation**: Document servers, network devices, and connections
- **Audit Trail**: Review changes and maintain infrastructure history
## Installation
### Prerequisites
1. A running NetBox instance (v4.x recommended)
2. NetBox API token with appropriate permissions
3. The NetBox MCP server configured (see below)
### Configure NetBox Credentials
Create the configuration file:
```bash
mkdir -p ~/.config/claude
cat > ~/.config/claude/netbox.env << 'EOF'
NETBOX_API_URL=https://your-netbox-instance/api
NETBOX_API_TOKEN=your-api-token-here
NETBOX_VERIFY_SSL=true
NETBOX_TIMEOUT=30
EOF
```
### Install the Plugin
Add to your Claude Code plugins or marketplace configuration.
## Commands
| Command | Description |
|---------|-------------|
| `/cmdb-search <query>` | Search for devices, IPs, sites, or any CMDB object |
| `/cmdb-device <action>` | Manage network devices (list, create, update, delete) |
| `/cmdb-ip <action>` | Manage IP addresses and prefixes |
| `/cmdb-site <action>` | Manage sites and locations |
## Agent
The **cmdb-assistant** agent provides conversational infrastructure management:
```
@cmdb-assistant Show me all devices at the headquarters site
@cmdb-assistant Allocate the next available IP from 10.0.1.0/24 for the new web server
@cmdb-assistant What changes were made to the network today?
```
## Usage Examples
### Search for Infrastructure
```
/cmdb-search router
/cmdb-search 10.0.1.0/24
/cmdb-search datacenter
```
### Device Management
```
/cmdb-device list
/cmdb-device show core-router-01
/cmdb-device create web-server-03
/cmdb-device at headquarters
```
### IP Address Management
```
/cmdb-ip prefixes
/cmdb-ip available in 10.0.1.0/24
/cmdb-ip allocate from 10.0.1.0/24
```
### Site Management
```
/cmdb-site list
/cmdb-site show headquarters
/cmdb-site racks at datacenter-east
```
## NetBox Coverage
This plugin provides access to the full NetBox API:
- **DCIM**: Sites, Locations, Racks, Devices, Interfaces, Cables, Power
- **IPAM**: IP Addresses, Prefixes, VLANs, VRFs, ASNs, Services
- **Circuits**: Providers, Circuits, Terminations
- **Virtualization**: Clusters, Virtual Machines, VM Interfaces
- **Tenancy**: Tenants, Contacts
- **VPN**: Tunnels, L2VPNs, IKE/IPSec Policies
- **Wireless**: WLANs, Wireless Links
- **Extras**: Tags, Custom Fields, Journal Entries, Audit Log
## Architecture
```
cmdb-assistant/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── .mcp.json # MCP server configuration
├── commands/
│ ├── cmdb-search.md # Search command
│ ├── cmdb-device.md # Device management
│ ├── cmdb-ip.md # IP management
│ └── cmdb-site.md # Site management
├── agents/
│ └── cmdb-assistant.md # Main assistant agent
└── README.md
```
The plugin uses the shared NetBox MCP server at `../mcp-servers/netbox/`.
## Configuration
### Required Environment Variables
| Variable | Description |
|----------|-------------|
| `NETBOX_API_URL` | Full URL to NetBox API (e.g., `https://netbox.example.com/api`) |
| `NETBOX_API_TOKEN` | API authentication token |
### Optional Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `NETBOX_VERIFY_SSL` | `true` | Verify SSL certificates |
| `NETBOX_TIMEOUT` | `30` | Request timeout in seconds |
## Getting a NetBox API Token
1. Log into your NetBox instance
2. Navigate to your profile (top-right menu)
3. Go to "API Tokens"
4. Click "Add a token"
5. Set appropriate permissions (read-only or read-write)
6. Copy the generated token
## Troubleshooting
### Connection Issues
- Verify `NETBOX_API_URL` is correct and accessible
- Check firewall rules allow access to NetBox
- For self-signed certificates, set `NETBOX_VERIFY_SSL=false`
### Authentication Errors
- Ensure API token is valid and not expired
- Check token has required permissions for the operation
### Timeout Errors
- Increase `NETBOX_TIMEOUT` for slow connections
- Check network latency to NetBox instance
## License
MIT License - Part of the Bandit Labs plugin collection.

View File

@@ -0,0 +1,78 @@
# CMDB Assistant Agent
You are an infrastructure management assistant specialized in NetBox CMDB operations. You help users query, document, and manage their network infrastructure.
## Capabilities
You have full access to NetBox via MCP tools covering:
- **DCIM**: Sites, locations, racks, devices, interfaces, cables, power
- **IPAM**: IP addresses, prefixes, VLANs, VRFs, ASNs, services
- **Circuits**: Providers, circuits, terminations
- **Virtualization**: Clusters, VMs, VM interfaces
- **Tenancy**: Tenants, contacts
- **VPN**: Tunnels, L2VPNs, IKE/IPSec policies
- **Wireless**: WLANs, wireless links
- **Extras**: Tags, custom fields, journal entries, audit log
## Behavior Guidelines
### Query Operations
- Start with list operations to find objects
- Use filters to narrow results (name, status, site_id, etc.)
- Follow up with get operations for detailed information
- Present results in clear, organized format
### Create Operations
- Always confirm required fields with user before creating
- Look up related object IDs (device_type, role, site) first
- Provide the created object details after success
- Suggest follow-up actions (add interfaces, assign IPs, etc.)
### Update Operations
- Show current values before updating
- Confirm changes with user
- Report what was changed after success
### Delete Operations
- ALWAYS ask for explicit confirmation before deleting
- Show what will be deleted
- Warn about dependent objects that may be affected
## Common Workflows
### Document a New Server
1. Create device with `dcim_create_device`
2. Add interfaces with `dcim_create_interface`
3. Assign IPs with `ipam_create_ip_address`
4. Add journal entry with `extras_create_journal_entry`
### Allocate IP Space
1. Find available prefixes with `ipam_list_available_prefixes`
2. Create prefix with `ipam_create_prefix` or `ipam_create_available_prefix`
3. Allocate IPs with `ipam_create_available_ip`
### Audit Infrastructure
1. List recent changes with `extras_list_object_changes`
2. Review devices by site with `dcim_list_devices`
3. Check IP utilization with prefix operations
### Cable Management
1. List interfaces with `dcim_list_interfaces`
2. Create cable with `dcim_create_cable`
3. Verify connectivity
## Response Format
When presenting data:
- Use tables for lists
- Highlight key fields (name, status, IPs)
- Include IDs for reference in follow-up operations
- Suggest next steps when appropriate
## Error Handling
- If an operation fails, explain why clearly
- Suggest corrective actions
- For permission errors, note what access is needed
- For validation errors, explain required fields/formats

View File

@@ -0,0 +1,52 @@
# CMDB Device Management
Manage network devices in NetBox - create, view, update, or delete.
## Usage
```
/cmdb-device <action> [options]
```
## Instructions
You are a device management assistant with full CRUD access to NetBox devices.
### Actions
**List/View:**
- `list` or `show all` - List all devices using `dcim_list_devices`
- `show <name>` - Get device details using `dcim_list_devices` with name filter, then `dcim_get_device`
- `at <site>` - List devices at a specific site
**Create:**
- `create <name>` - Create a new device
- Required: name, device_type, role, site
- Use `dcim_list_device_types`, `dcim_list_device_roles`, `dcim_list_sites` to help user find IDs
- Then use `dcim_create_device`
**Update:**
- `update <name>` - Update device properties
- First get the device ID, then use `dcim_update_device`
**Delete:**
- `delete <name>` - Delete a device (ask for confirmation first)
- Use `dcim_delete_device`
### Related Operations
After creating a device, offer to:
- Add interfaces with `dcim_create_interface`
- Assign IP addresses with `ipam_create_ip_address`
- Add to a rack with `dcim_update_device`
## Examples
- `/cmdb-device list` - Show all devices
- `/cmdb-device show core-router-01` - Get details for specific device
- `/cmdb-device create web-server-03` - Create a new device
- `/cmdb-device at headquarters` - List devices at headquarters site
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,53 @@
# CMDB IP Management
Manage IP addresses and prefixes in NetBox.
## Usage
```
/cmdb-ip <action> [options]
```
## Instructions
You are an IP address management (IPAM) assistant with access to NetBox.
### Actions
**Prefixes:**
- `prefixes` - List all prefixes using `ipam_list_prefixes`
- `prefix <cidr>` - Get prefix details or find prefix containing address
- `available in <prefix>` - Show available IPs in a prefix using `ipam_list_available_ips`
- `create prefix <cidr>` - Create new prefix using `ipam_create_prefix`
**IP Addresses:**
- `list` - List all IP addresses using `ipam_list_ip_addresses`
- `show <address>` - Get IP details
- `allocate from <prefix>` - Auto-allocate next available IP using `ipam_create_available_ip`
- `create <address>` - Create specific IP using `ipam_create_ip_address`
- `assign <ip> to <device>` - Assign IP to device interface
**VLANs:**
- `vlans` - List VLANs using `ipam_list_vlans`
- `vlan <id>` - Get VLAN details
**VRFs:**
- `vrfs` - List VRFs using `ipam_list_vrfs`
### Workflow Examples
**Allocate IP to new server:**
1. Find available IPs in target prefix
2. Create the IP address
3. Assign to device interface
## Examples
- `/cmdb-ip prefixes` - List all prefixes
- `/cmdb-ip available in 10.0.1.0/24` - Show available IPs
- `/cmdb-ip allocate from 10.0.1.0/24` - Get next available IP
- `/cmdb-ip assign 10.0.1.50/24 to web-server-01 eth0` - Assign IP to interface
## User Request
$ARGUMENTS

View File

@@ -0,0 +1,34 @@
# CMDB Search
Search NetBox for devices, IPs, sites, or any CMDB object.
## Usage
```
/cmdb-search <query>
```
## Instructions
You are a CMDB search assistant with access to NetBox via MCP tools.
When the user provides a search query, determine the best approach:
1. **Device search**: Use `dcim_list_devices` with name filter
2. **IP search**: Use `ipam_list_ip_addresses` with address filter
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
For broad searches, query multiple endpoints and consolidate results.
## Examples
- `/cmdb-search router` - Find all devices with "router" in the name
- `/cmdb-search 10.0.1.0/24` - Find prefix and IPs within it
- `/cmdb-search datacenter` - Find sites matching "datacenter"
## User Query
$ARGUMENTS

View File

@@ -0,0 +1,56 @@
# CMDB Site Management
Manage sites and locations in NetBox.
## Usage
```
/cmdb-site <action> [options]
```
## Instructions
You are a site/location management assistant with access to NetBox.
### Actions
**Sites:**
- `list` - List all sites using `dcim_list_sites`
- `show <name>` - Get site details using `dcim_get_site`
- `create <name>` - Create new site using `dcim_create_site`
- `update <name>` - Update site using `dcim_update_site`
- `delete <name>` - Delete site (with confirmation)
**Locations (within sites):**
- `locations at <site>` - List locations using `dcim_list_locations`
- `create location <name> at <site>` - Create location using `dcim_create_location`
**Racks:**
- `racks at <site>` - List racks using `dcim_list_racks`
- `create rack <name> at <site>` - Create rack using `dcim_create_rack`
**Regions:**
- `regions` - List regions using `dcim_list_regions`
- `create region <name>` - Create region using `dcim_create_region`
### Site Properties
When creating/updating sites:
- name (required)
- slug (required, auto-generated if not provided)
- status: active, planned, staging, decommissioning, retired
- region: parent region ID
- facility: datacenter/building name
- physical_address, shipping_address
- time_zone
## Examples
- `/cmdb-site list` - Show all sites
- `/cmdb-site show headquarters` - Get HQ site details
- `/cmdb-site create branch-office-nyc` - Create new site
- `/cmdb-site racks at headquarters` - List racks at HQ
## User Request
$ARGUMENTS

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
""" """
Batch create Gitea labels via API for hhl-infra organization Batch create Gitea labels via API for bandit organization
Creates 28 organization labels + 16 repository labels = 44 total Creates 28 organization labels + 16 repository labels = 44 total
""" """
import requests import requests
import sys import sys
GITEA_URL = "https://gitea.hotserv.cloud" GITEA_URL = "https://gitea.example.com"
TOKEN = "ae72c63cd7de02e40bd16f66d1e98059c187759b" TOKEN = "ae72c63cd7de02e40bd16f66d1e98059c187759b"
ORG = "hhl-infra" ORG = "bandit"
REPO = "claude-code-hhl-toolkit" REPO = "support-claude-mktplace"
headers = {"Authorization": f"token {TOKEN}", "Content-Type": "application/json"} headers = {"Authorization": f"token {TOKEN}", "Content-Type": "application/json"}
@@ -196,7 +196,7 @@ def verify_labels():
def main(): def main():
print(f"\n{'#'*60}") print(f"\n{'#'*60}")
print("# Gitea Label Creation Script") print("# Gitea Label Creation Script")
print("# Creating 44-label taxonomy for hhl-infra organization") print("# Creating 44-label taxonomy for bandit organization")
print(f"{'#'*60}") print(f"{'#'*60}")
# Create organization labels # Create organization labels

View File

@@ -1,7 +1,7 @@
# Quick Guide: Creating Label Taxonomy in Gitea # Quick Guide: Creating Label Taxonomy in Gitea
**Estimated Time:** 15-20 minutes **Estimated Time:** 15-20 minutes
**Required:** Admin access to hhl-infra organization in Gitea **Required:** Admin access to bandit organization in Gitea
## Why This Is Needed ## Why This Is Needed
@@ -16,9 +16,9 @@ The Projman plugin depends on a 44-label taxonomy system for:
## Step 1: Create Organization Labels (28 labels) ## Step 1: Create Organization Labels (28 labels)
**Navigate to:** https://gitea.hotserv.cloud/org/hhl-infra/settings/labels **Navigate to:** https://gitea.example.com/org/bandit/settings/labels
These labels will be available to ALL repositories in hhl-infra organization. These labels will be available to ALL repositories in bandit organization.
### Agent (2 labels) ### Agent (2 labels)
| Name | Color | Description | | Name | Color | Description |
@@ -79,9 +79,9 @@ These labels will be available to ALL repositories in hhl-infra organization.
## Step 2: Create Repository Labels (16 labels) ## Step 2: Create Repository Labels (16 labels)
**Navigate to:** https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/labels **Navigate to:** https://gitea.example.com/bandit/support-claude-mktplace/labels
These labels are specific to the claude-code-hhl-toolkit repository. These labels are specific to the support-claude-mktplace repository.
### Component (9 labels) ### Component (9 labels)
| Name | Color | Description | | Name | Color | Description |
@@ -115,11 +115,11 @@ After creating all labels, verify:
```bash ```bash
# Count organization labels # Count organization labels
curl -s "https://gitea.hotserv.cloud/api/v1/orgs/hhl-infra/labels" \ curl -s "https://gitea.example.com/api/v1/orgs/bandit/labels" \
-H "Authorization: token YOUR_TOKEN" | python3 -c "import sys, json; print(len(json.load(sys.stdin)), 'org labels')" -H "Authorization: token YOUR_TOKEN" | python3 -c "import sys, json; print(len(json.load(sys.stdin)), 'org labels')"
# Count repository labels # Count repository labels
curl -s "https://gitea.hotserv.cloud/api/v1/repos/hhl-infra/claude-code-hhl-toolkit/labels" \ curl -s "https://gitea.example.com/api/v1/repos/bandit/support-claude-mktplace/labels" \
-H "Authorization: token YOUR_TOKEN" | python3 -c "import sys, json; print(len(json.load(sys.stdin)), 'repo labels')" -H "Authorization: token YOUR_TOKEN" | python3 -c "import sys, json; print(len(json.load(sys.stdin)), 'repo labels')"
``` ```
@@ -163,10 +163,10 @@ Batch create Gitea labels via API
""" """
import requests import requests
GITEA_URL = "https://gitea.hotserv.cloud" GITEA_URL = "https://gitea.example.com"
TOKEN = "ae72c63cd7de02e40bd16f66d1e98059c187759b" TOKEN = "ae72c63cd7de02e40bd16f66d1e98059c187759b"
ORG = "hhl-infra" ORG = "bandit"
REPO = "claude-code-hhl-toolkit" REPO = "support-claude-mktplace"
headers = {"Authorization": f"token {TOKEN}"} headers = {"Authorization": f"token {TOKEN}"}

View File

@@ -5,10 +5,10 @@
## Summary ## Summary
Successfully created **43 labels** in the hhl-infra organization and claude-code-hhl-toolkit repository: Successfully created **43 labels** in the bandit organization and support-claude-mktplace repository:
-**27 Organization Labels** (available to all hhl-infra repositories) -**27 Organization Labels** (available to all bandit repositories)
-**16 Repository Labels** (specific to claude-code-hhl-toolkit) -**16 Repository Labels** (specific to support-claude-mktplace)
-**Total: 43 Labels** (100% complete) -**Total: 43 Labels** (100% complete)
## Label Breakdown ## Label Breakdown
@@ -82,12 +82,12 @@ Successfully created **43 labels** in the hhl-infra organization and claude-code
```bash ```bash
# Organization labels # Organization labels
$ curl -s "https://gitea.hotserv.cloud/api/v1/orgs/hhl-infra/labels" \ $ curl -s "https://hotserv.tailc9b278.ts.net/api/v1/orgs/bandit/labels" \
-H "Authorization: token ***" | jq 'length' -H "Authorization: token ***" | jq 'length'
27 27
# Repository labels (shows repo-specific only) # Repository labels (shows repo-specific only)
$ curl -s "https://gitea.hotserv.cloud/api/v1/repos/hhl-infra/claude-code-hhl-toolkit/labels" \ $ curl -s "https://hotserv.tailc9b278.ts.net/api/v1/repos/bandit/support-claude-mktplace/labels" \
-H "Authorization: token ***" | jq 'length' -H "Authorization: token ***" | jq 'length'
16 16
``` ```
@@ -98,8 +98,8 @@ $ curl -s "https://gitea.hotserv.cloud/api/v1/repos/hhl-infra/claude-code-hhl-to
The Projman plugin's MCP server fetches labels from **both endpoints**: The Projman plugin's MCP server fetches labels from **both endpoints**:
1. **Organization Labels:** `GET /api/v1/orgs/hhl-infra/labels` → 27 labels 1. **Organization Labels:** `GET /api/v1/orgs/bandit/labels` → 27 labels
2. **Repository Labels:** `GET /api/v1/repos/hhl-infra/claude-code-hhl-toolkit/labels` → 16 labels 2. **Repository Labels:** `GET /api/v1/repos/bandit/support-claude-mktplace/labels` → 16 labels
3. **Total Available:** 43 labels for issue tagging 3. **Total Available:** 43 labels for issue tagging
See `mcp-servers/gitea/mcp_server/tools/labels.py:29` for implementation. See `mcp-servers/gitea/mcp_server/tools/labels.py:29` for implementation.
@@ -133,9 +133,9 @@ Now that all labels are created:
## Gitea Configuration ## Gitea Configuration
**Organization:** hhl-infra **Organization:** bandit
**Repository:** claude-code-hhl-toolkit **Repository:** support-claude-mktplace
**API URL:** https://gitea.hotserv.cloud/api/v1 **API URL:** https://hotserv.tailc9b278.ts.net/api/v1
**Auth:** Token-based (configured in ~/.config/claude/gitea.env) **Auth:** Token-based (configured in ~/.config/claude/gitea.env)
## Success Metrics ## Success Metrics

View File

@@ -13,7 +13,7 @@ Successfully connected to both Gitea and Wiki.js instances running on hotport. A
⚠️ **CRITICAL FINDING: Repository has NO LABELS** ⚠️ **CRITICAL FINDING: Repository has NO LABELS**
The `claude-code-hhl-toolkit` repository currently has **0 labels** defined. The plugin depends on a 44-label taxonomy system. Labels must be created before full plugin functionality can be tested. The `support-claude-mktplace` repository currently has **0 labels** defined. The plugin depends on a 44-label taxonomy system. Labels must be created before full plugin functionality can be tested.
## Test Results ## Test Results
@@ -21,10 +21,10 @@ The `claude-code-hhl-toolkit` repository currently has **0 labels** defined. The
**Configuration:** **Configuration:**
``` ```
URL: https://gitea.hotserv.cloud/api/v1 URL: https://gitea.example.com/api/v1
Token: ae72c63cd7de02e40bd16f66d1e98059c187759b Token: ae72c63cd7de02e40bd16f66d1e98059c187759b
Owner: hhl-infra (organization) Owner: bandit (organization)
Repo: claude-code-hhl-toolkit Repo: support-claude-mktplace
``` ```
**Authentication Test:** **Authentication Test:**
@@ -37,8 +37,8 @@ Repo: claude-code-hhl-toolkit
**Repository Access:** **Repository Access:**
``` ```
✅ Found 4 repositories in hhl-infra organization: ✅ Found 4 repositories in bandit organization:
- claude-code-hhl-toolkit ← Our test repo - support-claude-mktplace ← Our test repo
- serv-hotport-apps - serv-hotport-apps
- serv-hhl-home-apps - serv-hhl-home-apps
- serv-hhl - serv-hhl
@@ -46,7 +46,7 @@ Repo: claude-code-hhl-toolkit
**Issue Fetching:** **Issue Fetching:**
``` ```
✅ Successfully fetched 2 issues from claude-code-hhl-toolkit: ✅ Successfully fetched 2 issues from support-claude-mktplace:
- Open: 0 - Open: 0
- Closed: 2 - Closed: 2
@@ -77,7 +77,7 @@ Label categories expected but missing:
URL: http://localhost:7851/graphql URL: http://localhost:7851/graphql
Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9... (JWT) Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9... (JWT)
Base Path: /hyper-hive-labs Base Path: /hyper-hive-labs
Project: projects/claude-code-hhl-toolkit Project: projects/support-claude-mktplace
``` ```
**Connection Test:** **Connection Test:**
@@ -141,16 +141,16 @@ Tech/Redis, Tech/Vue, Tech/FastAPI
``` ```
**How to create:** **How to create:**
1. Navigate to: https://gitea.hotserv.cloud/org/hhl-infra/settings/labels 1. Navigate to: https://gitea.example.com/org/bandit/settings/labels
2. Create organization labels (available to all repos) 2. Create organization labels (available to all repos)
3. Navigate to: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/labels 3. Navigate to: https://gitea.example.com/bandit/support-claude-mktplace/labels
4. Create repository-specific labels 4. Create repository-specific labels
**Option 2: Import from Existing Repo** **Option 2: Import from Existing Repo**
If labels exist in another repository (e.g., CuisineFlow): If labels exist in another repository (e.g., CuisineFlow):
1. Export labels from existing repo 1. Export labels from existing repo
2. Import to claude-code-hhl-toolkit 2. Import to support-claude-mktplace
3. Run `/labels-sync` to update plugin 3. Run `/labels-sync` to update plugin
**Option 3: Create Programmatically** **Option 3: Create Programmatically**
@@ -173,8 +173,8 @@ GITEA_OWNER=claude # Wrong - user instead of org
**After (Correct):** **After (Correct):**
```bash ```bash
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 # Public URL GITEA_API_URL=https://gitea.example.com/api/v1 # Public URL
GITEA_OWNER=hhl-infra # Correct organization GITEA_OWNER=bandit # Correct organization
GITEA_API_TOKEN=ae72c63cd7de02e40bd16f66d1e98059c187759b # New token with access GITEA_API_TOKEN=ae72c63cd7de02e40bd16f66d1e98059c187759b # New token with access
``` ```
@@ -188,8 +188,8 @@ WIKIJS_BASE_PATH=/hyper-hive-labs
**File: `.env` (in project root)** **File: `.env` (in project root)**
```bash ```bash
GITEA_REPO=claude-code-hhl-toolkit # ✅ Correct GITEA_REPO=support-claude-mktplace # ✅ Correct
WIKIJS_PROJECT=projects/claude-code-hhl-toolkit # ✅ Correct WIKIJS_PROJECT=projects/support-claude-mktplace # ✅ Correct
``` ```
## What Works Right Now ## What Works Right Now
@@ -239,7 +239,7 @@ WIKIJS_PROJECT=projects/claude-code-hhl-toolkit # ✅ Correct
| Test Category | Status | Details | | Test Category | Status | Details |
|---------------|--------|---------| |---------------|--------|---------|
| Gitea Authentication | ✅ PASS | Authenticated as lmiranda (admin) | | Gitea Authentication | ✅ PASS | Authenticated as lmiranda (admin) |
| Gitea Repository Access | ✅ PASS | Access to 4 repos in hhl-infra | | Gitea Repository Access | ✅ PASS | Access to 4 repos in bandit |
| Gitea Issue Fetching | ✅ PASS | Fetched 2 issues successfully | | Gitea Issue Fetching | ✅ PASS | Fetched 2 issues successfully |
| Gitea Label Fetching | ⚠️ PASS | API works, but 0 labels found | | Gitea Label Fetching | ⚠️ PASS | API works, but 0 labels found |
| WikiJS Authentication | ✅ PASS | JWT token valid | | WikiJS Authentication | ✅ PASS | JWT token valid |

View File

@@ -22,12 +22,12 @@ Successfully completed comprehensive testing of the Projman plugin. All core fea
- Network: Tailscale VPN (100.124.47.46) - Network: Tailscale VPN (100.124.47.46)
**Services:** **Services:**
- Gitea: https://gitea.hotserv.cloud (online, responsive) - Gitea: https://gitea.example.com (online, responsive)
- Wiki.js: http://localhost:7851/graphql (online, responsive) - Wiki.js: http://localhost:7851/graphql (online, responsive)
**Repository:** **Repository:**
- Organization: hhl-infra - Organization: bandit
- Repository: claude-code-hhl-toolkit - Repository: support-claude-mktplace
- Branch: feat/projman - Branch: feat/projman
## Tests Performed ## Tests Performed
@@ -131,14 +131,14 @@ Last Synced: 2025-11-21
- Labels: 4 labels (Type/Feature, Priority/Medium, Component/Testing, Tech/Python) - Labels: 4 labels (Type/Feature, Priority/Medium, Component/Testing, Tech/Python)
- Method: Direct curl with label IDs - Method: Direct curl with label IDs
- Result: ✅ PASS - Result: ✅ PASS
- URL: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/issues/4 - URL: https://gitea.example.com/bandit/support-claude-mktplace/issues/4
**Issue #5:** Automated test via MCP server (with label resolution fix) **Issue #5:** Automated test via MCP server (with label resolution fix)
- Title: "[TEST] Add Comprehensive Testing for Projman MCP Servers" - Title: "[TEST] Add Comprehensive Testing for Projman MCP Servers"
- Labels: 11 labels (all automatically resolved from names to IDs) - Labels: 11 labels (all automatically resolved from names to IDs)
- Method: MCP server with automatic label name→ID resolution - Method: MCP server with automatic label name→ID resolution
- Result: ✅ PASS - Result: ✅ PASS
- URL: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/issues/5 - URL: https://gitea.example.com/bandit/support-claude-mktplace/issues/5
**Conclusion:** Issue creation with automatic label resolution working flawlessly. **Conclusion:** Issue creation with automatic label resolution working flawlessly.

View File

@@ -11,8 +11,8 @@ Successfully completed label creation for the Projman plugin! All 43 labels have
## What Was Accomplished ## What Was Accomplished
### 1. Label Creation ✅ ### 1. Label Creation ✅
- **Created 27 organization labels** in hhl-infra organization - **Created 27 organization labels** in bandit organization
- **Created 16 repository labels** in claude-code-hhl-toolkit repository - **Created 16 repository labels** in support-claude-mktplace repository
- **Total: 43 labels** (corrected from initial documentation of 44) - **Total: 43 labels** (corrected from initial documentation of 44)
- All labels created programmatically via Gitea API - All labels created programmatically via Gitea API
@@ -87,9 +87,9 @@ All suggestions are accurate and appropriate! 🎉
## Configuration Details ## Configuration Details
**Gitea Configuration:** **Gitea Configuration:**
- API URL: `https://gitea.hotserv.cloud/api/v1` - API URL: `https://gitea.example.com/api/v1`
- Organization: `hhl-infra` - Organization: `bandit`
- Repository: `claude-code-hhl-toolkit` - Repository: `support-claude-mktplace`
- Token: Configured in `~/.config/claude/gitea.env` - Token: Configured in `~/.config/claude/gitea.env`
**MCP Server:** **MCP Server:**

View File

@@ -46,8 +46,8 @@ This document outlines the testing strategy for the Projman plugin, which has co
**Project Configuration:** **Project Configuration:**
- `.env` - Project-specific settings (NOT committed) - `.env` - Project-specific settings (NOT committed)
```bash ```bash
GITEA_REPO=claude-code-hhl-toolkit GITEA_REPO=support-claude-mktplace
WIKIJS_PROJECT=projects/claude-code-hhl-toolkit WIKIJS_PROJECT=projects/support-claude-mktplace
``` ```
✅ **Local Test Marketplace:** ✅ **Local Test Marketplace:**
@@ -130,8 +130,8 @@ ls -la ~/.config/claude/*.env
```bash ```bash
cat .env cat .env
# Should show: # Should show:
# GITEA_REPO=claude-code-hhl-toolkit # GITEA_REPO=support-claude-mktplace
# WIKIJS_PROJECT=projects/claude-code-hhl-toolkit # WIKIJS_PROJECT=projects/support-claude-mktplace
``` ```
**Verify .env is ignored:** **Verify .env is ignored:**
@@ -355,7 +355,7 @@ Implement the first task (e.g., add command examples to README).
- Suggests appropriate tags - Suggests appropriate tags
4. Saves to Wiki.js: 4. Saves to Wiki.js:
- Uses `create_lesson` MCP tool - Uses `create_lesson` MCP tool
- Creates in `/projects/claude-code-hhl-toolkit/lessons-learned/sprints/` - Creates in `/projects/support-claude-mktplace/lessons-learned/sprints/`
5. Offers git operations: 5. Offers git operations:
- Commit changes - Commit changes
- Merge branches - Merge branches
@@ -571,7 +571,7 @@ These are expected at this stage and will be addressed in Phase 4 (Lessons Learn
3. **Prepare for Phase 5: Testing & Validation** 3. **Prepare for Phase 5: Testing & Validation**
- Write integration tests - Write integration tests
- Test with real sprint on CuisineFlow - Test with real sprint on a production project
- Collect user feedback from team - Collect user feedback from team
### If Tests Fail ❌ ### If Tests Fail ❌

View File

@@ -43,7 +43,7 @@ Details:
- System config loads correctly from ~/.config/claude/gitea.env - System config loads correctly from ~/.config/claude/gitea.env
- Project config loads correctly from .env - Project config loads correctly from .env
- Mode detection works (project mode) - Mode detection works (project mode)
- Repository correctly identified: claude-code-hhl-toolkit - Repository correctly identified: support-claude-mktplace
- Owner correctly identified: claude - Owner correctly identified: claude
``` ```
@@ -54,7 +54,7 @@ Details:
- System config loads correctly from ~/.config/claude/wikijs.env - System config loads correctly from ~/.config/claude/wikijs.env
- Project config loads correctly from .env - Project config loads correctly from .env
- Mode detection works (project mode) - Mode detection works (project mode)
- Project correctly identified: projects/claude-code-hhl-toolkit - Project correctly identified: projects/support-claude-mktplace
- Base path correctly set: /hyper-hive-labs - Base path correctly set: /hyper-hive-labs
``` ```

View File

@@ -63,14 +63,14 @@ def load(self):
**File:** `~/.config/claude/gitea.env` **File:** `~/.config/claude/gitea.env`
```bash ```bash
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token GITEA_API_TOKEN=your_gitea_token
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
``` ```
**Generating Gitea API Token:** **Generating Gitea API Token:**
1. Log into Gitea: https://gitea.hotserv.cloud 1. Log into Gitea: https://gitea.example.com
2. Navigate to: **Settings****Applications****Manage Access Tokens** 2. Navigate to: **Settings****Applications****Manage Access Tokens**
3. Click **Generate New Token** 3. Click **Generate New Token**
4. Token configuration: 4. Token configuration:
@@ -90,9 +90,9 @@ mkdir -p ~/.config/claude
# Create gitea.env # Create gitea.env
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_token_here GITEA_API_TOKEN=your_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
# Secure the file (important!) # Secure the file (important!)

View File

@@ -1134,7 +1134,7 @@ from mcp_server.wikijs_client import WikiJSClient
async def initialize_wiki_structure(): async def initialize_wiki_structure():
"""Create base Wiki.js structure for Hyper Hive Labs""" """Create base Wiki.js structure for Bandit Labs"""
print("Initializing Wiki.js base structure...") print("Initializing Wiki.js base structure...")
print("=" * 60) print("=" * 60)
@@ -1154,10 +1154,10 @@ async def initialize_wiki_structure():
base_pages = [ base_pages = [
{ {
'path': 'hyper-hive-labs', 'path': 'hyper-hive-labs',
'title': 'Hyper Hive Labs', 'title': 'Bandit Labs',
'content': '''# Hyper Hive Labs Documentation 'content': '''# Bandit Labs Documentation
Welcome to the Hyper Hive Labs knowledge base. Welcome to the Bandit Labs knowledge base.
## Organization ## Organization
@@ -1176,7 +1176,7 @@ This knowledge base captures:
All content is searchable and tagged for easy discovery across projects. All content is searchable and tagged for easy discovery across projects.
''', ''',
'tags': ['company', 'index'], 'tags': ['company', 'index'],
'description': 'Hyper Hive Labs company knowledge base' 'description': 'Bandit Labs company knowledge base'
}, },
{ {
'path': 'hyper-hive-labs/projects', 'path': 'hyper-hive-labs/projects',

View File

@@ -48,11 +48,11 @@ projman-pmo/
"version": "0.1.0", "version": "0.1.0",
"displayName": "Projman PMO - Multi-Project Coordination", "displayName": "Projman PMO - Multi-Project Coordination",
"description": "PMO coordination with cross-project visibility, dependency tracking, and resource management", "description": "PMO coordination with cross-project visibility, dependency tracking, and resource management",
"author": "Hyper Hive Labs", "author": "Bandit Labs",
"homepage": "https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/projman-pmo", "homepage": "ssh://git@hotserv.tailc9b278.ts.net:2222/bandit/support-claude-mktplace",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit.git" "url": "ssh://git@hotserv.tailc9b278.ts.net:2222/bandit/support-claude-mktplace.git"
}, },
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [
@@ -223,7 +223,7 @@ projman-pmo/
### Agent Personality ### Agent Personality
```markdown ```markdown
You are the PMO Coordinator for Hyper Hive Labs. You are the PMO Coordinator for Bandit Labs.
Your role: Your role:
- Maintain strategic view across all projects - Maintain strategic view across all projects

View File

@@ -54,11 +54,11 @@ projman/
"version": "0.1.0", "version": "0.1.0",
"displayName": "Projman - Single-Repository Project Management", "displayName": "Projman - Single-Repository Project Management",
"description": "Sprint planning and project management with Gitea and Wiki.js integration", "description": "Sprint planning and project management with Gitea and Wiki.js integration",
"author": "Hyper Hive Labs", "author": "Bandit Labs",
"homepage": "https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/projman", "homepage": "https://gitea.example.com/bandit/support-claude-mktplace/projman",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit.git" "url": "https://gitea.example.com/bandit/support-claude-mktplace.git"
}, },
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [
@@ -269,7 +269,7 @@ Agents are also **markdown files** with specialized prompts. They can be invoked
```markdown ```markdown
# Sprint Planner Agent # Sprint Planner Agent
You are the Sprint Planner for Hyper Hive Labs. You are the Sprint Planner for Bandit Labs.
## Your Identity ## Your Identity
@@ -422,7 +422,7 @@ Planner: I'll create the issue...
[Tool executes: create_issue(...)] [Tool executes: create_issue(...)]
Created issue #47: "Extract Intuit Engine Service" Created issue #47: "Extract Intuit Engine Service"
View at: https://gitea.hotserv.cloud/org/repo/issues/47 View at: https://gitea.example.com/org/repo/issues/47
Now let me generate a detailed sprint plan... Now let me generate a detailed sprint plan...
``` ```
@@ -551,7 +551,7 @@ The projman plugin implements a three-agent architecture mirroring the proven wo
**Example Prompt:** **Example Prompt:**
```markdown ```markdown
You are the Sprint Planner for Hyper Hive Labs. You are the Sprint Planner for Bandit Labs.
Your role: Your role:
- Guide users through sprint planning - Guide users through sprint planning
@@ -609,7 +609,7 @@ Sprint Planning Flow:
**Example Prompt:** **Example Prompt:**
```markdown ```markdown
You are the Sprint Orchestrator for Hyper Hive Labs. You are the Sprint Orchestrator for Bandit Labs.
Your role: Your role:
- Monitor sprint progress - Monitor sprint progress
@@ -668,7 +668,7 @@ Status Monitoring:
**Example Prompt:** **Example Prompt:**
```markdown ```markdown
You are the Sprint Executor for Hyper Hive Labs. You are the Sprint Executor for Bandit Labs.
Your role: Your role:
- Provide implementation guidance - Provide implementation guidance

View File

@@ -80,7 +80,7 @@ The MCP servers detect their operating mode based on environment variables:
## Repository Structure ## Repository Structure
``` ```
hhl-infra/claude-code-hhl-toolkit/ bandit/support-claude-mktplace/
├── mcp-servers/ # ← SHARED BY BOTH PLUGINS ├── mcp-servers/ # ← SHARED BY BOTH PLUGINS
│ ├── gitea/ # Gitea MCP Server │ ├── gitea/ # Gitea MCP Server
│ │ ├── .venv/ │ │ ├── .venv/
@@ -150,9 +150,9 @@ The plugins use a hybrid configuration approach that balances security and flexi
**System-Level:** **System-Level:**
```bash ```bash
# ~/.config/claude/gitea.env # ~/.config/claude/gitea.env
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_token GITEA_API_TOKEN=your_token
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
# ~/.config/claude/wikijs.env # ~/.config/claude/wikijs.env
WIKIJS_API_URL=https://wiki.hyperhivelabs.com/graphql WIKIJS_API_URL=https://wiki.hyperhivelabs.com/graphql
@@ -366,9 +366,9 @@ mkdir -p ~/.config/claude
# Gitea config # Gitea config
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token GITEA_API_TOKEN=your_gitea_token
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
# Wiki.js config # Wiki.js config

View File

@@ -109,9 +109,9 @@ Create `~/.config/claude/gitea.env`:
mkdir -p ~/.config/claude mkdir -p ~/.config/claude
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token_here GITEA_API_TOKEN=your_gitea_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
chmod 600 ~/.config/claude/gitea.env chmod 600 ~/.config/claude/gitea.env
@@ -135,9 +135,9 @@ For company/PMO mode, omit the `.env` file or don't set `GITEA_REPO`.
**File**: `~/.config/claude/gitea.env` **File**: `~/.config/claude/gitea.env`
**Required Variables**: **Required Variables**:
- `GITEA_API_URL` - Gitea API endpoint (e.g., `https://gitea.hotserv.cloud/api/v1`) - `GITEA_API_URL` - Gitea API endpoint (e.g., `https://gitea.example.com/api/v1`)
- `GITEA_API_TOKEN` - Personal access token with repo permissions - `GITEA_API_TOKEN` - Personal access token with repo permissions
- `GITEA_OWNER` - Organization or user name (e.g., `hhl-infra`) - `GITEA_OWNER` - Organization or user name (e.g., `bandit`)
### Project-Level Configuration ### Project-Level Configuration
@@ -148,7 +148,7 @@ For company/PMO mode, omit the `.env` file or don't set `GITEA_REPO`.
### Generating Gitea API Token ### Generating Gitea API Token
1. Log into Gitea: https://gitea.hotserv.cloud 1. Log into Gitea: https://gitea.example.com
2. Navigate to: **Settings****Applications****Manage Access Tokens** 2. Navigate to: **Settings****Applications****Manage Access Tokens**
3. Click **Generate New Token** 3. Click **Generate New Token**
4. Configure token: 4. Configure token:
@@ -309,7 +309,7 @@ ls -la ~/.config/claude/gitea.env
```bash ```bash
# Test token manually # Test token manually
curl -H "Authorization: token YOUR_TOKEN" \ curl -H "Authorization: token YOUR_TOKEN" \
https://gitea.hotserv.cloud/api/v1/user https://gitea.example.com/api/v1/user
``` ```
**Permission denied on branch**: **Permission denied on branch**:
@@ -389,7 +389,7 @@ def list_issues(self, state='open', labels=None, repo=None):
## License ## License
Part of the HyperHive Labs Claude Code Plugins project. Part of the Bandit Labs Claude Code Plugins project.
## Related Documentation ## Related Documentation
@@ -407,7 +407,7 @@ For issues or questions:
--- ---
**Built for**: HyperHive Labs Project Management Plugins **Built for**: Bandit Labs Project Management Plugins
**Phase**: 1 (Complete) **Phase**: 1 (Complete)
**Status**: ✅ Production Ready **Status**: ✅ Production Ready
**Last Updated**: 2025-01-06 **Last Updated**: 2025-01-06

View File

@@ -170,7 +170,7 @@ Test the MCP server with a real Gitea instance.
### Prerequisites ### Prerequisites
1. **Gitea Instance**: Access to https://gitea.hotserv.cloud (or your Gitea instance) 1. **Gitea Instance**: Access to https://gitea.example.com (or your Gitea instance)
2. **API Token**: Personal access token with required permissions 2. **API Token**: Personal access token with required permissions
3. **Configuration**: Properly configured system and project configs 3. **Configuration**: Properly configured system and project configs
@@ -182,9 +182,9 @@ Create system-level configuration:
mkdir -p ~/.config/claude mkdir -p ~/.config/claude
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token_here GITEA_API_TOKEN=your_gitea_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
chmod 600 ~/.config/claude/gitea.env chmod 600 ~/.config/claude/gitea.env
@@ -205,7 +205,7 @@ echo ".env" >> .gitignore
### Step 2: Generate Gitea API Token ### Step 2: Generate Gitea API Token
1. Log into Gitea: https://gitea.hotserv.cloud 1. Log into Gitea: https://gitea.example.com
2. Navigate to: **Settings****Applications****Manage Access Tokens** 2. Navigate to: **Settings****Applications****Manage Access Tokens**
3. Click **Generate New Token** 3. Click **Generate New Token**
4. Token configuration: 4. Token configuration:
@@ -238,8 +238,8 @@ print(f'Mode: {result[\"mode\"]}')
Expected output: Expected output:
``` ```
API URL: https://gitea.hotserv.cloud/api/v1 API URL: https://gitea.example.com/api/v1
Owner: hhl-infra Owner: bandit
Repo: test-repo (or None for company mode) Repo: test-repo (or None for company mode)
Mode: project (or company) Mode: project (or company)
``` ```
@@ -375,9 +375,9 @@ print('\\n✅ PMO mode tests passed!')
**System-level** (`~/.config/claude/gitea.env`): **System-level** (`~/.config/claude/gitea.env`):
```bash ```bash
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_token_here GITEA_API_TOKEN=your_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
``` ```
**Project-level** (`.env` in project root): **Project-level** (`.env` in project root):
@@ -443,9 +443,9 @@ FileNotFoundError: System config not found: /home/user/.config/claude/gitea.env
# Create system config # Create system config
mkdir -p ~/.config/claude mkdir -p ~/.config/claude
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_token_here GITEA_API_TOKEN=your_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
chmod 600 ~/.config/claude/gitea.env chmod 600 ~/.config/claude/gitea.env
@@ -480,7 +480,7 @@ requests.exceptions.HTTPError: 401 Client Error: Unauthorized
```bash ```bash
# Test token manually # Test token manually
curl -H "Authorization: token YOUR_TOKEN" \ curl -H "Authorization: token YOUR_TOKEN" \
https://gitea.hotserv.cloud/api/v1/user https://gitea.example.com/api/v1/user
# If fails, regenerate token in Gitea settings # If fails, regenerate token in Gitea settings
``` ```

View File

@@ -294,4 +294,4 @@ logging.basicConfig(level=logging.DEBUG)
## License ## License
Part of the claude-code-hhl-toolkit project. Part of the Bandit Labs Claude Code Plugins project (`support-claude-mktplace`).

View File

@@ -131,7 +131,7 @@ For project-scoped operations, create `.env` in project root:
# In your project directory # In your project directory
cat > .env << 'EOF' cat > .env << 'EOF'
# Wiki.js project path # Wiki.js project path
WIKIJS_PROJECT=projects/cuisineflow WIKIJS_PROJECT=projects/your-project-name
EOF EOF
# Add to .gitignore # Add to .gitignore
@@ -236,15 +236,14 @@ The MCP server is referenced in plugin `.mcp.json`:
``` ```
/hyper-hive-labs/ # Base path /hyper-hive-labs/ # Base path
├── projects/ # Project-specific ├── projects/ # Project-specific
│ ├── cuisineflow/ │ ├── your-project/
│ │ ├── lessons-learned/ │ │ ├── lessons-learned/
│ │ │ ├── sprints/ │ │ │ ├── sprints/
│ │ │ ├── patterns/ │ │ │ ├── patterns/
│ │ │ └── INDEX.md │ │ │ └── INDEX.md
│ │ └── documentation/ │ │ └── documentation/
│ ├── cuisineflow-site/ │ ├── another-project/
── intuit-engine/ ── shared-library/
│ └── hhl-site/
├── company/ # Company-wide ├── company/ # Company-wide
│ ├── processes/ │ ├── processes/
│ ├── standards/ │ ├── standards/
@@ -409,6 +408,6 @@ MIT License - See repository root for details
## Support ## Support
For issues and questions: For issues and questions:
- **Repository**: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit - **Repository**: `ssh://git@hotserv.tailc9b278.ts.net:2222/bandit/support-claude-mktplace.git`
- **Issues**: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/issues - **Issues**: Contact repository maintainer
- **Documentation**: `/docs/references/MCP-WIKIJS.md` - **Documentation**: `/docs/references/MCP-WIKIJS.md`

View File

@@ -3,11 +3,11 @@
"version": "0.1.0", "version": "0.1.0",
"displayName": "Projman - Project Management for Claude Code", "displayName": "Projman - Project Management for Claude Code",
"description": "Sprint planning and project management with Gitea and Wiki.js integration. Provides AI-guided sprint planning, issue creation with label taxonomy, and lessons learned capture.", "description": "Sprint planning and project management with Gitea and Wiki.js integration. Provides AI-guided sprint planning, issue creation with label taxonomy, and lessons learned capture.",
"author": "Hyper Hive Labs", "author": "Bandit Labs",
"homepage": "https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit", "homepage": "ssh://git@hotserv.tailc9b278.ts.net:2222/bandit/support-claude-mktplace",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit.git" "url": "ssh://git@hotserv.tailc9b278.ts.net:2222/bandit/support-claude-mktplace.git"
}, },
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [

View File

@@ -90,7 +90,7 @@ python -c "from mcp_server import server; print('Wiki.js MCP Server installed su
### 2.1 Generate Gitea API Token ### 2.1 Generate Gitea API Token
1. Log into Gitea: https://gitea.hotserv.cloud 1. Log into Gitea: https://gitea.example.com
2. Navigate to: **User Icon** (top right) → **Settings** 2. Navigate to: **User Icon** (top right) → **Settings**
3. Click **Applications** tab 3. Click **Applications** tab
4. Scroll to **Manage Access Tokens** 4. Scroll to **Manage Access Tokens**
@@ -145,9 +145,9 @@ mkdir -p ~/.config/claude
```bash ```bash
cat > ~/.config/claude/gitea.env << 'EOF' cat > ~/.config/claude/gitea.env << 'EOF'
# Gitea API Configuration # Gitea API Configuration
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token_here GITEA_API_TOKEN=your_gitea_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
# Secure the file (owner read/write only) # Secure the file (owner read/write only)
@@ -159,7 +159,7 @@ chmod 600 ~/.config/claude/gitea.env
**Configuration Variables:** **Configuration Variables:**
- `GITEA_API_URL` - Gitea API endpoint (includes `/api/v1`) - `GITEA_API_URL` - Gitea API endpoint (includes `/api/v1`)
- `GITEA_API_TOKEN` - Personal access token from Step 2.1 - `GITEA_API_TOKEN` - Personal access token from Step 2.1
- `GITEA_OWNER` - Organization or user name (e.g., `hhl-infra`) - `GITEA_OWNER` - Organization or user name (e.g., `bandit`)
### 3.3 Configure Wiki.js ### 3.3 Configure Wiki.js
@@ -251,7 +251,7 @@ Test that everything is configured correctly:
```bash ```bash
# Test with curl # Test with curl
curl -H "Authorization: token YOUR_GITEA_TOKEN" \ curl -H "Authorization: token YOUR_GITEA_TOKEN" \
https://gitea.hotserv.cloud/api/v1/user https://gitea.example.com/api/v1/user
# Should return your user information in JSON format # Should return your user information in JSON format
``` ```
@@ -313,9 +313,9 @@ This will:
**`~/.config/claude/gitea.env`:** **`~/.config/claude/gitea.env`:**
```bash ```bash
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxxx GITEA_API_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxxx
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
``` ```
**`~/.config/claude/wikijs.env`:** **`~/.config/claude/wikijs.env`:**
@@ -417,7 +417,7 @@ ls -la ~/.config/claude/wikijs.env
```bash ```bash
# Test Gitea token # Test Gitea token
curl -H "Authorization: token YOUR_TOKEN" \ curl -H "Authorization: token YOUR_TOKEN" \
https://gitea.hotserv.cloud/api/v1/user https://gitea.example.com/api/v1/user
# Test Wiki.js token # Test Wiki.js token
curl -H "Authorization: Bearer YOUR_TOKEN" \ curl -H "Authorization: Bearer YOUR_TOKEN" \
@@ -515,7 +515,7 @@ After configuration is complete:
- Review MCP server documentation: - Review MCP server documentation:
- [Gitea MCP](../mcp-servers/gitea/README.md) - [Gitea MCP](../mcp-servers/gitea/README.md)
- [Wiki.js MCP](../mcp-servers/wikijs/README.md) - [Wiki.js MCP](../mcp-servers/wikijs/README.md)
- Open issue: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/issues - Contact repository maintainer for support
**Questions:** **Questions:**
- Read command documentation: `commands/*.md` - Read command documentation: `commands/*.md`

View File

@@ -52,9 +52,9 @@ mkdir -p ~/.config/claude
# Gitea configuration # Gitea configuration
cat > ~/.config/claude/gitea.env << EOF cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1 GITEA_API_URL=https://gitea.example.com/api/v1
GITEA_API_TOKEN=your_gitea_token_here GITEA_API_TOKEN=your_gitea_token_here
GITEA_OWNER=hhl-infra GITEA_OWNER=bandit
EOF EOF
# Wiki.js configuration # Wiki.js configuration
@@ -322,7 +322,7 @@ See [CONFIGURATION.md](./CONFIGURATION.md) for detailed configuration instructio
### Cannot connect to Gitea ### Cannot connect to Gitea
- Verify `~/.config/claude/gitea.env` exists and has correct URL and token - Verify `~/.config/claude/gitea.env` exists and has correct URL and token
- Test token: `curl -H "Authorization: token YOUR_TOKEN" https://gitea.hotserv.cloud/api/v1/user` - Test token: `curl -H "Authorization: token YOUR_TOKEN" https://gitea.example.com/api/v1/user`
- Check network connectivity - Check network connectivity
### Cannot connect to Wiki.js ### Cannot connect to Wiki.js
@@ -410,8 +410,8 @@ projman/
- [Wiki.js MCP Server](../mcp-servers/wikijs/README.md) - Wiki.js integration details - [Wiki.js MCP Server](../mcp-servers/wikijs/README.md) - Wiki.js integration details
**Issues:** **Issues:**
- Report bugs: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/issues - Report bugs: Contact repository maintainer
- Feature requests: Same issue tracker - Feature requests: Contact repository maintainer
- Documentation improvements: Submit PR - Documentation improvements: Submit PR
## License ## License
@@ -434,6 +434,6 @@ MIT License - See repository root for details
--- ---
**Built for:** HyperHive Labs **Built for:** Bandit Labs
**Status:** Phase 2 Complete - Commands ready for testing **Status:** Phase 2 Complete - Commands ready for testing
**Next:** Implement agent system (Phase 3) **Next:** Implement agent system (Phase 3)

View File

@@ -105,7 +105,7 @@ The command updates `skills/label-taxonomy/labels-reference.md` with:
# Label Taxonomy Reference # Label Taxonomy Reference
Last synced: 2025-01-18 14:30 UTC Last synced: 2025-01-18 14:30 UTC
Source: Gitea (hhl-infra/cuisineflow) Source: Gitea (bandit/your-repo-name)
## Organization Labels (28) ## Organization Labels (28)

View File

@@ -7,7 +7,7 @@ description: Dynamic reference for Gitea label taxonomy (organization + reposito
**Status:** ✅ Synced with Gitea **Status:** ✅ Synced with Gitea
**Last synced:** 2025-11-21 (via automated testing) **Last synced:** 2025-11-21 (via automated testing)
**Source:** Gitea (hhl-infra/claude-code-hhl-toolkit) **Source:** Gitea (bandit/support-claude-mktplace)
## Overview ## Overview
@@ -17,7 +17,7 @@ This skill provides the current label taxonomy used for issue classification in
## Organization Labels (27) ## Organization Labels (27)
Organization-level labels are shared across all repositories in the `hhl-infra` organization. Organization-level labels are shared across all repositories in the `bandit` organization.
### Agent (2) ### Agent (2)
- `Agent/Human` (#0052cc) - Work performed by human developers - `Agent/Human` (#0052cc) - Work performed by human developers
@@ -62,7 +62,7 @@ Organization-level labels are shared across all repositories in the `hhl-infra`
## Repository Labels (16) ## Repository Labels (16)
Repository-level labels are specific to the claude-code-hhl-toolkit project. Repository-level labels are specific to each project.
### Component (9) ### Component (9)
- `Component/Backend` (#5319e7) - Backend service code and business logic - `Component/Backend` (#5319e7) - Backend service code and business logic

View File

@@ -110,7 +110,7 @@
"group": "Core" "group": "Core"
}, },
{ {
"filePath": "claude-code-hhl-toolkit.code-workspace", "filePath": "support-claude-mktplace.code-workspace",
"group": "Core" "group": "Core"
}, },
{ {