From asi
Creates, updates, and manages Jira issues from natural language via REST API or MCP server. Use for logging bugs, creating tickets, updating status, or handling backlogs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/asi:jira-issuesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create and manage Jira issues using the Jira REST API or MCP.
Create and manage Jira issues using the Jira REST API or MCP.
Install the Jira MCP server for seamless integration:
npx @anthropic/create-mcp-server jira
Set environment variables:
export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="[email protected]"
export JIRA_API_TOKEN="your-api-token"
Get your API token: https://id.atlassian.com/manage-profile/security/api-tokens
import requests
from requests.auth import HTTPBasicAuth
import os
def create_issue(project_key, summary, description, issue_type="Task"):
url = f"{os.environ['JIRA_BASE_URL']}/rest/api/3/issue"
auth = HTTPBasicAuth(
os.environ['JIRA_EMAIL'],
os.environ['JIRA_API_TOKEN']
)
payload = {
"fields": {
"project": {"key": project_key},
"summary": summary,
"description": {
"type": "doc",
"version": 1,
"content": [{
"type": "paragraph",
"content": [{"type": "text", "text": description}]
}]
},
"issuetype": {"name": issue_type}
}
}
response = requests.post(url, json=payload, auth=auth)
return response.json()
# Example
issue = create_issue("PROJ", "Fix login bug", "Users can't login with SSO", "Bug")
print(f"Created: {issue['key']}")
def create_detailed_issue(project_key, summary, description,
issue_type="Task", priority="Medium",
labels=None, assignee=None):
payload = {
"fields": {
"project": {"key": project_key},
"summary": summary,
"description": {
"type": "doc",
"version": 1,
"content": [{
"type": "paragraph",
"content": [{"type": "text", "text": description}]
}]
},
"issuetype": {"name": issue_type},
"priority": {"name": priority},
}
}
if labels:
payload["fields"]["labels"] = labels
if assignee:
payload["fields"]["assignee"] = {"accountId": assignee}
# ... make request
| Type | Use For |
|---|---|
| Bug | Something broken |
| Task | Work item |
| Story | User-facing feature |
| Epic | Large initiative |
| Sub-task | Part of larger task |
def transition_issue(issue_key, transition_name):
# Get available transitions
url = f"{JIRA_BASE_URL}/rest/api/3/issue/{issue_key}/transitions"
transitions = requests.get(url, auth=auth).json()
# Find matching transition
transition_id = None
for t in transitions['transitions']:
if t['name'].lower() == transition_name.lower():
transition_id = t['id']
break
# Execute transition
requests.post(url, json={"transition": {"id": transition_id}}, auth=auth)
def add_comment(issue_key, comment_text):
url = f"{JIRA_BASE_URL}/rest/api/3/issue/{issue_key}/comment"
payload = {
"body": {
"type": "doc",
"version": 1,
"content": [{
"type": "paragraph",
"content": [{"type": "text", "text": comment_text}]
}]
}
}
requests.post(url, json=payload, auth=auth)
def search_issues(jql):
url = f"{JIRA_BASE_URL}/rest/api/3/search"
params = {"jql": jql, "maxResults": 50}
response = requests.get(url, params=params, auth=auth)
return response.json()['issues']
# Examples
my_bugs = search_issues("project = PROJ AND type = Bug AND assignee = currentUser()")
open_items = search_issues("project = PROJ AND status != Done")
recent = search_issues("project = PROJ AND created >= -7d")
When user says... create this:
| Command | Action |
|---|---|
| "log bug about X" | Bug issue with description |
| "create task for X" | Task issue |
| "what's on my plate" | JQL: assignee = currentUser() AND status != Done |
| "move X to done" | Transition issue to Done |
| "add comment to X" | Add comment to issue |
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
general: 734 citations in bib.duckdbThis skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826
The skill participates in triads satisfying:
(-1) + (0) + (+1) ≡ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.
npx claudepluginhub plurigrid/asi --plugin asiCore JIRA issue CRUD - create bugs/tasks/stories, get issue details, update fields, delete issues. TRIGGERS: 'show me [KEY]', 'get issue [KEY]', 'view issue', 'create a bug/task/story', 'update [KEY]', 'delete [KEY]', 'details of [KEY]', 'look up [KEY]', 'what's in [KEY]'. NOT FOR: epics (use jira-agile), transitions/status changes (use jira-lifecycle), comments/attachments (use jira-collaborate), time tracking (use jira-time), bulk operations on 10+ issues (use jira-bulk), dependencies/blockers (use jira-relationships), branch names/PR descriptions (use jira-dev).
Interacts with Jira issues via CLI scripts: search, create, update, transition, comment, log work, manage sprints/boards/attachments/links. Auto-triggers on Jira URLs and issue keys.
Views Jira issues, generates branch names from tickets, creates tickets, and transitions status via Atlassian MCP. Activates on ticket key mentions or /jira command.