Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Jira Ticket Labeler Skill

ASecurity

Assess and classify JIRA tickets with appropriate issue types (Bug, Story, Task, Epic), priorities, and components using Atlassian MCP tools

6 stars
0 votes
0 copies
0 views
Added 9/20/2026
developmentgobashreactrefactoringgitapidatabasefrontendbackendsecurity

Works with

apimcp

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add darellchua2/opencode-config-template --skill jira-ticket-labeler-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Jira Ticket Labeler Skill?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Jira Ticket Labeler Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/darellchua2-jira-ticket-labeler-skill/badge)](https://www.skillsdirectory.com/skills/darellchua2-jira-ticket-labeler-skill)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: jira-ticket-labeler-skill
description: Assess and classify JIRA tickets with appropriate issue types (Bug, Story, Task, Epic), priorities, and components using Atlassian MCP tools
license: Apache-2.0
compatibility: opencode
category: JIRA
---

## What I do

I provide intelligent JIRA ticket classification by:

- Analyzing ticket content to determine appropriate issue type (Bug, Story, Task, Epic)
- Assigning priority levels using JIRA's priority field (Highest, High, Medium, Low, Lowest)
- Adding JIRA components for area classification
- Using Atlassian MCP tools for all JIRA operations
- Supporting cross-platform workflows (GitHub issue → JIRA ticket mapping)

## When to use me

Use this when:
- You need to classify JIRA tickets with correct issue types
- You want to set appropriate priorities on JIRA tickets
- You're creating JIRA tickets from GitHub issue context
- You need consistent ticket classification across your JIRA project
- You want to map GitHub labels to JIRA issue types

## Prerequisites

- `atlassian` MCP server enabled in this session — it is **disabled by default** (opt-in). If `atlassian_*` tools are absent from your tool list, do NOT attempt or hallucinate them:
  - Interactive: offer per-project enable via `opencode-repo-setup-skill` (effective next session).
  - Fallback: classification/label-mapping is analytical and can proceed without MCP; only ticket creation/reads (`atlassian_createJiraIssue`, `atlassian_getJiraIssue`) need the server or the REST fallback (`curl -u email:token`).
  - Otherwise: return the classification and report creation as skipped.
- JIRA project access with create/edit permissions
- Valid JIRA project key (e.g., "IBIS", "PROJ")

## Why a Separate Skill from git-issue-labeler

JIRA and GitHub use fundamentally different taxonomy systems:

| Aspect | GitHub | JIRA |
|--------|--------|------|
| Classification | Labels (flat, multiple) | Issue Type (single, structured) |
| Priority | Labels (`priority: high`) | Dedicated Priority field (dropdown) |
| Area | Labels | Components (separate entity) |
| Subtasks | Not supported natively | First-class citizen |
| Epics | Label-based | Dedicated Epic issue type |

GitHub `git-issue-labeler-skill` handles GitHub labels. This skill handles JIRA taxonomy.

## JIRA Issue Types

### Standard Hierarchy

```
Epic
 └── Story / Task
      └── Sub-task (Bug, Sub-task)
```

### Issue Type Reference

| Type | Description | When to Use |
|------|-------------|-------------|
| **Bug** | Something isn't working | Errors, crashes, incorrect behavior, regressions |
| **Story** | New feature or enhancement | User-facing features, new APIs, new functionality |
| **Task** | General work item | Technical debt, refactoring, configuration, documentation |
| **Epic** | Large body of work | Multi-sprint initiative, cross-cutting concern |
| **Sub-task** | Child of another issue | Break down Story/Task into smaller pieces |

### Type Detection

> **Sync Contract**: The priority keyword tables below are mirrored in `git-issue-labeler-skill`. When updating one, update both.

> These keywords are intent signals, not literal substring matches. Apply semantic judgment — "add" in "address" does not indicate a Story.

**Bug** — Keywords: fix, error, broken, crash, fail, doesn't work, incorrect, wrong, problem, bug, defect, regression
Examples:
- "Login fails when user enters invalid credentials"
- "App crashes when uploading large files"
- "Regression: export button stopped working after v2.1"

**Story** — Keywords: add, implement, create, new, feature, support, introduce, build, develop, as a user I want
Examples:
- "Add dark mode support to the dashboard"
- "Implement export to PDF functionality"
- "As a user I want to filter search results by date"

**Task** — Keywords: update, refactor, configure, migrate, document, upgrade, cleanup, improve, optimize
Examples:
- "Refactor authentication module for better testability"
- "Upgrade React to v18"
- "Update API documentation for v2 endpoints"

**Epic** — Keywords: initiative, project, overhaul, migration, platform, infrastructure
Examples:
- "User Authentication Overhaul"
- "Cloud Migration Initiative"
- "Design System Implementation"

## JIRA Priority Reference

| Priority | Description | When to Use |
|----------|-------------|-------------|
| **Highest** | System down, data loss, security | Production outage, data corruption, active exploit |
| **High** | Major feature broken | Core functionality impaired, significant user impact |
| **Medium** | Functional issue with workaround | Standard feature request, normal bug with workaround |
| **Low** | Minor inconvenience | Cosmetic issue, minor UX annoyance, nice-to-have |
| **Lowest** | Trivial | Typo in docs, minor visual glitch |

### Priority Detection

**Highest** — Keywords: critical, urgent, system down, data loss, security, vulnerability, outage, production down
Examples:
- "Production outage — all users affected"
- "Data loss reported during backup"

**High** — Keywords: high priority, important, blocking, unusable, regression, broken
Examples:
- "Core feature unusable after v3.0"
- "Regression blocking the release"

**Medium** (default) — Keywords: medium, moderate, workaround, intermittent
Examples:
- "Intermittent error with a known workaround"
- "Moderate: feature works but slowly"

**Low** — Keywords: low priority, minor, cosmetic, nice to have, nit, typo
Examples:
- "Minor cosmetic glitch in dark mode"
- "Typo in an error message"

**Lowest** — Keywords: trivial, whenever, backlog, far future
Examples:
- "Trivial: rename an internal flag"
- "Backlog — no timeline"

## GitHub → JIRA Mapping

When creating JIRA tickets from GitHub issue context:

| GitHub Label | JIRA Issue Type |
|-------------|----------------|
| `bug` | Bug |
| `enhancement` | Story |
| `documentation` | Task |
| `good first issue` | Task |
| No type label | Task (default) |

| GitHub Priority Label | JIRA Priority |
|----------------------|--------------|
| `priority: critical` | Highest |
| `priority: high` | High |
| `priority: medium` | Medium |
| `priority: low` | Low |
| (none) | Medium (default) |

## Steps

### Step 1: Analyze Ticket Content

Determine the appropriate issue type and priority from the title and description:

```bash
# Content to analyze
ticket_title="..."
ticket_description="..."
content="${ticket_title} ${ticket_description}"
```

### Step 2: Determine Issue Type

Resolve the issue type by matching ticket content against the **Type Detection** keyword lists above (§ Type Detection), applying semantic judgment:

- Bug / Story / Task / Epic keyword match → that issue type
- No keyword matches → default to `Task`

```bash
# issue_type is resolved from the Type Detection table above (not a literal regex match)
issue_type="<Bug|Story|Task|Epic>"
```

### Step 3: Determine Priority

Resolve the priority by matching ticket content against the **Priority Detection** keyword lists above (§ Priority Detection), applying semantic judgment:

- Highest / High / Low / Lowest keyword match → that priority
- No keyword matches → default to `Medium`

```bash
# priority is resolved from the Priority Detection table above (not a literal regex match)
priority="<Highest|High|Medium|Low|Lowest>"
```

### Step 4: Create or Update JIRA Ticket

Use Atlassian MCP tools to create the ticket:

```
# Create JIRA issue via MCP tool
atlassian_createJiraIssue(
  cloudId: "<cloud-id>",
  projectKey: "<PROJECT-KEY>",
  issueTypeName: "<issue_type>",
  summary: "<ticket_title>",
  description: "<ticket_description>",
  additional_fields: {
    "priority": { "name": "<priority>" }
  }
)
```

### Step 5: Map GitHub Labels to JIRA (Cross-Platform)

When creating a JIRA ticket from a GitHub issue:

```
1. Read GitHub issue labels
2. Map labels to JIRA issue type using the mapping table above
3. Map priority label to JIRA priority
4. Create JIRA ticket with mapped values
5. Add comment to GitHub issue with JIRA ticket link
```

### Step 6: Generate Assessment Report

```markdown
# JIRA Ticket Assessment

**Ticket**: <KEY>-<number> - <title>
**Issue Type**: <type>
**Priority**: <priority>

**Detection Keywords**:
- <keyword1> → <type>
- <keyword2> → <priority>

**Confidence**: High/Medium/Low

**GitHub Mapping** (if applicable):
- GitHub labels: <labels>
- Mapped to JIRA type: <type>
- Mapped to JIRA priority: <priority>
```

## JIRA Components

Components are JIRA's way of categorizing work by area. Common patterns:

| Component Pattern | Examples |
|-------------------|---------|
| By layer | `frontend`, `backend`, `api`, `database` |
| By feature | `auth`, `billing`, `notifications`, `search` |
| By module | `user-management`, `reporting`, `integrations` |
| By platform | `web`, `mobile`, `desktop`, `infrastructure` |

Component assignment is optional and depends on project configuration.

## Best Practices

### Issue Type Selection

- **Bug vs Task**: If it was working before and broke, it's a Bug. If it's an improvement, it's a Task.
- **Story vs Task**: If it delivers user-facing value, it's a Story. If it's technical, it's a Task.
- **Epic**: Only for multi-sprint initiatives. Don't overuse.
- **Sub-task**: Always nest under a parent. Never standalone.

### Priority Assignment

- Default to **Medium** unless keywords clearly indicate otherwise
- **Highest** should be rare — only for production-impacting issues
- Avoid priority inflation — not everything is High

### Cross-Platform Sync

- When syncing GitHub → JIRA, always set the JIRA issue type (not just labels)
- Add the JIRA ticket link as a comment on the GitHub issue
- Add the GitHub issue URL in the JIRA ticket description
- Keep priorities consistent across platforms

## Common Issues

### Unknown Issue Type

**Solution**: Default to `Task`. Add a comment suggesting the reporter clarify.

### Priority Field Not Available

**Solution**: Some JIRA projects customize priority values. Use `atlassian_getJiraIssueTypeMetaWithFields` to check available priorities for the project.

### Epic Link Required

**Solution**: Some projects require all issues to be linked to an Epic. Check the project's field configuration and link appropriately.

### Component Does Not Exist

**Solution**: Components are project-specific. Use `atlassian_search` to find existing components or skip component assignment if not available.

## Verification

After creating or classifying a JIRA ticket:

```
# Verify ticket details
atlassian_getJiraIssue(
  cloudId: "<cloud-id>",
  issueIdOrKey: "<KEY>-<number>",
  fields: ["summary", "issuetype", "priority", "status", "labels"]
)
```

Attribution

darellchua2darellchua2
View sourceMore from darellchua2 →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →