Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Jira Cloud integration for issue management and search. This skill should be used when working with Jira tickets, searching issues with JQL, creating or updating issues, adding comments, or transitioning issue status. Covers REST API v3 and Jira Query Language.
.claude/skills/aiskillstore-jira/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 125% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 2% | 0% |
This skill enables direct interaction with Jira Cloud via REST API v3 and JQL queries.
Set these environment variables (or in .env file):
bashJIRA_DOMAIN=company.atlassian.net JIRA_EMAIL=user@company.com JIRA_API_TOKEN=your-api-token
Generate API tokens at: <https://id.atlassian.com/manage-profile/security/api-tokens>
To retrieve issue information:
bashpython scripts/jira_api.py GET /issue/PROJ-123
With specific fields:
bashpython scripts/jira_api.py GET "/issue/PROJ-123?fields=summary,status,assignee"
To search issues using JQL:
bashpython scripts/jira_api.py GET /search --query "jql=project=AOP AND status='In Progress'&maxResults=20"
Common JQL patterns - see references/jql-reference.md:
assignee = currentUser() AND resolution = Unresolvedupdated >= -1d ORDER BY updated DESCsprint in openSprints() AND assignee = currentUser()To create a new issue, use ADF format for description (see references/adf-format.md):
bashpython scripts/jira_api.py POST /issue --data '{ "fields": { "project": { "key": "PROJ" }, "issuetype": { "name": "Task" }, "summary": "Issue title", "description": { "type": "doc", "version": 1, "content": [ { "type": "paragraph", "content": [{ "type": "text", "text": "Description here" }] } ] } } }'
To update fields on an existing issue:
bashpython scripts/jira_api.py PUT /issue/PROJ-123 --data '{ "fields": { "summary": "Updated title", "labels": ["label1", "label2"] } }'
To add a comment (requires ADF format):
bashpython scripts/jira_api.py POST /issue/PROJ-123/comment --data '{ "body": { "type": "doc", "version": 1, "content": [ { "type": "paragraph", "content": [{ "type": "text", "text": "Comment text here" }] } ] } }'
First, get available transitions:
bashpython scripts/jira_api.py GET /issue/PROJ-123/transitions
Then transition to new status:
bashpython scripts/jira_api.py POST /issue/PROJ-123/transitions --data '{ "transition": { "id": "21" } }'
To assign an issue:
bash# Get user account ID first python scripts/jira_api.py GET "/user/search?query=username" # Then assign python scripts/jira_api.py PUT /issue/PROJ-123/assignee --data '{ "accountId": "user-account-id" }'
To unassign:
bashpython scripts/jira_api.py PUT /issue/PROJ-123/assignee --data '{"accountId": null}'
For quick operations without the helper script:
bashJIRA_DOMAIN="company.atlassian.net" AUTH=$(echo -n "$JIRA_EMAIL:$JIRA_API_TOKEN" | base64) curl -s "https://$JIRA_DOMAIN/rest/api/3/issue/PROJ-123" \ -H "Authorization: Basic $AUTH" \ -H "Content-Type: application/json"
references/api-endpoints.md - Complete REST API v3 endpoint referencereferences/jql-reference.md - JQL operators, functions, fields, and patternsreferences/adf-format.md - Atlassian Document Format for rich text fieldsTo get multiple issues efficiently:
bashpython scripts/jira_api.py GET /search --query "jql=key in (PROJ-1,PROJ-2,PROJ-3)"
To list projects or get project details:
bashpython scripts/jira_api.py GET /project python scripts/jira_api.py GET /project/PROJ
bashpython scripts/jira_api.py GET "/project/PROJ?expand=issueTypes"
Common error codes:
For field validation errors, Jira returns detailed error messages indicating which fields are invalid.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 8,717 | 4,279 | -51% | 1 | 1 | 0% | 942 | 2,122 | +125% | 0 | 0 | — |
case-02 | pass→pass | 7,053 | 3,281 | -53% | 1 | 1 | 0% | 1,202 | 1,777 | +48% | 0 | 0 | — |
case-03 | fail→pass | 6,149 | 2,636 | -57% | 1 | 1 | 0% | 1,070 | 1,818 | +70% | 0 | 0 | — |
case-04 | fail→pass | 8,034 | 3,482 | -57% | 1 | 1 | 0% | 1,432 | 1,898 | +33% | 0 | 0 | — |
case-05 | pass→pass | 5,090 | 4,618 | -9% | 1 | 1 | 0% | 889 | 2,102 | +136% | 0 | 0 | — |
case-06 | pass→pass | 8,416 | 4,159 | -51% | 1 | 1 | 0% | 1,427 | 1,998 | +40% | 0 | 0 | — |
case-07 | fail→pass | 9,576 | 3,451 | -64% | 1 | 1 | 0% | 1,655 | 1,944 | +17% | 0 | 0 | — |
case-08 | pass→pass | 5,479 | 2,850 | -48% | 1 | 1 | 0% | 890 | 1,703 | +91% | 0 | 0 | — |
case-09 | pass→pass | 11,399 | 3,599 | -68% | 1 | 1 | 0% | 1,412 | 1,935 | +37% | 0 | 0 | — |
case-10 | pass→pass | 9,079 | 4,663 | -49% | 1 | 1 | 0% | 1,601 | 2,105 | +31% | 0 | 0 | — |
case-11 | fail→pass | 11,157 | 4,450 | -60% | 1 | 1 | 0% | 2,036 | 2,078 | +2% | 0 | 0 | — |
case-12 | pass→pass | 6,452 | 6,518 | +1% | 1 | 1 | 0% | 1,042 | 2,621 | +152% | 0 | 0 | — |
case-13 | pass→pass | 4,601 | 4,302 | -6% | 1 | 1 | 0% | 776 | 1,823 | +135% | 0 | 0 | — |
case-14 | pass→pass | 9,323 | 4,241 | -55% | 1 | 1 | 0% | 1,545 | 1,906 | +23% | 0 | 0 | — |
case-15 | fail→pass | 26,536 | 4,607 | -83% | 1 | 1 | 0% | 2,213 | 2,129 | -4% | 0 | 0 | — |
case-16 | fail→pass | 7,792 | 2,624 | -66% | 1 | 1 | 0% | 1,269 | 1,717 | +35% | 0 | 0 | — |
case-17 | pass→pass | 9,243 | 5,957 | -36% | 1 | 1 | 0% | 1,586 | 2,179 | +37% | 0 | 0 | — |
case-18 | pass→pass | 9,090 | 6,308 | -31% | 1 | 1 | 0% | 1,455 | 2,343 | +61% | 0 | 0 | — |
case-19 | pass→pass | 6,842 | 5,191 | -24% | 1 | 1 | 0% | 1,281 | 2,248 | +75% | 0 | 0 | — |
case-20 | fail→pass | 17,658 | 10,634 | -40% | 1 | 1 | 0% | 1,671 | 3,309 | +98% | 0 | 0 | — |
case-21 | fail→pass | 6,301 | 5,187 | -18% | 1 | 1 | 0% | 1,020 | 2,284 | +124% | 0 | 0 | — |
case-22 | fail→fail | 24,446 | 15,869 | -35% | 1 | 1 | 0% | 3,456 | 4,047 | +17% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.