Jira API operations via Python CLI scripts. AUTOMATICALLY TRIGGER when user mentions Jira URLs (https://jira.*/browse/*, https://*.atlassian.net/browse/*), issue keys (PROJ-123), or asks about Jira issues. Use when Claude needs to: (1) Search issues with JQL queries, (2) Get or update issue details, (3) Create new issues, (4) Transition issue status (e.g., "To Do" → "Done"), (5) Add comments, (6) Log work time (worklogs), (7) List sprints and sprint issues, (8) List boards and board issues, (9) Create or list issue links, (10) Discover available Jira fields, (11) Get user profile information, (12) Download attachments from issues. If authentication fails, offer interactive credential setup via jira-setup.py. Supports both Jira Cloud and Server/Data Center with automatic auth detection.
/plugin marketplace add netresearch/claude-code-marketplace/plugin install netresearch-skills-bundle@netresearch-claude-code-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
AGENTS.mdreferences/jql-quick-reference.mdreferences/troubleshooting.mdscripts/core/jira-attachment.pyscripts/core/jira-issue.pyscripts/core/jira-search.pyscripts/core/jira-setup.pyscripts/core/jira-validate.pyscripts/core/jira-worklog.pyscripts/lib/__init__.pyscripts/lib/client.pyscripts/lib/config.pyscripts/lib/output.pyscripts/utility/jira-fields.pyscripts/utility/jira-link.pyscripts/utility/jira-user.pyscripts/workflow/jira-board.pyscripts/workflow/jira-comment.pyscripts/workflow/jira-create.pyscripts/workflow/jira-sprint.pyStandalone CLI scripts for Jira operations using uv run.
This skill MUST be automatically triggered when the user mentions:
https://jira.*/browse/*, https://*.atlassian.net/browse/*PROJ-123, NRS-4167, ABC-1When triggered by a URL like https://jira.example.com/browse/PROJ-123:
PROJ-123) from the URLjira-issue.py get PROJ-123 to fetch detailsIMPORTANT: When authentication fails, DO NOT just show the error. Instead:
uv run scripts/core/jira-setup.py~/.env.jira with proper permissions--json flag when processing data programmatically<script>.py --help to understand optionsjira-validate.py before other operations--dry-run for create/update/transition operations~/.env.jira file or environment variables (see Authentication)scripts/core/jira-setup.pyWhen to use: Interactive credential configuration when auth fails or no credentials exist
scripts/core/jira-validate.pyWhen to use: Verify Jira connection and credentials
scripts/core/jira-issue.pyWhen to use: Get or update issue details
scripts/core/jira-search.pyWhen to use: Search issues with JQL queries
scripts/core/jira-worklog.pyWhen to use: Add or list time tracking entries
scripts/core/jira-attachment.pyWhen to use: Download attachments from Jira issues
scripts/workflow/jira-create.pyWhen to use: Create new issues (use jira-syntax skill for description content)
scripts/workflow/jira-transition.pyWhen to use: Change issue status (e.g., "In Progress" → "Done")
scripts/workflow/jira-comment.pyWhen to use: Add comments to issues (use jira-syntax skill for formatting)
scripts/workflow/jira-sprint.pyWhen to use: List sprints or sprint issues
scripts/workflow/jira-board.pyWhen to use: List boards or board issues
scripts/utility/jira-user.pyWhen to use: Get user profile information
scripts/utility/jira-fields.pyWhen to use: Search available Jira fields
scripts/utility/jira-link.pyWhen to use: Create or list issue links
Global flags MUST come before the subcommand:
# ✓ Correct
uv run scripts/core/jira-issue.py --json get PROJ-123
# ✗ Wrong - fails with "No such option"
uv run scripts/core/jira-issue.py get PROJ-123 --json
All scripts support --help, --json, --quiet, and --debug.
# Validate setup first
uv run scripts/core/jira-validate.py --verbose
# Search issues
uv run scripts/core/jira-search.py query "project = PROJ AND status = Open"
# Get issue details
uv run scripts/core/jira-issue.py get PROJ-123
# Transition with dry-run
uv run scripts/workflow/jira-transition.py do PROJ-123 "In Progress" --dry-run
uv run scripts/core/jira-search.py --json query "assignee = currentUser() AND status != Done"
uv run scripts/core/jira-worklog.py add PROJ-123 2h --comment "Implemented feature X"
uv run scripts/workflow/jira-create.py issue PROJ "Fix login bug" --type Bug
uv run scripts/workflow/jira-transition.py do PROJ-124 "In Progress"
# Get issue with attachments listed
uv run scripts/core/jira-issue.py get PROJ-123
# Download attachment using URL from issue output
uv run scripts/core/jira-attachment.py download /rest/api/2/attachment/content/12345 ./file.pdf
jira-syntax: Use for formatting descriptions and comments. Jira uses wiki markup, NOT Markdown.
*bold* not **bold**h2. Heading not ## Heading{code:python}...{code} not triple backticksConfiguration loaded in priority order:
~/.env.jira file (if exists)Jira Cloud: JIRA_URL + JIRA_USERNAME + JIRA_API_TOKEN
Jira Server/DC: JIRA_URL + JIRA_PERSONAL_TOKEN
Run jira-validate.py --verbose to verify setup. See references/troubleshooting.md for detailed setup.