Integrations

jira

Try it

Natural-language Jira interaction that reads, drafts, creates, and updates issues.

What it does

Translates plain-language requests into either jira CLI commands or Atlassian MCP tool calls after detecting which backend is available. Covers viewing, searching, creating, editing, commenting, and transitioning tickets, with workflow guards such as transition-ID lookup and account-ID resolution for assignments. Every mutating action is shown to the user for approval, and existing fields are preserved so changes stay auditable.

When to use it

  • Looking up a ticket from a key like PROJ-123
  • Drafting a new issue from a description and creating it
  • Moving a ticket through its workflow states
  • Adding comments or assigning an issue to yourself

The skill document

Jira

Natural language interaction with Jira. Supports multiple backends.

Backend Detection

Run this check first to determine which backend to use:

1. Check if jira CLI is available:
   → Run: which jira
   → If found: USE CLI BACKEND

2. If no CLI, check for Atlassian MCP:
   → Look for mcp__atlassian__* tools
   → If available: USE MCP BACKEND

3. If neither available:
   → GUIDE USER TO SETUP
BackendWhen to UseReference
CLIjira command availablereferences/commands.md
MCPAtlassian MCP tools availablereferences/mcp.md
NoneNeither availableGuide to install CLI

Quick Reference (CLI)

Skip this section if using MCP backend.

IntentCommand
View issuejira issue view ISSUE-KEY
List my issuesjira issue list -a$(jira me)
My in-progressjira issue list -a$(jira me) -s"In Progress"
Create issuejira issue create -tType -s"Summary" -b"Description"
Move/transitionjira issue move ISSUE-KEY "State"
Assign to mejira issue assign ISSUE-KEY $(jira me)
Unassignjira issue assign ISSUE-KEY x
Add commentjira issue comment add ISSUE-KEY -b"Comment text"
Open in browserjira open ISSUE-KEY
Current sprintjira sprint list --state active
Who am Ijira me

Quick Reference (MCP)

Skip this section if using CLI backend.

IntentMCP Tool
Search issuesmcp__atlassian__searchJiraIssuesUsingJql
View issuemcp__atlassian__getJiraIssue
Create issuemcp__atlassian__createJiraIssue
Update issuemcp__atlassian__editJiraIssue
Get transitionsmcp__atlassian__getTransitionsForJiraIssue
Transitionmcp__atlassian__transitionJiraIssue
Add commentmcp__atlassian__addCommentToJiraIssue
User lookupmcp__atlassian__lookupJiraAccountId
List projectsmcp__atlassian__getVisibleJiraProjects

See references/mcp.md for full MCP patterns.


Triggers

  • "create a jira ticket"
  • "show me PROJ-123"
  • "list my tickets"
  • "move ticket to done"
  • "what's in the current sprint"

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:

  • CLI: jira issue view KEY or jira open KEY
  • MCP: mcp__atlassian__jira_get_issue with the key

Workflow

Creating tickets:

  1. Research context if user references code/tickets/PRs
  2. Draft ticket content
  3. Review with user
  4. Create using appropriate backend

Updating tickets:

  1. Fetch issue details first
  2. Check status (careful with in-progress tickets)
  3. Show current vs proposed changes
  4. Get approval before updating
  5. Add comment explaining changes

Before Any Operation

Ask yourself:

  1. What's the current state? — Always fetch the issue first. Don't assume status, assignee, or fields are what user thinks they are.

  2. Who else is affected? — Check watchers, linked issues, parent epics. A "simple edit" might notify 10 people.

  3. Is this reversible? — Transitions may have one-way gates. Some workflows require intermediate states. Description edits have no undo.

  4. Do I have the right identifiers? — Issue keys, transition IDs, account IDs. Display names don't work for assignment (MCP).


NEVER

  • NEVER transition without fetching current status — Workflows may require intermediate states. "To Do" → "Done" might fail silently if "In Progress" is required first.

  • NEVER assign using display name (MCP) — Only account IDs work. Always call lookupJiraAccountId first, or assignment silently fails.

  • NEVER edit description without showing original — Jira has no undo. User must see what they're replacing.

  • NEVER use --no-input without all required fields (CLI) — Fails silently with cryptic errors. Check project's required fields first.

  • NEVER assume transition names are universal — "Done", "Closed", "Complete" vary by project. Always get available transitions first.

  • NEVER bulk-modify without explicit approval — Each ticket change notifies watchers. 10 edits = 10 notification storms.


Safety

  • Always show the command/tool call before running it
  • Always get approval before modifying tickets
  • Preserve original information when editing
  • Verify updates after applying
  • Always surface authentication issues clearly so the user can resolve them

No Backend Available

If neither CLI nor MCP is available, guide the user:

To use Jira, you need one of:

1. **jira CLI** (recommended):
   https://github.com/ankitpokhrel/jira-cli

   Install: brew install ankitpokhrel/jira-cli/jira-cli
   Setup:   jira init

2. **Atlassian MCP**:
   Configure in your MCP settings with Atlassian credentials.

Deep Dive

LOAD reference when:

  • Creating issues with complex fields or multi-line content
  • Building JQL queries beyond simple filters
  • Troubleshooting errors or authentication issues
  • Working with transitions, linking, or sprints

Do NOT load reference for:

  • Simple view/list operations (Quick Reference above is sufficient)
  • Basic status checks (jira issue view KEY)
  • Opening issues in browser
TaskLoad Reference?
View single issueNo
List my ticketsNo
Create with descriptionYes — CLI needs /tmp pattern
Transition issueYes — need transition ID workflow
JQL searchYes — for complex queries
Link issuesYes — MCP limitation, need script

References:

  • CLI patterns: references/commands.md
  • MCP patterns: references/mcp.md

Questions people ask

Which backends does it work with?
It works with the ankitpokhrel jira CLI and Atlassian MCP tools. If neither is detected, it prints setup instructions for installing the CLI or configuring MCP.
When does it ask for confirmation?
Every action that modifies Jira — creating, editing, transitioning, assigning, or commenting — is shown as a command or tool call first and only runs after the user approves.
Why does it refuse to use display names for assignment under MCP?
Atlassian MCP requires account IDs, not display names. The skill calls lookupJiraAccountId first; otherwise the assignment silently fails.

Related skills

Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.

by Iván531 installs31 stars

Query and manage Linear issues, projects, teams, cycles, labels, and comments through a managed OAuth GraphQL endpoint.

by byungkyu518 installs18 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Manage Stripe customers, subscriptions, invoices, products, prices, and payments through OAuth-authenticated API calls.

by byungkyu720 installs29 stars

More from Jonathan Rhyne

Browse all skills

Reconstruct missing conversation context after compaction or truncation using channel and session APIs.

by jdrhyne208 installs3 stars

Query and audit Google Ads accounts via browser automation or the Google Ads API, including keyword pauses.

by jdrhyne256 installs14 stars

Query Google Search Console data from the CLI for search analytics and indexing checks.

by jdrhyne252 installs23 stars

Upload documents to Nudocs.ai for rich editing and pull back the results as docx, md, or pdf.

by jdrhyne92 installs1 stars

Convert, OCR, extract, redact, watermark, and sign PDF and Office documents inside OpenClaw via the Nutrient DWS plugin.

by jdrhyne125 installs4 stars

Persistent TODO scratch pad for tracking tasks across sessions. Use when the user asks to add, list, complete, remove, or summarize tasks in a portable workspace Markdown file. Uses stable task IDs and exact matching; heartbeat reporting is opt-in and count-only.

by jdrhyne323 installs1 stars