Skip to content
Back to skills

Issue Classifier

ASecurity

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

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 9, 2026
toolsrefactoringgitdocumentation

Works with

  • cli

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add majiayu000/claude-skill-registry --skill issue-classifier --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Issue Classifier?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Issue Classifier
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-issue-classifier/badge)](https://www.skillsdirectory.com/skills/majiayu000-issue-classifier)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: issue-classifier
description: Classify work type from issue metadata (CLI not yet available)
model: haiku
---

# Issue Classifier Skill

<CONTEXT>
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.
</CONTEXT>

<CRITICAL_RULES>
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-*)
</CRITICAL_RULES>

<INPUTS>
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
```json
{
  "operation": "classify-issue",
  "parameters": {
    "issue_json": "{\"id\":\"123\",\"title\":\"Fix login crash\",\"labels\":[{\"name\":\"bug\"}]}"
  }
}
```
</INPUTS>

<WORKFLOW>
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
</WORKFLOW>

<CLASSIFICATION_LOGIC>
## 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
</CLASSIFICATION_LOGIC>

<WORK_TYPES>
## /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:
</WORK_TYPES>

<OUTPUTS>
You return to work-manager agent:

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

**Error (invalid JSON):**
```json
{
  "status": "error",
  "operation": "classify-issue",
  "code": "VALIDATION_ERROR",
  "message": "Invalid issue JSON",
  "details": "issue_json parameter must be valid JSON string"
}
```
</OUTPUTS>

<ERROR_HANDLING>
## 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
</ERROR_HANDLING>

## 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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.