From jira
Categorizes Jira issues into Red Hat Sankey activity types (single or batch) using MCP Jira tools. Useful for capacity allocation and work-type classification workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/jira:categorize-activity-typesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Categorize Jira issues into Red Hat's Sankey capacity allocation categories and update them via MCP Jira tools. This skill supports two modes of operation:
Categorize Jira issues into Red Hat's Sankey capacity allocation categories and update them via MCP Jira tools. This skill supports two modes of operation:
/jira:categorize-activity-type)/jira:batch-categorize-activity-types)Both modes use identical classification logic, validation, and reporting.
These are the only valid values. Use the exact strings:
| Activity Type | Short Description |
|---|---|
| Associate Wellness & Development | Onboarding, training, AI learning, conferences, team health |
| Incidents & Support | Production incidents, customer escalations, on-call |
| Security & Compliance | CVEs, weaknesses, FedRAMP, compliance, security tooling |
| Quality / Stability / Reliability | Bugs, SLOs, chores, tech debt, toil reduction, PMR actions |
| Future Sustainability | Proactive architecture, productivity improvements, upstream, enablement |
| Product / Portfolio Work | New features, enhancements, strategic product/portfolio work |
For detailed definitions, subcategories, and edge cases, see resources/activity-type-guidance.md.
The Activity Type custom field ID is customfield_10464. This is the same across all projects on redhat.atlassian.net.
Before starting any work, verify MCP Jira tools are available:
searchJiraIssuesUsingJql with a simple query (e.g., jql: "project = OCM", maxResults: 1)Both modes write artifacts to .work/activity-type-classifier/. Create this directory before starting:
mkdir -p .work/activity-type-classifier
Copy this checklist and track progress:
Classification Progress:
- [ ] Prerequisites: MCP Jira tools available
- [ ] Phase 1: Gather issues
- [ ] Phase 2: Categorize each issue
- [ ] Phase 3: Validate & generate report
- [ ] Phase 4: Apply updates (with approval)
- [ ] Phase 5: Iterate (batch mode only)
Fetch the issue by key using getJiraIssue:
summary,description,issuetype,labels,parent,components,priority,customfield_10464customfield_10464 is not null), inform the user and stopParse user input for:
AND resolved >= "2025-01-01"Always filter for issues without an Activity Type set. The "Activity Type" is EMPTY condition is mandatory in every query — do not ask the user whether to include it.
Construct the JQL query using this template:
project = {PROJECT} AND issuetype = {TYPE} AND "Activity Type" is EMPTY
Common additions:
AND resolved >= "2025-01-01"AND status != ClosedExecute searchJiraIssuesUsingJql with maxResults: 50. If more results exist, make a second call with nextPageToken to get up to 100 total. Combine both result sets.
From each issue, extract: key, summary, description (truncate to 2000 chars), labels, issuetype, status, priority, comment, and parent. Save all extracted data to .work/activity-type-classifier/issues.json.
Report the count of issues found to the user before proceeding.
Pre-check — Parent inheritance: Before classifying each issue, check if it has a parent issue. If the parent has an Activity Type set (customfield_10464), inherit it directly — no further classification needed. Set confidence to "High" and reasoning to "Inherited from {PARENT_KEY}". To look up a parent's Activity Type, call getJiraIssue with the parent's key and check customfield_10464. Cache parent lookups to reduce API calls — multiple children may share the same parent.
For remaining issues (no parent or parent has no Activity Type), read summary, description, labels, comments, and status. Apply the classification rules below and the detailed guidance in resources/activity-type-guidance.md.
Save classifications to .work/activity-type-classifier/classifications.json as a JSON array:
[
{
"key": "OCM-12345",
"summary": "Issue title",
"activityType": "Product / Portfolio Work",
"confidence": "High",
"reasoning": "New customer-facing feature for cluster provisioning"
}
]
In single-issue mode, this array contains exactly one entry. In batch mode, it contains all classified issues.
If total issues exceed 50 (batch mode), process in sub-batches of 20 to manage context.
Run the validation and report generation scripts. These are located in scripts/ relative to this skill's directory.
bash plugins/jira/skills/categorize-activity-types/scripts/validate-classifications.sh .work/activity-type-classifier/classifications.json
python3 plugins/jira/skills/categorize-activity-types/scripts/generate-report.py .work/activity-type-classifier/classifications.json .work/activity-type-classifier/report.md
--auto-apply--auto-apply flag is present AND confidence is High: automatically update the Activity Type field without prompting--dry-run flag is present, skip this phase entirelyUse editJiraIssue to set customfield_10464 (Activity Type) to the classified value, e.g. {"value": "Product / Portfolio Work"}.
Updated OCM-12345: Activity Type set to "Product / Portfolio Work"
View at: https://redhat.atlassian.net/browse/OCM-12345
After applying updates, offer to re-run the workflow:
When classifying an issue:
For the complete category definitions with subcategories and examples, see resources/activity-type-guidance.md.
| File | Purpose | When to Read |
|---|---|---|
| resources/activity-type-guidance.md | Full Sankey category definitions and subcategories | Phase 2 (classifying) |
| resources/report-template.md | Report format reference | Phase 3 (report generation) |
| scripts/validate-classifications.sh | Validate classifications JSON | Phase 3 (validation) |
| scripts/generate-report.py | Generate markdown report from JSON | Phase 3 (report generation) |
| scripts/cleanup.sh | Remove data artifacts, preserve reports | Post-workflow cleanup |
npx claudepluginhub cblecker/ai-helpers --plugin jiraCategorizes Jira issues into Red Hat Sankey activity types (single or batch) using MCP Jira tools. Useful for capacity allocation and work-type classification workflows.
Triages Jira issues by classifying type, assessing complexity (0-100 scale), determining priority/severity, and routing to workflows/agents.
Summarizes Jira ticket activity and child tickets to detect stale backlog items. Analyzes hierarchy, comments, and changelog to produce a staleness report.