Use when applying or checking GitHub labels for agent assignment and status tracking. GitHub label taxonomy reference for the Chief of Staff Agent. Trigger with `/ecos-label-taxonomy`.
npx claudepluginhub emasoft/emasoft-plugins --plugin emasoft-chief-of-staffThis skill uses the workspace's default tool permissions.
This skill provides the label taxonomy relevant to the Chief of Staff Agent (ECOS) role. Each role plugin has its own label-taxonomy skill covering the labels that role manages.
Manages GitHub issue labels via gh CLI using AMOA taxonomy. Applies categories like assign:*, status:*, priority:* ensuring cardinality rules. Triggers on label queries or assignments.
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).
Triages GitHub issues via configurable label-based state machine. Use to categorize incoming issues, prepare for autonomous agents, or advance workflow states with 'gh' CLI.
Share bugs, ideas, or general feedback.
This skill provides the label taxonomy relevant to the Chief of Staff Agent (ECOS) role. Each role plugin has its own label-taxonomy skill covering the labels that role manages.
gh) installed and authenticated.emasoft/team-registry.jsonCopy this checklist and track your progress:
gh issue view <number>gh issue edit --add-label.emasoft/team-registry.json if agent assignment changed| Output Type | Description | Example |
|---|---|---|
| Label Applied | Label successfully added to issue | assign:eoa-svgbbox-orchestrator |
| Label Removed | Old label removed before new one | status:pending removed |
| Status Updated | Issue status changed via label | status:in-progress applied |
| Verification | Confirmation of label state | Labels: assign:implementer-1, status:todo, priority:high |
| Registry Synced | Team registry updated to match labels | current_issues: [42, 43] in team-registry.json |
| Error | Cause | Solution |
|---|---|---|
| Label not found | Label doesn't exist in repo | Create label first with gh label create |
| Permission denied | Insufficient repo access | Verify GitHub token has repo scope |
| Duplicate assign labels | Multiple assign:* labels on issue | Remove old assign label before adding new |
| Registry out of sync | Labels don't match team-registry.json | Run sync check script to reconcile |
| gh CLI not authenticated | GitHub token expired or missing | Run gh auth login |
| Issue not found | Invalid issue number | Verify issue exists with gh issue list |
Scenario: ECOS spawns a new agent "implementer-1" and assigns it to issue #42.
# Step 1: Add assignment label
gh issue edit 42 --add-label "assign:implementer-1"
# Step 2: Update status from backlog to ready
gh issue edit 42 --remove-label "status:backlog" --add-label "status:todo"
# Step 3: Update team registry
jq '.agents["implementer-1"].current_issues += [42]' .emasoft/team-registry.json > temp.json && mv temp.json .emasoft/team-registry.json
# Step 4: Verify
gh issue view 42 --json labels --jq '.labels[].name'
# Output: assign:implementer-1, status:todo
Scenario: Agent "implementer-1" is being terminated. Clear all its assignments.
# Step 1: Find all issues assigned to agent
AGENT_ISSUES=$(gh issue list --label "assign:implementer-1" --json number --jq '.[].number')
# Step 2: Remove assignment and update status
for ISSUE in $AGENT_ISSUES; do
gh issue edit $ISSUE --remove-label "assign:implementer-1" --add-label "status:backlog"
echo "Cleared assignment from issue #$ISSUE"
done
# Step 3: Update team registry
jq 'del(.agents["implementer-1"])' .emasoft/team-registry.json > temp.json && mv temp.json .emasoft/team-registry.json
# Step 4: Verify no issues remain assigned
gh issue list --label "assign:implementer-1"
# Output: (empty)
Scenario: Agent reports it's blocked on issue #43. ECOS updates status and notifies.
# Step 1: Update status to blocked
gh issue edit 43 --remove-label "status:in-progress" --add-label "status:blocked"
# Step 2: Add comment explaining blocker
gh issue comment 43 --body "Agent blocked: waiting for external API credentials. Assigned to human for resolution."
# Step 3: Escalate to human if needed
gh issue edit 43 --add-label "assign:human"
# Step 4: Verify
gh issue view 43 --json labels --jq '.labels[].name'
# Output: assign:human, status:blocked, priority:high
assign:*)ECOS coordinates with EOA on agent assignments.
| Label | Description | When ECOS Is Involved |
|---|---|---|
assign:<agent-name> | Specific agent | When spawning/managing agents |
assign:orchestrator | EOA handling | When escalating to EOA |
assign:human | Human needed | When human intervention required |
ECOS Assignment Responsibilities:
The full workflow uses these 8 status columns:
| # | Column Code | Display Name | Label | Description |
|---|---|---|---|---|
| 1 | backlog | Backlog | status:backlog | Entry point for new tasks |
| 2 | todo | Todo | status:todo | Ready to start |
| 3 | in-progress | In Progress | status:in-progress | Active work |
| 4 | ai-review | AI Review | status:ai-review | Integrator agent reviews ALL tasks |
| 5 | human-review | Human Review | status:human-review | User reviews BIG tasks only (via EAMA) |
| 6 | merge-release | Merge/Release | status:merge-release | Ready to merge |
| 7 | done | Done | status:done | Completed |
| 8 | blocked | Blocked | status:blocked | Blocked at any stage |
Task Routing Rules:
| Label | When ECOS Sets It |
|---|---|
status:blocked | When pausing work (resource constraints) or agent reports blocker |
status:todo | When blocker resolved and task is ready to resume |
priority:*)ECOS uses priority for resource allocation:
priority:critical - Ensure agent assigned immediatelypriority:high - Prioritize in staffing decisionspriority:normal - Standard allocationpriority:low - Can wait for resourcesstatus:*)ECOS monitors all status changes:
status:blocked - May need to reassign or escalatestatus:in-progress - Track for timeout/health monitoringstatus:ai-review - Route to EIA if not alreadystatus:human-review - Escalated for user review via EAMAstatus:merge-release - Ready to merge/release# Assign new agent to issue
gh issue edit $ISSUE_NUMBER --add-label "assign:$NEW_AGENT_NAME"
gh issue edit $ISSUE_NUMBER --remove-label "status:backlog" --add-label "status:todo"
# Clear assignment from all agent's issues
AGENT_ISSUES=$(gh issue list --label "assign:$AGENT_NAME" --json number --jq '.[].number')
for ISSUE in $AGENT_ISSUES; do
gh issue edit $ISSUE --remove-label "assign:$AGENT_NAME" --add-label "status:backlog"
done
# Mark issue blocked
gh issue edit $ISSUE_NUMBER --remove-label "status:in-progress" --add-label "status:blocked"
# Reassign to human
gh issue edit $ISSUE_NUMBER --remove-label "assign:$AGENT_NAME" --add-label "assign:human"
ECOS maintains the team registry at .emasoft/team-registry.json. Labels should be synchronized:
{
"agents": {
"implementer-1": {
"session_name": "code-impl-01",
"status": "active",
"current_issues": [42, 43] // Should match assign:implementer-1 labels
}
}
}
# Find issues assigned to agent
LABELED=$(gh issue list --label "assign:implementer-1" --json number --jq '.[].number' | sort)
# Compare with registry
REGISTERED=$(jq -r '.agents["implementer-1"].current_issues | sort | .[]' .emasoft/team-registry.json)
# Should match
Step-by-step runbooks for executing individual label management operations. Use these when performing a specific label-related operation.
.emasoft/team-registry.json stays synchronized with GitHub issue assignment labels by detecting and resolving discrepancies| Action | Labels Involved |
|---|---|
| Spawn agent | Add assign:<agent>, update status:todo |
| Terminate agent | Remove assign:<agent>, set status:backlog |
| Agent blocked | Update to status:blocked |
| Resolve blocker | Update to status:todo or status:in-progress |
| Escalate to human | Add assign:human |
| Block work | Add status:blocked |
type:* - Set at issue creationeffort:* - Set during triage by EOAreview:* - Managed by EIApriority:* - Set by EOA or EAMA (ECOS can suggest changes)