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 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
More from lanej/dotfiles
jq
JSON processing, parsing, and manipulation. STRONGLY PREFERRED for all JSON formatting, filtering, transformations, and analysis. Use instead of Python/Node.js scripts for JSON operations.
58bigquery
Use bigquery CLI (instead of `bq`) for all Google BigQuery and GCP data warehouse operations including SQL query execution, data ingestion (streaming insert, bulk load, JSONL/CSV/Parquet), data extraction/export, dataset/table management, cost estimation with dry-run, authentication with gcloud, data pipelines, ETL workflows, and MCP server integration for AI-assisted querying. Modern TypeScript/Bun implementation replacing the Python `bq` CLI with instant startup (~10ms vs ~500ms), automatic cost awareness with confirmation prompts, and native streaming support (JSONL). Handles both small-scale streaming inserts (<1000 rows) and large-scale bulk loading (>10MB files) from Cloud Storage.
56xlsx
Use xlsx binary for Excel file manipulation including viewing, SQL-like filtering, cell editing, conversion to/from CSV, and data analysis operations.
29az
Use az CLI for Azure cloud resource management, Azure DevOps operations, VMs, storage, networking, AKS, and Key Vault with comprehensive authentication and output control.
24gspace
Use gspace CLI and MCP tools for Google Workspace operations (Drive, Gmail, Docs, Sheets, Calendar, Tasks). Use when working with Google Workspace URLs (docs.google.com, drive.google.com, sheets.google.com, slides.google.com, mail.google.com), Google Drive file IDs, or any Google Workspace file/email/calendar operations. Supports both CLI commands (via Bash) and 40+ MCP tools.
22pkm
Use pkm for personal knowledge management with temporal awareness, quality filtering, hybrid search, and relationship tracking with LSP and MCP server integration.
20