Jira Skill
Use the #jira LM tool (shane_skills_jira) to interact with Jira. Always call this tool rather than trying to access Jira directly.
Prerequisites
The user must have configured Jira credentials in Shane Skills → Configure Skills & Agents → Integrations:
- Base URL — e.g.
https://yourcompany.atlassian.net(Cloud) orhttps://jira.yourcompany.com(Server/DC) - Email — the email for the account (Cloud only; leave empty for Server/DC PAT)
- Personal Access Token — API token (Cloud) or PAT (Server/DC)
If credentials are missing, the tool will return a configuration error. Ask the user to open the settings panel.
Available Operations
1. Search Issues
Search using JQL (Jira Query Language).
{
"op": "search",
"jql": "project = MYPROJ AND status = 'In Progress' ORDER BY created DESC",
"maxResults": 10
}
Common JQL patterns:
project = KEY— filter by projectassignee = currentUser()— issues assigned to mestatus in ('To Do', 'In Progress')— by statuspriority = High— by prioritytext ~ "login bug"— full-text searchsprint in openSprints()— current sprintupdated >= -7d— updated in last 7 days
2. Get Issue Details
Retrieve a specific issue including description, comments, and metadata.
{
"op": "get",
"issueKey": "PROJ-123"
}
Returns: summary, status, type, priority, assignee, description, and last 3 comments.
3. Create Issue ✨
Create a new issue in a project.
{
"op": "create",
"project": "PROJ",
"summary": "Fix login button not responding on mobile",
"description": "Steps to reproduce:\n\n1. Open the app on iOS\n2. Tap the login button\n3. Nothing happens",
"issueType": "Bug",
"priority": "High",
"assignee": "5b10a2844c20165700ede21g",
"labels": ["mobile", "urgent"]
}
issueType options (common): Bug, Story, Task, Epic, Subtask
priority options: Highest, High, Medium, Low, Lowest
assignee: Use the Jira account ID (from user search or profile URL)
Returns the new issue key and URL.
4. Update Issue ✏️
Update an existing issue's fields. Only include fields you want to change.
{
"op": "update",
"issueKey": "PROJ-123",
"summary": "Updated summary text",
"description": "Revised description with more detail.",
"priority": "Medium",
"assignee": "5b10a2844c20165700ede21g",
"labels": ["backend", "api"]
}
All fields are optional — only provided fields will be updated.
5. Add Comment
Add a comment to an existing issue.
{
"op": "comment",
"issueKey": "PROJ-123",
"body": "I've investigated this. The root cause is the null check missing in the auth middleware. Fix is being deployed in the next release."
}
Multi-paragraph comments: use \n\n to separate paragraphs.
6. List Available Transitions
Get all available status transitions for an issue (needed before calling transition).
{
"op": "listTransitions",
"issueKey": "PROJ-123"
}
Returns transition IDs and target status names.
7. Transition Issue (Change Status)
Move an issue to a new status. Use listTransitions first to get the correct transition ID.
{
"op": "transition",
"issueKey": "PROJ-123",
"transitionId": "31"
}
Typical Workflows
Workflow: Triage a bug report
search— find recent open bugs:jql: "project = PROJ AND issuetype = Bug AND status = 'To Do' ORDER BY created DESC"get— read the details of specific issuesupdate— set priority and assigneecomment— leave a triage notetransition— move to "In Progress"
Workflow: Create and track a story
create— create the story with description and acceptance criteriacomment— add implementation notes as work progresseslistTransitions→transition— advance the status
Workflow: Sprint review
search—jql: "sprint in openSprints() ORDER BY status ASC"get— review individual issuesupdateorcomment— document findings
Tips
- Always use
searchbeforecreateto avoid duplicates - Use
listTransitionsbeforetransition— IDs vary by project workflow - For Jira Cloud: the
assigneefield requires a Jira account ID (UUID), not a username - Large descriptions: break them into paragraphs separated by blank lines (
\n\n)