Unnamed Skill

This skill should be used when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like "jira", "issue", "ticket", "sprint", "backlog", or issue key patterns.

$ 설치

git clone https://github.com/ahmedelgabri/dotfiles /tmp/dotfiles && cp -r /tmp/dotfiles/config/claude/skills/jira ~/.claude/skills/dotfiles

// tip: Run this command in your terminal to install the skill


name: jira

description: This skill should be used when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like "jira", "issue", "ticket", "sprint", "backlog", or issue key patterns.

version: 1.0.0

Jira CLI Skill

This skill enables natural language interaction with Jira via the jira CLI tool (https://github.com/ankitpokhrel/jira-cli).

Quick Reference

IntentCommand
View issuejira issue view ISSUE-KEY
List my issuesjira issue list -a$(jira me)
My in-progressjira issue list -a$(jira me) -s"In Progress"
Create issuejira issue create -tType -s"Summary" -b"Description"
Move/transitionjira issue move ISSUE-KEY "State"
Assign to mejira issue assign ISSUE-KEY $(jira me)
Unassignjira issue assign ISSUE-KEY x
Add commentjira issue comment add ISSUE-KEY -b"Comment text"
Open in browserjira open ISSUE-KEY
Current sprintjira sprint list --state active
Who am Ijira me

Command Details

Viewing Issues

# View single issue
jira issue view ISSUE-KEY

# View with more comments
jira issue view ISSUE-KEY --comments 5

# Get raw JSON
jira issue view ISSUE-KEY --raw

Listing Issues

# List all issues in project
jira issue list

# List my issues
jira issue list -a$(jira me)

# Filter by status (use quotes for multi-word statuses)
jira issue list -s"In Progress"
jira issue list -s"To Do"
jira issue list -sDone

# Filter by type
jira issue list -tBug
jira issue list -tStory
jira issue list -tTask
jira issue list -tEpic

# Filter by priority
jira issue list -yHigh
jira issue list -yCritical

# Filter by label
jira issue list -lurgent -lbug

# Combine filters
jira issue list -a$(jira me) -s"In Progress" -yHigh

# Search with text
jira issue list "login error"

# Recently accessed
jira issue list --history

# Issues I'm watching
jira issue list -w

# Created/updated filters
jira issue list --created today
jira issue list --created week
jira issue list --updated -2d

# Plain output for scripting
jira issue list --plain --no-headers

# Specific columns
jira issue list --plain --columns key,summary,status,assignee

# Raw JQL query
jira issue list -q"status = 'In Progress' AND assignee = currentUser()"

# Paginate results
jira issue list --paginate 20
jira issue list --paginate 10:50 # start:limit

Creating Issues

# Interactive creation
jira issue create

# Non-interactive with all fields
jira issue create \
	-tBug \
	-s"Login button not working" \
	-b"Users cannot click the login button on Safari" \
	-yHigh \
	-lbug -lurgent

# Create and assign to self
jira issue create -tTask -s"Summary" -a$(jira me)

# Create subtask (requires parent)
jira issue create -tSub-task -P"PROJ-123" -s"Subtask summary"

# Create with custom fields
jira issue create -tStory -s"Summary" --custom story-points=3

# Skip prompts for optional fields
jira issue create -tTask -s"Quick task" --no-input

# Open in browser after creation
jira issue create -tBug -s"Bug title" --web

# Read description from file
jira issue create -tStory -s"Summary" --template /path/to/template.md

# Read description from stdin
echo "Description here" | jira issue create -tTask -s"Summary"

Transitioning Issues

# Move to a state
jira issue move ISSUE-KEY "In Progress"
jira issue move ISSUE-KEY "Done"
jira issue move ISSUE-KEY "To Do"

# Move with comment
jira issue move ISSUE-KEY "Done" --comment "Completed the implementation"

# Move and set resolution
jira issue move ISSUE-KEY "Done" -R"Fixed"

# Move and reassign
jira issue move ISSUE-KEY "In Review" -a"reviewer@example.com"

# Open in browser after transition
jira issue move ISSUE-KEY "Done" --web

Assigning Issues

# Assign to specific user
jira issue assign ISSUE-KEY "user@example.com"
jira issue assign ISSUE-KEY "John Doe"

# Assign to self
jira issue assign ISSUE-KEY $(jira me)

# Assign to default assignee
jira issue assign ISSUE-KEY default

# Unassign
jira issue assign ISSUE-KEY x

Comments

# Add comment
jira issue comment add ISSUE-KEY -b"This is my comment"

# Add comment from file
jira issue comment add ISSUE-KEY --template /path/to/comment.md

Sprints

# List sprints
jira sprint list

# Active sprint only
jira sprint list --state active

# Add issue to sprint
jira sprint add SPRINT-ID ISSUE-KEY

# Close sprint
jira sprint close SPRINT-ID

Other Commands

# Open issue in browser
jira open ISSUE-KEY

# Show current user
jira me

# Server info
jira serverinfo

# List projects
jira project list

# List boards
jira board list

Natural Language Mapping

When interpreting user requests, map these patterns:

User saysInterpret as
"my issues", "my tickets"-a$(jira me)
"in progress", "working on"-s"In Progress"
"todo", "to do", "backlog"-s"To Do"
"done", "completed", "finished"-sDone
"bugs", "defects"-tBug
"stories", "features"-tStory
"tasks"-tTask
"epics"-tEpic
"high priority", "urgent"-yHigh or -yCritical
"blocked"-s"Blocked" or search for "blocked"
"this week"--created week or --updated week
"today"--created today
"recent", "recently"--history
"watching"-w
"assign to me"$(jira me)
"unassign"x
"open it", "show in browser"jira open

Issue Key Detection

Issue keys follow the pattern: [A-Z]+-[0-9]+ (e.g., PROJ-123, ABC-1).

When a user mentions an issue key in conversation:

  • Offer to view it: jira issue view KEY
  • Or open it: jira open KEY

Tips

  1. Always show the command before running it
  2. Use --plain for scripting or when output is too wide
  3. Use $(jira me) to reference the current user
  4. Quote multi-word status names: -s"In Progress"
  5. Combine filters to narrow results
  6. Use --raw when you need to parse JSON output
  7. The -p flag can override the default project

Error Handling

Common issues:

  • "Issue does not exist" - verify the issue key
  • "Transition not allowed" - check current status and available transitions
  • "User not found" - use exact email or display name