# Jira Tasks

> Jira issue tracking and project management. Use for creating, searching, updating, and commenting on Jira issues. Supports JQL queries for advanced searching.

- Skill: `incidentfox/jira-tasks` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add incidentfox/jira-tasks`
- Raw SKILL.md: https://api.skillmd.com/api/skills/incidentfox/jira-tasks/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: incidentfox (https://skillmd.com/u/incidentfox)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/incidentfox/jira-tasks

---


# Jira Issue Tracking

## Authentication

Set these environment variables:
- `JIRA_URL` — Your Jira instance URL (e.g., `https://yourcompany.atlassian.net`)
- `JIRA_EMAIL` — Your Atlassian account email
- `JIRA_API_TOKEN` — API token from https://id.atlassian.com/manage-profile/security/api-tokens

---

## Available Scripts

All scripts are in `.claude/skills/jira-tasks/scripts/`

### search_issues.py - Search with JQL
```bash
python .claude/skills/jira-tasks/scripts/search_issues.py --jql "JQL_QUERY" [--max-results N]

# Examples:
python .claude/skills/jira-tasks/scripts/search_issues.py --jql "type = Bug AND status != Done AND created >= -7d"
python .claude/skills/jira-tasks/scripts/search_issues.py --jql "labels = question AND created >= -30d" --max-results 50
python .claude/skills/jira-tasks/scripts/search_issues.py --jql "assignee = currentUser() AND status = 'In Progress'"
```

---

## Client Library Functions

The `jira_client.py` module provides:

| Function | Purpose |
|----------|---------|
| `search_issues(jql, max_results)` | Search issues using JQL |
| `get_issue(issue_key)` | Get issue details |
| `create_issue(project, summary, ...)` | Create a new issue |
| `update_issue(issue_key, fields)` | Update an existing issue |
| `add_comment(issue_key, comment)` | Add a comment to an issue |

---

## JQL Quick Reference

### Common Patterns
```
# Recent bugs
type = Bug AND created >= -7d ORDER BY created DESC

# Open tasks
status != Done AND status != Closed

# By label
labels IN ("helpdesk", "question")

# Text search
summary ~ "timeout" OR description ~ "timeout"

# Assigned to me
assignee = currentUser() AND status != Done

# Stale issues
updated <= -90d AND status != Done
```

### Operators
| Operator | Meaning | Example |
|----------|---------|---------|
| = | Equals | `status = Done` |
| != | Not equals | `status != Done` |
| ~ | Contains text | `summary ~ "error"` |
| IN | In list | `status IN ("Open", "In Progress")` |
| >= | Greater/equal | `created >= -7d` |
| ORDER BY | Sort | `ORDER BY created DESC` |

---

## Common Workflows

### 1. Find Related Issues

```bash
python search_issues.py --jql "text ~ 'authentication timeout' AND created >= -30d"
```

### 2. Create a Follow-up Task

```python
from jira_client import create_issue
create_issue(
    project="HELP",
    summary="Update knowledge base — refund policy",
    description="A customer asked about the refund timeline and our docs were outdated.",
    issue_type="Task",
    priority="Medium",
)
```

### 3. Track Question Patterns

```bash
python search_issues.py --jql "labels = helpdesk AND created >= -30d" --max-results 100
```

---

## Quick Reference

| Goal | Command |
|------|---------|
| Search issues | `search_issues.py --jql "type = Bug"` |
| Recent issues | `search_issues.py --jql "created >= -7d"` |
| By label | `search_issues.py --jql "labels = helpdesk"` |

