Marketplace
label-manager
Add, remove, and list labels on issues via Fractary CLI
model: haiku
$ 설치
git clone https://github.com/fractary/claude-plugins /tmp/claude-plugins && cp -r /tmp/claude-plugins/plugins/work/skills/label-manager ~/.claude/skills/claude-plugins// tip: Run this command in your terminal to install the skill
SKILL.md
name: label-manager description: Add, remove, and list labels on issues via Fractary CLI model: haiku
Label Manager Skill
You support adding, removing, and listing labels. You are used by FABER workflows to track work state (faber-in-progress, faber-completed, etc.) and by users for manual categorization.
<CRITICAL_RULES>
- ALWAYS use Fractary CLI (
fractary work label) for label operations - ALWAYS validate required parameters based on operation
- ALWAYS validate operation is one of: "add-label", "remove-label", "list-labels"
- ALWAYS use --json flag for programmatic CLI output
- ALWAYS output start/end messages for visibility
- HANDLE label not found errors gracefully
- NEVER use legacy handler scripts (handler-work-tracker-*) </CRITICAL_RULES>
add-label Parameters
issue_id(required): Issue identifierlabel_nameorlabels(required): Label(s) to add (comma-separated for multiple)working_directory(optional): Project directory path
Example Request
{
"operation": "add-label",
"parameters": {
"issue_id": "123",
"labels": "bug,high-priority"
}
}
remove-label Parameters
issue_id(required): Issue identifierlabel_nameorlabels(required): Label(s) to removeworking_directory(optional): Project directory path
Example Request
{
"operation": "remove-label",
"parameters": {
"issue_id": "123",
"label_name": "faber-in-progress"
}
}
list-labels Parameters
issue_id(optional): Issue identifier (if omitted, lists repo labels)working_directory(optional): Project directory path
Example Request
{
"operation": "list-labels",
"parameters": {
"issue_id": "123"
}
}
<CLI_INVOCATION>
CLI Commands
Add Labels
fractary work label add <issue_number> --labels "label1,label2" --json
Remove Labels
fractary work label remove <issue_number> --labels "label1" --json
List Repository Labels
fractary work label list --json
CLI Response Format
Success (add-label):
{
"status": "success",
"data": {
"issue_id": "123",
"labels_added": ["bug", "high-priority"],
"current_labels": ["bug", "high-priority", "needs-review"]
}
}
Success (list-labels):
{
"status": "success",
"data": {
"labels": [
{"name": "bug", "color": "d73a4a", "description": "Something isn't working"},
{"name": "feature", "color": "0366d6", "description": "New feature"}
],
"count": 2
}
}
Execution Pattern
# Add labels example
result=$(fractary work label add "$ISSUE_ID" --labels "$LABELS" --json 2>&1)
cli_status=$(echo "$result" | jq -r '.status')
if [ "$cli_status" = "success" ]; then
labels_added=$(echo "$result" | jq -r '.data.labels_added')
fi
</CLI_INVOCATION>
<COMMON_LABELS> FABER workflow labels:
- faber-in-progress: Work actively being done
- faber-completed: Work finished successfully
- faber-error: Workflow encountered error
Classification labels:
- bug: Bug fix
- feature: New feature/enhancement
- chore: Maintenance/refactoring
- hotfix: Critical patch </COMMON_LABELS>
Success (add-label):
{
"status": "success",
"operation": "add-label",
"result": {
"label": "faber-in-progress",
"issue_id": "123",
"message": "Label 'faber-in-progress' added to issue #123"
}
}
Success (remove-label):
{
"status": "success",
"operation": "remove-label",
"result": {
"label": "faber-in-progress",
"issue_id": "123",
"message": "Label 'faber-in-progress' removed from issue #123"
}
}
Success (list-labels):
{
"status": "success",
"operation": "list-labels",
"result": {
"labels": [
{"name": "bug", "color": "d73a4a", "description": "Something isn't working"},
{"name": "high-priority", "color": "ff0000", "description": ""}
],
"count": 2
}
}
Error:
{
"status": "error",
"operation": "add-label",
"code": "NOT_FOUND",
"message": "Issue #999 not found"
}
<ERROR_HANDLING>
Error Scenarios
Missing Required Parameters
- Validate before CLI invocation
- Return error with code "VALIDATION_ERROR"
Issue Not Found
- CLI returns error code "NOT_FOUND"
- Return error JSON with message
Label Not Found (for remove)
- Log warning, return success (idempotent)
Authentication Failed
- CLI returns error code "AUTH_FAILED"
- Return error suggesting checking token
CLI Not Found
- Check if
fractarycommand exists - Return error suggesting:
npm install -g @fractary/cli
Graceful Handling
- Removing non-existent label: Log warning, return success
- Adding duplicate label: Handler handles idempotently </ERROR_HANDLING>
Start/End Message Format
Start Message
🎯 STARTING: Label Manager
Issue: #123
Action: add
Labels: faber-in-progress
───────────────────────────────────────
End Message (Success)
✅ COMPLETED: Label Manager
Label 'faber-in-progress' added to issue #123
───────────────────────────────────────
Dependencies
@fractary/cli >= 0.3.0- Fractary CLI with work modulejq- JSON parsing- work-manager agent for routing
Migration Notes
Previous implementation: Used handler scripts (handler-work-tracker-github, etc.)
Current implementation: Uses Fractary CLI directly (fractary work label)
The CLI handles:
- Platform detection from configuration
- Authentication via environment variables
- API calls to GitHub/Jira/Linear
- Response normalization
Repository

fractary
Author
fractary/claude-plugins/plugins/work/skills/label-manager
1
Stars
0
Forks
Updated3d ago
Added1w ago