Help us improve
Share bugs, ideas, or general feedback.
From coding-team
Balance-assign a pending issue to a coding worker (vm01-vm0N) based on current workload.
npx claudepluginhub vm0-ai/team-skills --plugin coding-teamHow this skill is triggered — by the user, by Claude, or both
Slash command
/coding-team:coding-assignThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Assigns the current working issue to a coding worker label (`vm01`–`vm0N`) using load balancing, ensuring even distribution of issues across workers.
Triages GitHub issues assigned to you: fetches via GH CLI with cc-triage-scope label, builds dependency graph, categorizes resolved issues, and applies labels (cc-create-issue, cc-exec-issue, cc-update-issue).
Discovers open issues with a target label (default: ready), triages them, and delegates to the Orchestrator for parallel processing. Supports lock filtering, env profiles, and non-interactive execution.
Applies GitHub label taxonomy for AI Maestro orchestration. Enforces cardinality rules for categories like status, priority, and type via CLI commands.
Share bugs, ideas, or general feedback.
Assigns the current working issue to a coding worker label (vm01–vm0N) using load balancing, ensuring even distribution of issues across workers.
Your args are: $ARGUMENTS
The first argument is the maximum number of workers (optional, defaults to 4). For example, coding-assign 8 means workers vm01 through vm08.
# Example: /coding-assign 8
MAX_WORKERS=8
# Example: /coding-assign (no args — defaults to 4)
MAX_WORKERS=4
If no argument is provided, default to MAX_WORKERS=4 (uniform distribution across vm01–vm04).
This skill expects a current working issue in the conversation context. If no issue has been discussed, ask the user for the issue number.
MAX_WORKERS=<parsed from args>
ISSUE=<from conversation context>
ME=$(gh api user --jq '.login')
Fetch all lane data in a single parallel call:
FIRST_LANE=$(printf "vm%02d" 1)
LAST_LANE=$(printf "vm%02d" $MAX_WORKERS)
LANES=$(${CLAUDE_PLUGIN_ROOT}/scripts/lane-status.sh "${FIRST_LANE}-${LAST_LANE}" --user "$ME")
This queries all lanes in parallel and returns issue/PR counts per lane. Extract the load per lane:
echo "$LANES" | jq '.[] | {lane, issue_count, pr_count, total}'
Pick the worker label with the lowest total (issues + PRs). Prefer workers with zero total items. If there's a tie, pick the lowest-numbered worker.
Remove pending label (if present):
gh issue edit $ISSUE --remove-label "pending"
Add the selected worker label:
gh issue edit $ISSUE --add-label "$SELECTED_LABEL"
Ensure the label exists — if the label doesn't exist yet, create it:
gh label create "$SELECTED_LABEL" --description "Coding worker $SELECTED_LABEL" --color 0E8A16 2>/dev/null || true
Output a summary:
Issue #<NUMBER> assigned to worker <LABEL>
Worker load (issues + PRs):
vm01: 3 (issues: 2, PRs: 1)
vm02: 0 (issues: 0, PRs: 0) <-- assigned here
vm03: 3 (issues: 1, PRs: 2)
...
vm01 over vm02 when equalpending label — the issue is no longer waiting for human inputvm0N label doesn't exist, create it