Jira-skill jira-communication

Use when interacting with Jira issues - searching, creating, updating, moving, transitioning, commenting, logging work, downloading attachments, managing sprints, boards, issue links, fields, or users. Auto-triggers on Jira URLs and issue keys (PROJ-123). Also use when MCP Atlassian tools fail or are unavailable for Jira Server/DC.

install
source · Clone the upstream repo
git clone https://github.com/netresearch/jira-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/netresearch/jira-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/evals/comprehensive-workspace/baseline-skill" ~/.claude/skills/netresearch-jira-skill-jira-communication && rm -rf "$T"
manifest: evals/comprehensive-workspace/baseline-skill/SKILL.md
source content

Jira Communication

CLI scripts for Jira operations via

uv run
. All scripts support
--help
,
--json
,
--quiet
,
--debug
.

Paths are relative to

skills/jira-communication/
.

Auto-Trigger

Activate when user mentions:

  • Jira URLs:
    https://jira.*/browse/*
    ,
    https://*.atlassian.net/browse/*
  • Issue keys:
    PROJ-123
    ,
    NRS-4167

On URL trigger → extract key →

jira-issue.py get PROJ-123

Auth Failure Handling

When auth fails, offer:

uv run scripts/core/jira-setup.py
(interactive credential setup)

Scripts

ScriptPurpose
scripts/core/jira-setup.py
Interactive credential config
scripts/core/jira-validate.py
Verify connection
scripts/core/jira-issue.py
Get/update issue details
scripts/core/jira-search.py
Search with JQL
scripts/core/jira-worklog.py
Time tracking
scripts/core/jira-attachment.py
Download attachments
scripts/workflow/jira-create.py
Create issues
scripts/workflow/jira-move.py
Move issues between projects
scripts/workflow/jira-transition.py
Change status
scripts/workflow/jira-comment.py
Add/edit/list comments
scripts/workflow/jira-sprint.py
List sprints
scripts/workflow/jira-board.py
List boards
scripts/utility/jira-user.py
User info
scripts/utility/jira-fields.py
Search fields
scripts/utility/jira-link.py
Issue links

Critical: Flag Ordering

Global flags go before the subcommand (argparse requirement):

# Correct:  uv run scripts/core/jira-issue.py --json get PROJ-123
# Wrong:    uv run scripts/core/jira-issue.py get PROJ-123 --json

Quick Examples

uv run scripts/core/jira-search.py query "assignee = currentUser()"
uv run scripts/core/jira-issue.py get PROJ-123
uv run scripts/core/jira-worklog.py add PROJ-123 2h --comment "Work done"
uv run scripts/workflow/jira-move.py issue NRS-100 SRVUC
uv run scripts/workflow/jira-transition.py do PROJ-123 "In Progress" --dry-run

Related Skills

jira-syntax: For descriptions/comments. Jira uses wiki markup, NOT Markdown.

References

  • references/jql-quick-reference.md
    - JQL syntax
  • references/troubleshooting.md
    - Setup and auth issues

Authentication

Cloud:

JIRA_URL
+
JIRA_USERNAME
+
JIRA_API_TOKEN
Server/DC:
JIRA_URL
+
JIRA_PERSONAL_TOKEN

Config via

~/.env.jira
or env vars. Run
jira-validate.py --verbose
to verify.

Multi-Profile Support

When

~/.jira/profiles.json
exists, multiple Jira instances are supported.

Profile resolution (automatic, priority order):

  1. --env-file PATH
    - legacy single-file behavior
  2. --profile NAME
    flag - use named profile
  3. Full Jira URL in input - match host to profile
  4. Issue key (e.g., WEB-1381) - match project prefix
  5. .jira-profile
    file in working directory
  6. Default profile from profiles.json
  7. Fallback to
    ~/.env.jira

Profile management:

uv run scripts/core/jira-setup.py --profile mkk        # Create profile
uv run scripts/core/jira-validate.py --all-profiles     # Validate all
uv run scripts/core/jira-setup.py --migrate             # Migrate .env.jira