skills/jira/SKILL.md
Create, update, search, transition, link, and read comments on Jira issues via CLI. MUST use this skill whenever the user pastes or mentions any atlassian.net URL (Jira issues, Confluence pages, focusedCommentId links, board links — anything from *.atlassian.net). Also use for: TSLA-* ticket references, JQL searches, issue status changes, reading comments, creating bugs, updating descriptions. This is the ONLY way to interact with Jira/Atlassian — there is no MCP Atlassian available.
npx skillsauth add olion500/skills jiraInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Lightweight Python CLI wrapper around Jira REST API v3. Handles markdown ↔ ADF conversion natively — no broken h1. headers or _text* bold issues.
Credentials are configured via plugin settings (stored in OS Keychain) when you enable the olion500-skills plugin. Alternatively, set environment variables directly:
JIRA_URL=https://yourteam.atlassian.net
[email protected]
JIRA_API_TOKEN=<atlassian-api-token>
Optional env vars:
JIRA_ASSIGN_SELF=true # Auto-assign to current user
JIRA_PARENT_EPIC=TSLA-12345 # Default parent epic
All commands output JSON. The CLI path is relative to this skill:
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" <command> [args]
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" get-issue TSLA-12508
Returns: key, summary, status, issue_type, priority, assignee, reporter, labels, description (ADF converted to markdown), issue links (with IDs), url.
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" search "project = TSLA AND status = 'To Do' ORDER BY created DESC" --limit 20
Options:
--fields — Comma-separated fields (default: summary,status,assignee,priority,issuetype)--limit — Max results (default: 10)--next-page-token — Token from previous response for paginationJQL examples:
"assignee = currentUser() AND status != Done""project = TSLA AND labels = error-sweeper""parent = TSLA-11689 ORDER BY created DESC""updated >= -7d AND project = TSLA"python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" create-issue \
--project TSLA \
--summary "fix: error title" \
--issue-type Bug \
--description "## Background\n\nmarkdown description here"
Options:
--description-file — Read markdown from file (supports headings, code blocks, lists, bold, inline code, tables → ADF)--assignee-self — Assign to current user--parent — Parent epic key (overrides JIRA_PARENT_EPIC env)python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" update-issue TSLA-12345 \
--description-file report.md
Options:
--summary — Update summary--description — Update description (markdown → ADF)--description-file — Update description from markdown file# List available transitions
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" get-transitions TSLA-12345
# Execute transition
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" transition TSLA-12345 --to "In Progress"
Transition name is case-insensitive. Use get-transitions first to see available options.
# List available link types
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" get-link-types
# Create link (inward "is blocked by" outward)
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" link-issue \
--inward TSLA-100 --outward TSLA-200 --type "Blocks"
# Remove link by ID (get ID from get-issue output)
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" remove-link 12345
Link direction: --inward is the issue that receives the inward label (e.g. "is blocked by"), --outward gets the outward label (e.g. "blocks").
# Get all comments on an issue (newest first)
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" get-comments TSLA-12345
# Get all comments with pagination
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" get-comments TSLA-12345 --limit 50 --start-at 0
# Get a specific comment by ID (e.g. from focusedCommentId URL param)
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" get-comment TSLA-12345 94811
Returns: id, author, created, updated, body (ADF converted to markdown).
When the user pastes a Jira URL with ?focusedCommentId=XXXXX, extract the issue key and comment ID, then use get-comment to fetch that specific comment.
python3 "$CLAUDE_PLUGIN_ROOT/skills/jira/jira-cli.py" add-remote-link TSLA-12345 \
--url "https://example.com/report" \
--title "RCA Report"
Writing (create/update): Markdown is converted to Atlassian Document Format. Supported: headings (#-####), fenced code blocks, bullet lists, tables, bold, inline code, links.
Reading (get-issue): ADF description is converted back to markdown. Handles headings, paragraphs, code blocks, lists, tables, blockquotes, inline marks (bold, italic, code, links, strikethrough), mentions, emoji.
development
Search and query Elasticsearch/Kibana database models using curl API. Use for querying database models, searching Kibana indices, checking Elasticsearch data, investigating data in Kibana, finding records by ID, searching documents. Supports multiple environments (dev, qa, stage, production-us, production-au, production-eu).
development
Search and analyze Datadog logs and metrics using API for cupixworks-api and cupixworks-worker services. Use when debugging errors, investigating issues, searching logs, analyzing worker jobs, checking Sidekiq logs, querying metrics, or finding specific log entries by class/function names. Supports error/warn/info log levels with 14-day retention for logs.
development
Search Cupix Watch (Kibana/Elasticsearch) application logs at watch.cupix.com. Use when the user asks to search logs, find errors, debug processing issues, or investigate service behavior. Triggers on keywords like "log", "watch", "kibana", "error log", service names (skat, pano, api, worker, vista), or mentions of cupix processing pipelines.
development
Access Azure DevOps resources (PRs, builds, pipelines, releases, variable groups) for the Cupix organization. TRIGGER when: user pastes a dev.azure.com URL; user mentions Azure DevOps, ADO, az pr, az pipeline, build status, release status, or deploy status for Cupix projects; user asks about PR reviews, build logs, pipeline runs, or release progress. SKIP: general git questions not about Azure DevOps; GitHub-only workflows.