Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.
Integrations
jira
Try itNatural-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
| Backend | When to Use | Reference |
|---|---|---|
| CLI | jira command available | references/commands.md |
| MCP | Atlassian MCP tools available | references/mcp.md |
| None | Neither available | Guide to install CLI |
Quick Reference (CLI)
Skip this section if using MCP backend.
| Intent | Command |
|---|---|
| View issue | jira issue view ISSUE-KEY |
| List my issues | jira issue list -a$(jira me) |
| My in-progress | jira issue list -a$(jira me) -s"In Progress" |
| Create issue | jira issue create -tType -s"Summary" -b"Description" |
| Move/transition | jira issue move ISSUE-KEY "State" |
| Assign to me | jira issue assign ISSUE-KEY $(jira me) |
| Unassign | jira issue assign ISSUE-KEY x |
| Add comment | jira issue comment add ISSUE-KEY -b"Comment text" |
| Open in browser | jira open ISSUE-KEY |
| Current sprint | jira sprint list --state active |
| Who am I | jira me |
Quick Reference (MCP)
Skip this section if using CLI backend.
| Intent | MCP Tool |
|---|---|
| Search issues | mcp__atlassian__searchJiraIssuesUsingJql |
| View issue | mcp__atlassian__getJiraIssue |
| Create issue | mcp__atlassian__createJiraIssue |
| Update issue | mcp__atlassian__editJiraIssue |
| Get transitions | mcp__atlassian__getTransitionsForJiraIssue |
| Transition | mcp__atlassian__transitionJiraIssue |
| Add comment | mcp__atlassian__addCommentToJiraIssue |
| User lookup | mcp__atlassian__lookupJiraAccountId |
| List projects | mcp__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 KEYorjira open KEY - MCP:
mcp__atlassian__jira_get_issuewith the key
Workflow
Creating tickets:
- Research context if user references code/tickets/PRs
- Draft ticket content
- Review with user
- Create using appropriate backend
Updating tickets:
- Fetch issue details first
- Check status (careful with in-progress tickets)
- Show current vs proposed changes
- Get approval before updating
- Add comment explaining changes
Before Any Operation
Ask yourself:
-
What's the current state? — Always fetch the issue first. Don't assume status, assignee, or fields are what user thinks they are.
-
Who else is affected? — Check watchers, linked issues, parent epics. A "simple edit" might notify 10 people.
-
Is this reversible? — Transitions may have one-way gates. Some workflows require intermediate states. Description edits have no undo.
-
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
lookupJiraAccountIdfirst, or assignment silently fails. -
NEVER edit description without showing original — Jira has no undo. User must see what they're replacing.
-
NEVER use
--no-inputwithout 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
| Task | Load Reference? |
|---|---|
| View single issue | No |
| List my tickets | No |
| Create with description | Yes — CLI needs /tmp pattern |
| Transition issue | Yes — need transition ID workflow |
| JQL search | Yes — for complex queries |
| Link issues | Yes — 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
Query and manage Linear issues, projects, teams, cycles, labels, and comments through a managed OAuth GraphQL endpoint.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Manage Stripe customers, subscriptions, invoices, products, prices, and payments through OAuth-authenticated API calls.
Save, search, and manage personal notes and knowledge bases in Get笔记 on explicit request.
More from Jonathan Rhyne
Browse all skillsReconstruct missing conversation context after compaction or truncation using channel and session APIs.
Query and audit Google Ads accounts via browser automation or the Google Ads API, including keyword pauses.
Query Google Search Console data from the CLI for search analytics and indexing checks.
Upload documents to Nudocs.ai for rich editing and pull back the results as docx, md, or pdf.
Convert, OCR, extract, redact, watermark, and sign PDF and Office documents inside OpenClaw via the Nutrient DWS plugin.
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.