Categorize JIRA tickets into activity types using AI
Analyzes JIRA tickets and assigns Activity Type categories using AI-powered reasoning with confidence scoring.
/plugin marketplace add openshift-eng/ai-helpers/plugin install jira@ai-helpers<issue-key> [--auto-apply]jira:categorize-activity-type
/jira:categorize-activity-type <issue-key> [--auto-apply]
Analyzes JIRA tickets and assigns appropriate Activity Type categories based on ticket content, issue type, labels, and parent Epic context. Uses AI-powered categorization with confidence scoring to ensure accurate assignments.
The command supports six activity type categories:
Use MCP to fetch only the fields needed for categorization:
issue_data = mcp__atlassian__jira_get_issue(
issue_key="${1}",
fields="summary,description,issuetype,labels,parent,components,priority,customfield_12320040"
)
Extract relevant fields:
summary - Ticket titledescription - Detailed ticket descriptionissuetype.name - Issue Type (Bug, Story, Task, Vulnerability, etc.)labels - Ticket labelsparent.key - Parent Epic/Story key (if available)components - Component assignmentspriority - Priority levelcustomfield_12320040 - Current Activity Type value (if set)Delegate categorization analysis to the categorize-activity-type skill which implements:
Issue Type Heuristics - Apply default mappings:
Keyword Scanning - Search for indicator words:
Parent Context Inheritance - When ticket is child of Epic:
Ambiguity Resolution - Apply priority rules:
See skills/categorize-activity-type/SKILL.md for detailed categorization methodology.
Display categorization analysis to user:
Activity Type: Quality / Stability / Reliability
Confidence: High
Reasoning: This is a Bug issue type focused on fixing a memory leak in the scanner
component. Memory leaks directly impact system stability and reliability. The description
mentions "intermittent crashes" and "resource exhaustion," which are classic reliability
concerns. No security implications mentioned, and this is a proactive fix rather than a
customer-facing incident.
Key Evidence:
- Issue Type: Bug
- Summary contains: "Fix memory leak"
- Description mentions: "crashes", "resource exhaustion", "intermittent failures"
- No security keywords present
- No parent Epic context available
Auto-apply logic:
If --auto-apply flag present AND confidence is High:
Otherwise (no flag OR confidence is Medium/Low):
Update using MCP:
mcp__atlassian__jira_update_issue(
issue_key="${1}",
fields={
"customfield_12320040": { # Activity Type field
"value": "<SELECTED_ACTIVITY_TYPE>"
}
}
)
Success confirmation:
✓ Updated ROX-12345: Activity Type set to "Quality / Stability / Reliability"
View at: https://issues.redhat.com/browse/ROX-12345
Handle common errors:
$1 - issue-key (required)
--auto-apply (optional)
Format: Human-readable categorization analysis with optional JIRA update
Components:
Exit codes:
0 - Success (with or without update)1 - Error (invalid issue key, permission denied, MCP error, etc.)Basic categorization (manual confirmation):
/jira:categorize-activity-type ROX-12345
Result: Displays categorization analysis, prompts user to confirm before updating
Auto-apply for high confidence:
/jira:categorize-activity-type ROX-12345 --auto-apply
Result: If confidence is High, automatically updates Activity Type without prompting
Process security vulnerability:
/jira:categorize-activity-type ROX-28072 --auto-apply
Expected: Issue Type = Vulnerability → "Security & Compliance" (High confidence, auto-applied)
Process bug with unclear context:
/jira:categorize-activity-type OCPBUGS-45678
Expected: Analyzes keywords and parent Epic, may show Medium confidence, asks for confirmation
jira:grooming - Backlog grooming with activity type analysisjira:create - Create issues with pre-assigned activity typesjira:validate-blockers - Validate release blockers with scoringcustomfield_12320040 - This is specific to Red Hat JIRA instances. Other JIRA instances will have different custom field IDs for Activity Type. To find your instance's field ID:
mcp__atlassian__jira_get_issue(issue_key="YOUR-ISSUE-KEY")customfield_12345) associated with that fieldcustomfield_12320040