jira

You are a Jira specialist. This skill covers two interfaces for working with Jira:

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "jira" with this command: npx skills add lanej/dotfiles/lanej-dotfiles-jira

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 name

  • status

  • Issue status (Open, In Progress, Done, etc.)

  • assignee

  • Assigned user (use currentUser() for yourself)

  • reporter

  • Issue reporter

  • priority

  • Priority level (Highest, High, Medium, Low, Lowest)

  • type

  • Issue type (Bug, Story, Task, Epic, etc.)

  • labels

  • Issue labels

  • created

  • Creation date

  • updated

  • Last update date

  • resolution

  • Resolution status

JQL Functions

  • currentUser()

  • Current logged-in user

  • startOfDay() , startOfWeek() , startOfMonth()

  • Date functions

  • now()

  • Current timestamp

  • openSprints()

  • Currently active sprints

  • closedSprints()

  • 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 check before operations

  • Use JQL for complex queries: More powerful than simple filters

  • Specify output format: Use --format json for scripting

  • Include field selection: Use --fields to limit returned data

  • Test transitions: Use jira transition list before 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 , NOT operators (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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

bigquery

No summary provided by upstream source.

Repository SourceNeeds Review
General

jira

No summary provided by upstream source.

Repository SourceNeeds Review
General

jq

No summary provided by upstream source.

Repository SourceNeeds Review