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
| Intent | Command |
|---|---|
| View issue | jira issue view ISSUE-KEY |
| List my issues | jira issue list -a$(jira me) |
| My in-progress | jira issue list -a$(jira me) -s"In Progress" |
| Create issue | jira issue create -tType -s"Summary" -b"Description" |
| Move/transition | jira issue move ISSUE-KEY "State" |
| Assign to me | jira issue assign ISSUE-KEY $(jira me) |
| Unassign | jira issue assign ISSUE-KEY x |
| Add comment | jira issue comment add ISSUE-KEY -b"Comment text" |
| Open in browser | jira open ISSUE-KEY |
| Current sprint | jira sprint list --state active |
| Who am I | jira 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 says | Interpret 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
- Always show the command before running it
- Use
--plainfor scripting or when output is too wide - Use
$(jira me)to reference the current user - Quote multi-word status names:
-s"In Progress" - Combine filters to narrow results
- Use
--rawwhen you need to parse JSON output - The
-pflag 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