jira

Use jira CLI for Jira operations including issue management, project queries, transitions, and JQL search

38 stars

Best use case

jira is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use jira CLI for Jira operations including issue management, project queries, transitions, and JQL search

Teams using jira should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/jira/SKILL.md --create-dirs "https://raw.githubusercontent.com/msbaek/dotfiles/main/.claude/skills/jira/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/jira/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How jira Compares

Feature / AgentjiraStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use jira CLI for Jira operations including issue management, project queries, transitions, and JQL search

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Jira CLI Skill

You are a Jira specialist using the `jira` CLI tool. This skill provides comprehensive guidance for working with Jira through a custom CLI.

## Core Commands

### Authentication

```bash
# Check authentication status
jira auth check

# Login to Jira
jira auth login
```

### Issue Management

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# List all projects
jira project list

# Get project details
jira project get PROJ
```

### Watching and Assigning

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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

1. **Always authenticate first**: Run `jira auth check` before operations
2. **Use JQL for complex queries**: More powerful than simple filters
3. **Specify output format**: Use `--format json` for scripting
4. **Include field selection**: Use `--fields` to limit returned data
5. **Test transitions**: Use `jira transition list` before transitioning
6. **Be specific with JQL**: Use quotes for multi-word values

## Common Use Cases

### Daily Standup Prep

```bash
# 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

```bash
# 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

```bash
# 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:
```bash
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

```bash
# 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
```

Related Skills

weekly-newsletter

38
from msbaek/dotfiles

Obsidian vault에서 이번 주(토~금) 작성/수정된 글들을 모아 뉴스레터 생성. 서브 에이전트 기반 병렬 처리로 메인 컨텍스트 절약. 기술적, 리더십적으로 외부에 공유할 만한 내용을 선별하여 정리. "뉴스레터 만들어줘", "이번 주 글 정리해줘", "weekly digest" 등의 요청 시 자동 적용.

vis

38
from msbaek/dotfiles

Vault Intelligence System (vis) CLI를 활용한 Obsidian vault 시맨틱 검색, 자동 태깅, MOC 생성, 관련 문서 연결, 주제별 문서 연결, 주제 수집, 태그 통계, 지식 공백 분석, 중복 감지, 학습 리뷰 등 vault 지식 관리 전반을 지원하는 skill. vault 검색, 문서 정리, 태그, MOC, 관련 문서, 주제 수집, 중복 검사, 학습 리뷰, 지식 공백, 클러스터링, 인덱싱, 주제별 문서 연결, 태그 통계 관련 작업 시 자동 적용.

spark-python-data-source

38
from msbaek/dotfiles

Build custom Python data sources for Apache Spark using the PySpark DataSource API — batch and streaming readers/writers for external systems. Use this skill whenever someone wants to connect Spark to an external system (database, API, message queue, custom protocol), build a Spark connector or plugin in Python, implement a DataSourceReader or DataSourceWriter, pull data from or push data to a system via Spark, or work with the PySpark DataSource API in any way. Even if they just say "read from X in Spark" or "write DataFrame to Y" and there's no native connector, this skill applies.

session-handoff

38
from msbaek/dotfiles

세션 종료 시 plan/INDEX/메모리/저널을 업데이트하고 다음 세션 재개 프롬프트 제공

searching-mlflow-docs

38
from msbaek/dotfiles

Searches and retrieves MLflow documentation from the official docs site. Use when the user asks about MLflow features, APIs, integrations (LangGraph, LangChain, OpenAI, etc.), tracing, tracking, or requests to look up MLflow documentation. Triggers on "how do I use MLflow with X", "find MLflow docs for Y", "MLflow API for Z".

retrieving-mlflow-traces

38
from msbaek/dotfiles

Retrieves MLflow traces using CLI or Python API. Use when the user asks to get a trace by ID, find traces, filter traces by status/tags/metadata/execution time, query traces, or debug failed traces. Triggers on "get trace", "search traces", "find failed traces", "filter traces by", "traces slower than", "query MLflow traces".

recall

38
from msbaek/dotfiles

Load context from vault memory. Temporal queries (yesterday, last week, session history) use agf (history.jsonl) for fast session lookup. Topic queries use vis semantic search. "recall graph" generates interactive temporal graph of sessions and files. Every recall ends with "One Thing" - the single highest-leverage next action synthesized from results. Use when user says "recall", "what did we work on", "load context about", "remember when we", "prime context", "yesterday", "what was I doing", "last week", "session history", "recall graph", "session graph".

vercel-react-best-practices

38
from msbaek/dotfiles

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

querying-mlflow-metrics

38
from msbaek/dotfiles

Fetches aggregated trace metrics (token usage, latency, trace counts, quality evaluations) from MLflow tracking servers. Triggers on requests to show metrics, analyze token usage, view LLM costs, check usage trends, or query trace statistics.

prompt-contracts

38
from msbaek/dotfiles

프롬프트 작성, brainstorming, planning, design, 설계, 기능 개발 시 Prompt Contracts 프레임워크 적용. Goal/Constraints/Format/Failure Conditions 4요소로 명확한 명세 작성. "바이브 코딩" 방지. brainstorming, writing-plans, 설계, 기능 구현 관련 작업 시 자동 적용.

obsidian-vault

38
from msbaek/dotfiles

Obsidian vault 및 마크다운 문서 작업 시 사용. markdown-oxide LSP를 통한 효율적인 검색, 백링크 탐색, 태그 관리 지원. vault 경로, 태그 체계, vault-intelligence CLI, 토큰 최적화 전략 제공. Obsidian, vault, 마크다운, 태그, 노트 정리, zettelkasten, 백링크, wiki-link, PKM 관련 작업 시 자동 적용.

instrumenting-with-mlflow-tracing

38
from msbaek/dotfiles

Instruments Python and TypeScript code with MLflow Tracing for observability. Must be loaded when setting up tracing as part of any workflow including agent evaluation. Triggers on adding tracing, instrumenting agents/LLM apps, getting started with MLflow tracing, tracing specific frameworks (LangGraph, LangChain, OpenAI, DSPy, CrewAI, AutoGen), or when another skill references tracing setup. Examples - "How do I add tracing?", "Instrument my agent", "Trace my LangChain app", "Set up tracing for evaluation"