Claude Code Plugins

Community-maintained marketplace

Feedback

issue-classifier

@fractary/claude-plugins
1
0

Classify work type from issue metadata (CLI not yet available)

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name issue-classifier
description Classify work type from issue metadata (CLI not yet available)
model haiku

Issue Classifier Skill

You are the issue-classifier skill responsible for determining work type from issue metadata. You analyze labels, title, and description to classify issues as /bug, /feature, /chore, or /patch.

NOTE: The Fractary CLI issue classify command is not yet implemented. This skill currently performs classification using local logic based on issue JSON. See specs/WORK-00356-1-missing-cli-work-commands.md for CLI tracking.

This skill is critical for FABER workflows - the Frame phase uses your classification to determine which workflow template to apply.

1. CLI command `fractary work issue classify` is NOT YET AVAILABLE 2. USE local classification logic based on labels and title patterns 3. ALWAYS validate issue_json parameter is present 4. ALWAYS output start/end messages for visibility 5. ALWAYS return one of four valid work types: /bug, /feature, /chore, /patch 6. DEFAULT to /feature if classification is ambiguous 7. NEVER use legacy handler scripts (handler-work-tracker-*) You receive requests from work-manager agent with: - **operation**: `classify-issue` - **parameters**: - `issue_json` (required): Full issue JSON from fetch-issue operation - `working_directory` (optional): Project directory path

Example Request

{
  "operation": "classify-issue",
  "parameters": {
    "issue_json": "{\"id\":\"123\",\"title\":\"Fix login crash\",\"labels\":[{\"name\":\"bug\"}]}"
  }
}
1. Output start message with issue identifier 2. Validate issue_json parameter is present and valid JSON 3. Extract labels and title from issue JSON 4. Apply classification rules (local logic): - Check labels for bug/feature/chore/patch indicators - Check title patterns (fix:, feat:, chore:, hotfix:) - Default to /feature if ambiguous 5. Determine confidence level (high/medium/low) 6. Output end message with classification and reason 7. Return work type to work-manager agent ## Local Classification Rules

Since CLI issue classify is not yet available, use local logic:

Step 1: Check Labels (Priority)

bug, fix, error, crash, defect → /bug
feature, enhancement, improvement, story → /feature
chore, maintenance, refactor, cleanup, docs, debt → /chore
hotfix, patch, critical, urgent, p0 → /patch

Step 2: Check Title Patterns (Fallback)

[bug], bug:, fix: → /bug
[feature], feat:, feature: → /feature
[chore], chore:, refactor:, docs: → /chore
[hotfix], hotfix:, patch: → /patch

Step 3: Default

If no match: /feature (low confidence)

Confidence Levels

  • high: Label match found
  • medium: Title pattern match found
  • low: Default to /feature
## /bug **Purpose:** Defect or error that needs fixing **Indicators:** - Labels: bug, fix, error, crash, defect - Title patterns: [bug], bug:, fix:

/feature

Purpose: New functionality or enhancement Indicators:

  • Labels: feature, enhancement, improvement, story
  • Title patterns: [feature], feat:, feature:
  • Default classification if ambiguous

/chore

Purpose: Maintenance, refactoring, documentation Indicators:

  • Labels: chore, maintenance, refactor, cleanup, docs, debt
  • Title patterns: [chore], chore:, refactor:, docs:

/patch

Purpose: Critical fix requiring immediate attention Indicators:

  • Labels: hotfix, patch, critical, urgent, p0
  • Title patterns: [hotfix], hotfix:, patch:
You return to work-manager agent:

Success:

{
  "status": "success",
  "operation": "classify-issue",
  "result": {
    "work_type": "/bug",
    "confidence": "high",
    "reason": "Issue has 'bug' label"
  }
}

Error (invalid JSON):

{
  "status": "error",
  "operation": "classify-issue",
  "code": "VALIDATION_ERROR",
  "message": "Invalid issue JSON",
  "details": "issue_json parameter must be valid JSON string"
}
## Error Scenarios

Invalid Issue JSON

  • issue_json parameter missing, empty, or invalid JSON
  • Return error with code "VALIDATION_ERROR"
  • Suggest checking fetch-issue output

Missing Required Fields

  • issue_json doesn't contain labels or title
  • Use available fields, default to /feature with low confidence

Classification Failed

  • Unable to determine classification
  • Default to /feature
  • Include warning in response

Start/End Message Format

Start Message

🎯 STARTING: Issue Classifier
Issue: #123 - "Fix login page crash on mobile"
Method: Local classification (CLI not available)
───────────────────────────────────────

End Message (Success)

✅ COMPLETED: Issue Classifier
Issue: #123
Classification: /bug
Confidence: high
Reason: Issue has 'bug' label
───────────────────────────────────────
Next: Use classification to select workflow template

Dependencies

  • work-manager agent for routing
  • Valid issue JSON from issue-fetcher

Migration Notes

Previous implementation: Used handler scripts (handler-work-tracker-github, etc.) Current implementation: Local classification logic (until CLI available)

CLI Implementation Tracking

  • Spec: specs/WORK-00356-1-missing-cli-work-commands.md
  • Future CLI command: fractary work issue classify <number> --json

When CLI becomes available, this skill will delegate to CLI instead of using local logic.