GJ

grandcamel/jira-assistant-skills

Developer tools
48 stars 품질 40 트렌드 40

Claude Code Skills for JIRA automation - modular skills for issue management, workflows, search, and collaboration

개요

10x More context-efficient than MCP servers 1 Skill: the Entry-Point Hint to jira-as help 950+ CLI unit tests in jira-as 0 JQL syntax to memorize Natural language JIRA automation for Claude Code One thin skill points Claude at jira-as help — zero JQL memorization, zero skill sprawl. Get Started • Skills • Use Cases • Architecture Save 30+ minutes per week. Reclaim 31 work days per year. 1. Visit Atlassian API Tokens 2. Create token → Copy it The plugin ships one skill (jira) that is deliberately thin: it just points Claude at jira-as help and jira-as api search/api describe to find and learn operations, so the skill never drifts out of sync with what the CLI actually supports. You can also use the jira-as CLI directly from your terminal. If you're using the Assistant Skills plugin system, run the setup wizard: This configures: - Shared Python venv at ~/.assistant-skills-venv/ - Required dependencies from requirements.

README

JIRA Assistant Skills

Natural language JIRA automation for Claude Code One thin skill points Claude at jira-as help — zero JQL memorization, zero skill sprawl.

Get Started • Skills • Use Cases • Architecture


The Difference

Time Saved

Task Traditional JIRA JIRA Assistant Saved
Find my open bugs 45 seconds 5 seconds 89%
Create sprint + add stories 3 minutes 15 seconds 92%
Log time on 5 issues 2 minutes 20 seconds 83%
Check what’s blocking release 5 minutes 10 seconds 97%
Bulk close 20 resolved issues 4 minutes 30 seconds 88%

Typical developer: Save 30+ minutes per week. Team of 8: Reclaim 31 work days per year.


Quick Start

1. Clone the Repository

git clone https://github.com/grandcamel/jira-assistant-skills.git
cd jira-assistant-skills

2. Install Dependencies

pip install "jira-as>=2,<3"  # jira-as CLI from public PyPI

3. Get API Token

  1. Visit Atlassian API Tokens
  2. Create token → Copy it

4. Configure

export JIRA_API_TOKEN="your-token"
export JIRA_EMAIL="[email protected]"
export JIRA_SITE_URL="https://company.atlassian.net"

5. Start Using

# Just ask Claude
claude "Show me my open issues"
claude "Create a bug: Login button not working"
claude "What's blocking the release?"

# Or use the CLI directly -- run this first, it's the source of truth
jira-as help

jira-as issue get PROJ-123
jira-as search query "project = PROJ AND status = Open"
jira-as time log PROJ-123 --time 2h

That’s it. The plugin ships one skill (jira) that is deliberately thin: it just points Claude at jira-as help and jira-as api search/api describe to find and learn operations, so the skill never drifts out of sync with what the CLI actually supports. You can also use the jira-as CLI directly from your terminal.

Full Setup Guide →


Setup (Assistant Skills)

If you’re using the Assistant Skills plugin system, run the setup wizard:

/assistant-skills-setup

This configures:

  • Shared Python venv at ~/.assistant-skills-venv/
  • Required dependencies from requirements.txt
  • Environment variables (prompts you to configure Jira credentials)
  • claude-as shell function for running Claude with dependencies

After setup, use claude-as instead of claude:

claude-as  # Runs Claude with Assistant Skills venv activated

Environment Variables

