| name | jira |
| description | Manage Jira issues using the jira CLI — lookup, create, edit, transition, assign, comment, link, and search. Triggers: /jira, "look up jira issue", "check jira ticket", "create jira issue", "update jira", "move ticket to", "assign issue", "add comment to", "what's the status of PROJ-123", any mention of a Jira issue key like PROJ-123
|
| argument-hint | [ISSUE-KEY or action description] |
Jira Issue Management
Use the jira CLI to look up, create, edit, transition, assign, comment on, and link Jira issues.
When to Use
- The user mentions a Jira issue key (e.g.,
DP-123)
- The user asks to look up, check, or get details on a Jira ticket
- The user wants to list or search for issues in a project
- The user wants to create, edit, transition, assign, comment on, or link issues
- The user needs context from a Jira issue to inform their work
Instructions
Phase 1: Identify the Request
Determine which operation the user needs:
| Intent | Operation |
|---|
| View issue details | view |
| Search/list issues | list |
| Create a new issue | create |
| Edit fields on an issue | edit |
| Change issue status | move |
| Assign/unassign an issue | assign |
| Add a comment | comment |
| Link two issues | link |
| Open in browser | open |
Phase 2A: View / Search (read operations)
Viewing a single issue
jira issue view ISSUE-KEY --plain
To include recent comments:
jira issue view ISSUE-KEY --plain --comments 5
To get full raw JSON data for deeper inspection:
jira issue view ISSUE-KEY --raw
Listing/searching issues
jira issue list --plain --no-truncate
jira issue list --plain -s "In Progress"
jira issue list --plain -a "user@example.com"
jira issue list --plain -t Bug -s "To Do"
jira issue list --plain -y High
jira issue list --plain -l backend
jira issue list "search query" --plain
jira issue list --plain -s "In Progress" -a "me" -y High
jira issue list --plain -q "assignee = currentUser() AND status = 'In Progress'"
jira issue list --plain -p PROJECT_KEY
jira issue list --plain --paginate 20
Phase 2B: Create (write operation)
Always use --no-input to avoid interactive prompts.
jira issue create -tStory -s "Summary here" -b "Description here" --no-input
jira issue create -tBug -s "Bug title" -yHigh -lbug -lurgent -a "user@example.com" -b "Bug description" --no-input
jira issue create -tTask -s "Task title" -b "Description here" --no-input
jira issue create -tSubtask -P PARENT-KEY -s "Subtask title" -b "Details" --no-input
jira issue create -p PROJECT -tStory -s "Story title" -b "As a user..." --no-input
jira issue create -tStory -s "Story" --custom story-points=3 --no-input
echo "Long description here" | jira issue create -tStory -s "Summary" --no-input
Important: When creating or editing issue descriptions:
- Use markdown format for descriptions
- Start with a descriptive paragraph, not section headings like "Context" or "Background"
- Structure content naturally with markdown formatting (lists, code blocks, etc.)
- Always explicitly specify
-tStory when creating issues unless told to use a different type
Issue types: Task, Bug, Story, Epic, Subtask
Phase 2C: Edit (write operation)
Always use --no-input to avoid interactive prompts.
jira issue edit ISSUE-KEY -s "New summary" --no-input
jira issue edit ISSUE-KEY -b "New description" --no-input
jira issue edit ISSUE-KEY -y High --no-input
jira issue edit ISSUE-KEY -l newlabel --no-input
jira issue edit ISSUE-KEY --label -oldlabel --no-input
jira issue edit ISSUE-KEY -a "user@example.com" --no-input
jira issue edit ISSUE-KEY --custom story-points=5 --no-input
jira issue edit ISSUE-KEY -s "Updated title" -yHigh -l backend --no-input
Phase 2J: Story Points
The --custom story-points=N flag on jira issue edit does not work in this Jira instance. Story points must be set via the REST API directly using the customfield_10016 field (Story point estimate) and the JIRA_API_TOKEN environment variable:
curl -s -o /dev/null -w "%{http_code}" \
-X PUT "https://veeam-vdc.atlassian.net/rest/api/3/issue/ISSUE-KEY" \
-u "abin.simon@veeam.com:$JIRA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fields":{"customfield_10016": N}}'
When setting story points on multiple issues, loop over them in a single shell command.
Phase 2D: Transition / Move
jira issue move ISSUE-KEY "In Progress"
jira issue move ISSUE-KEY "Done"
jira issue move ISSUE-KEY "Done" --comment "Completed in PR #123"
jira issue move ISSUE-KEY "In Review" -a "reviewer@example.com"
Phase 2E: Assign
jira issue assign ISSUE-KEY "user@example.com"
jira issue assign ISSUE-KEY $(jira me)
jira issue assign ISSUE-KEY x
Phase 2F: Comment
Always use --no-input to avoid interactive prompts.
jira issue comment add ISSUE-KEY --no-input "Comment text here"
jira issue comment add ISSUE-KEY --no-input $'First line\n\nSecond paragraph'
jira issue comment add ISSUE-KEY --no-input "Internal note" --internal
Phase 2G: Link
jira issue link ISSUE-1 ISSUE-2 "Blocks"
jira issue link ISSUE-1 ISSUE-2 "Duplicate"
jira issue unlink ISSUE-1 ISSUE-2
Phase 2H: Sprint & Epic
jira sprint list --plain
jira sprint add SPRINT_ID ISSUE-KEY
jira epic add EPIC-KEY ISSUE-KEY
jira epic remove ISSUE-KEY
Phase 2I: Open in Browser
jira open ISSUE-KEY
Phase 3: Present Results
For read operations, summarize clearly:
- Key and Summary: The issue identifier and title
- Status: Current workflow state
- Type: Bug, Story, Task, Epic, etc.
- Priority: The issue priority level
- Assignee: Who is responsible
- Description: What the issue is about (summarize if very long)
- Comments: Recent discussion if relevant
For write operations, confirm what was done:
- State the action taken and the issue key
- Show the new state if relevant (e.g., new status after a move)
When the user needs issue context for coding work, focus on:
- What needs to be done (acceptance criteria, description)
- Any technical details mentioned in comments
- Related issues or blockers
Guidelines
- Always use
--plain flag when listing/viewing issues so output is parseable (avoid the interactive TUI)
- Always use
--no-input flag on create/edit/comment to avoid interactive prompts
- Use
--no-truncate with list commands to show full field contents when details matter
- If the jira CLI is not configured or authentication fails, inform the user and suggest running
jira init
- Show before mutating: For write operations (create, edit, move, assign, comment, link, delete), always show the user exactly what will be changed (field name, old value → new value, or full content for descriptions/comments) and wait for confirmation before executing. Do not skip this even if the instruction seems unambiguous.
- If a project key is ambiguous or missing, ask the user which project to query
- When an issue key is mentioned in a branch name or commit message, offer to look it up
- Summarize long descriptions and comment threads instead of dumping raw output
- The default project is
DP (Data Pipelines) — only specify -p when targeting a different project