jira
SKILL.md
Jira Skill
You are a Jira specialist. This skill covers two interfaces for working with Jira:
- Jira CLI - Command-line tool for terminal operations
- Jira MCP Server - MCP tools for programmatic access (mcp__jira__* functions)
Jira MCP Server
When using MCP tools (mcp__jira__*), follow these patterns:
User Management and Assignment
Search for users before assigning:
1. Search: mcp__jira__jira_users_search(query="Full Name")
2. Extract account_id from results
3. Assign: mcp__jira__jira_issues_assign(issue_key, account_id)
Error Handling - Empty Response Pattern
CRITICAL: Empty response errors are often successes
The Jira API returns HTTP 204 (No Content) for successful operations that don't return data. The MCP server may report these as errors:
Error: Invalid Response Payload (b""): EOF while parsing a value at line 1 column 0
Error: Some(204)
Best Practice: Always verify operations with GET requests
# After assign/update that returns empty response error:
1. Call mcp__jira__jira_issues_get(issue_key)
2. Check if the operation actually succeeded
3. Report success based on verification, not error message
Example Pattern:
# Try to assign
assign_result = mcp__jira__jira_issues_assign("PROJ-123", account_id)
# May return error but succeed
# Verify the assignment worked
issue = mcp__jira__jira_issues_get("PROJ-123")
if issue.assignee.account_id == account_id:
# Assignment succeeded despite error message
Issue Links
Creating links between issues:
mcp__jira__jira_issuelinks_create(
inward_issue="PROJ-123",
outward_issue="OTHER-456",
link_type="Relates" # or "Blocks", "Duplicates", etc.
)
Common Workflows
Create issue with all details:
1. Search for assignee: mcp__jira__jira_users_search(query="Name")
2. Create issue: mcp__jira__jira_issues_create(...)
3. Verify with: mcp__jira__jira_issues_get(issue_key)
Update existing issue:
1. Update: mcp__jira__jira_issues_update(issue_key, fields...)
2. Verify: mcp__jira__jira_issues_get(issue_key)
Link related issues:
1. Create link: mcp__jira__jira_issuelinks_create(...)
2. Verify: mcp__jira__jira_issues_get(issue_key) # check links in response
Jira CLI
The Jira CLI provides command-line access to Jira for terminal operations.
Core Commands
Authentication
# Check authentication status
jira auth check
# Login to Jira
jira auth login
Issue Management
# View issue details
jira issue get ISSUE-123
# Create new issue
jira issue create --project PROJ --type Bug --summary "Issue summary" --description "Description"
# Update issue
jira issue update ISSUE-123 --summary "New summary"
# Add comment to issue
jira comment add ISSUE-123 "Comment text"
# List comments on issue
jira comment list ISSUE-123
Issue Transitions
# List available transitions for an issue
jira transition list ISSUE-123
# Transition issue to new status
jira transition ISSUE-123 "In Progress"
Searching with JQL
# Search issues with JQL
jira search "project = PROJ AND status = Open"
# Search with output format
jira search "assignee = currentUser()" --format json
# Search with field selection
jira search "project = PROJ" --fields summary,status,assignee
Project Operations
# List all projects
jira project list
# Get project details
jira project get PROJ
Watching and Assigning
# Watch an issue
jira watch add ISSUE-123
# Stop watching an issue
jira watch remove ISSUE-123
# Assign issue
jira assign ISSUE-123 username
# Assign to self
jira assign ISSUE-123 me
Common Workflows
Viewing Your Work
# View issues assigned to you
jira search "assignee = currentUser() AND status != Done"
# View issues you're watching
jira search "watcher = currentUser()"
# View recent activity
jira search "updatedDate >= -7d AND assignee = currentUser()"
Creating and Updating Issues
# Create a bug
jira issue create --project PROJ --type Bug \
--summary "Login button not working" \
--description "Steps to reproduce..."
# Update priority
jira issue update ISSUE-123 --priority High
# Add labels
jira issue update ISSUE-123 --labels bug,frontend
# Link issues
jira link add ISSUE-123 ISSUE-456 "blocks"
Moving Issues Through Workflow
# Start work on issue
jira transition ISSUE-123 "In Progress"
# Mark as done
jira transition ISSUE-123 "Done"
# Reopen issue
jira transition ISSUE-123 "Reopen"
JQL Reference
Common JQL Patterns
# Issues in specific project
jira search "project = MYPROJ"
# Open issues assigned to you
jira search "assignee = currentUser() AND status in (Open, 'In Progress')"
# High priority bugs
jira search "type = Bug AND priority = High"
# Recently updated issues
jira search "updated >= -1w"
# Issues created this sprint
jira search "sprint in openSprints() AND created >= startOfWeek()"
# Issues with specific label
jira search "labels = urgent"
# Issues in epic
jira search "'Epic Link' = EPIC-123"
JQL Field Reference
project- Project key or namestatus- Issue status (Open, In Progress, Done, etc.)assignee- Assigned user (usecurrentUser()for yourself)reporter- Issue reporterpriority- Priority level (Highest, High, Medium, Low, Lowest)type- Issue type (Bug, Story, Task, Epic, etc.)labels- Issue labelscreated- Creation dateupdated- Last update dateresolution- Resolution status
JQL Functions
currentUser()- Current logged-in userstartOfDay(),startOfWeek(),startOfMonth()- Date functionsnow()- Current timestampopenSprints()- Currently active sprintsclosedSprints()- Completed sprints
Output Formats
# JSON output (for scripting)
jira search "project = PROJ" --format json
# Table output (human-readable, default)
jira search "project = PROJ" --format table
# CSV output
jira search "project = PROJ" --format csv
Best Practices
- Always authenticate first: Run
jira auth checkbefore operations - Use JQL for complex queries: More powerful than simple filters
- Specify output format: Use
--format jsonfor scripting - Include field selection: Use
--fieldsto limit returned data - Test transitions: Use
jira transition listbefore transitioning - Be specific with JQL: Use quotes for multi-word values
Common Use Cases
Daily Standup Prep
# What you worked on yesterday
jira search "assignee = currentUser() AND updated >= -1d"
# What you're working on today
jira search "assignee = currentUser() AND status = 'In Progress'"
Bug Triage
# Unassigned bugs
jira search "type = Bug AND assignee is EMPTY AND status = Open"
# Critical bugs in project
jira search "project = PROJ AND type = Bug AND priority in (Highest, High)"
Sprint Planning
# Issues in backlog
jira search "project = PROJ AND status = 'To Do' AND sprint is EMPTY"
# Issues in current sprint
jira search "project = PROJ AND sprint in openSprints()"
# Completed this sprint
jira search "project = PROJ AND sprint in openSprints() AND status = Done"
Error Handling
If you encounter authentication errors:
jira auth login
If JQL syntax errors occur:
- Check for proper quoting of multi-word values
- Verify field names are correct
- Use
AND,OR,NOToperators (uppercase)
Quick Reference
# View issue
jira issue get ISSUE-123
# Search
jira search "JQL query here"
# Create
jira issue create --project PROJ --type TYPE --summary "text"
# Update
jira issue update ISSUE-123 --field value
# Transition
jira transition ISSUE-123 "Status Name"
# Comment
jira comment add ISSUE-123 "Comment text"
# Assign
jira assign ISSUE-123 username
Weekly Installs
12
Repository
lanej/dotfilesGitHub Stars
37
First Seen
Jan 24, 2026
Security Audits
Installed on
claude-code11
antigravity10
codex10
gemini-cli10
opencode10
windsurf9