Variable Required Description
JIRA_SITE_URL Yes Jira instance base URL (e.g., https://company.atlassian.net)
JIRA_EMAIL Yes Atlassian account email for authentication
JIRA_API_TOKEN Yes Atlassian API token (generate here)
JIRA_MOCK_MODE No Set to true to use the mock client (no API calls)

Getting Your API Token

  1. Go to Atlassian API Tokens
  2. Click “Create API token”
  3. Give it a descriptive label (e.g., “Claude Code Jira”)
  4. Copy the token and add it to your shell config:
    export JIRA_API_TOKEN="your-token-here"
    export JIRA_EMAIL="[email protected]"
    export JIRA_SITE_URL="https://company.atlassian.net"
    

What You Can Do

flowchart LR
    subgraph Input["💬 You Say"]
        Q1["Show my highpriority bugs"]
        Q2["Create a storyfor login redesign"]
        Q3["What's blockingthe release?"]
    end

    subgraph Processing["🤖 Claude Understands"]
        P1["JQL: assignee=currentUser()AND type=BugAND priority>=High"]
        P2["create_issue.py--type Story--summary '...'"]
        P3["Search linked blockersTraverse dependency tree"]
    end

    subgraph Output["✅ You Get"]
        R1["📋 List of 7 bugswith details"]
        R2["🎫 PROJ-456 createdready to refine"]
        R3["🔍 3 blockers foundwith recommendations"]
    end

    Q1 --> P1 --> R1
    Q2 --> P2 --> R2
    Q3 --> P3 --> R3

The Jira Skill

There is one skill: jira (skills/jira/SKILL.md). It carries the Entry-Point Hint – a thin pointer, not a command reference – and nothing else:

  1. Start every task with jira-as help: the surface map, groups, topics, auth and sandbox modes.
  2. Find an operation with jira-as api search WORDS, read it with jira-as api describe OPERATION, run it with jira-as api call OPERATION.
  3. For a known group, jira-as help GROUP; for a gotcha (ADF, paging, search, scope, risk, auth, migration, …), jira-as help TOPIC.
  4. Discovery needs no credentials; calls need JIRA_SITE_URL, JIRA_EMAIL and JIRA_API_TOKEN. Risk-tagged calls preview by default; --confirm sends.

Every JIRA capability – issues, agile, search, time tracking, service management, bulk operations, and more – lives in the jira-as CLI itself, not in a table here. That is deliberate: a command table in this README would drift out of sync with the CLI exactly the way the old thirteen-skill hub did. Run jira-as help to see what is actually there.

Full CLI Reference →


Who Is This For?


Architecture

flowchart TD
    U["👤 User Request"] --> CC["🤖 Claude Code"]
    CC --> JS["📋 jira skillEntry-Point Hint"]
    JS -->|"jira-as help / api search / api describe"| CLI["🔧 jira-as CLI (2.x)"]
    CLI --> API["🔌 JIRA REST API"]
    API --> JIRA[("☁️ JIRA Cloud")]

One thin skill points at the CLI; the CLI carries the actual JIRA capability, its own error handling, config layering, ADF support, and retry behavior. See the jira-as repository for those internals – they are no longer duplicated here.


Quality & Security

Test Coverage

This repository is documentation-first: the CLI’s own unit tests (950+) live in the jira-as library repository. What lives here is:

Suite Location Needs
SBX profile unit tests skills/shared/tests/test_live_profile.py Offline fakes
Routing check skills/jira/tests/test_routing.py Claude CLI (live, host-run)
Live integration skills/shared/tests/live_integration/ Host-approved dev wrapper
Sufficiency arm tests/e2e/ Claude CLI (live, host-run)
Knowledge Floor eval tests/floor_eval/ Host-run, before each release

See Testing for what runs in CI versus what is host-triggered and why.

Security

  • No hardcoded secrets — API tokens stored in environment variables or gitignored files
  • HTTPS-only connections — All JIRA API requests enforced over secure transport
  • Input validation — All user data validated before API calls
  • Credential isolation — settings.local.json gitignored by default
  • No credential logging — Sensitive data excluded from logs and error output

Try It

One-click cloud environment with all dependencies pre-installed.


Documentation

Resource Description
Quick Start Guide Get up and running in 5 minutes
Configuration Guide Credentials, settings files, and Agile field mapping
CLI Reference Complete CLI documentation
Troubleshooting Common issues and solutions

Need Help?


E2E Testing: The Help-Only Sufficiency Arm

The end-to-end harness asks a narrower question now that there is one skill: is the Entry-Point Hint alone (skills/jira/SKILL.md) enough for a model to complete representative jira-as tasks? The model gets only the shipped plugin, the Bash tool, and jira-as in simulation transport with no credentials.

# Requires ANTHROPIC_API_KEY or `claude auth login`; host-run, not CI
pytest tests/e2e/ -v

See tests/e2e/README.md for the seven tasks, the isolation guarantees, and the pass thresholds.

Sandboxed Profile Testing

skills/jira/tests/test_sandbox_validation.py verifies that sandboxed tool-restriction profiles correctly limit what Claude can do. Set SANDBOX_PROFILE and CLAUDE_ALLOWED_TOOLS and run it directly:

SANDBOX_PROFILE=read-only \
CLAUDE_ALLOWED_TOOLS="Read Glob Grep WebFetch WebSearch Bash(jira-as issue get:*) Bash(jira-as search:*)" \
  pytest skills/jira/tests/test_sandbox_validation.py -v -k "readonly"
Profile Use Case What’s Allowed
read-only Safe demos, evaluations View issues, search, list fields
search-only JQL training Search queries only
issue-only CRUD workshops Issue operations only
full Complete testing All operations

Contributing

Contributions are welcome! See our Contributing Guide.

# Clone the repository
git clone https://github.com/grandcamel/jira-assistant-skills.git
cd jira-assistant-skills

# Install dependencies and CLI
pip install "jira-as>=2,<3" pytest pytest-asyncio
pip install -e .  # Install the plugin package in editable mode

# Run tests (uses root pytest.ini configuration)
pytest skills/*/tests/*.py -v

# Verify CLI is working
jira-as --version
jira-as --help

Roadmap

  • [x] Core JIRA operations (v1.0)
  • [x] Agile workflow support (v1.1)
  • [x] Service Management (v1.2)
  • [x] Bulk operations (v1.3)
  • [ ] GitHub integration enhancements
  • [ ] Slack notifications
  • [ ] Custom workflow templates

License

This project is licensed under the MIT License — see the LICENSE file for details.


Stop clicking through JIRA. Start talking to it.

Built for Claude Code by developers who were tired of memorizing JQL.

View this README on GitHub

추천 도구

다른 키워드를 입력하거나 필터를 제거해 보세요.

설치

npx skillfish add grandcamel/jira-assistant-skills