Agent skill

List Jiras

by openshift-eng in openshift-eng/ai-helpers

Query and return raw JIRA bug data for a specific project. An agent skill from openshift-eng/ai-helpers.

Apache-2.0Auto-check passed

Install List Jiras

skills CLI
$ npx skills add openshift-eng/ai-helpers --skill list-jiras -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openshift-eng/ai-helpers list-jiras --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/teams/skills/list-jiras .claude/skills/list-jiras && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
list-jiras
GitHub stars
120
Token cost
~2.9k tokens
SKILL.md length
1,003 words
Files
2
Skills in repo
118
Repo updated
First seen
Licence
Apache-2.0

At a glance

Query and return raw JIRA bug data for a specific project. An agent skill from openshift-eng/ai-helpers.

  • Works in 6 steps: Verify Prerequisites → Verify Environment Variables → Locate the Script → …
  • SKILL.md covers When to Use This Skill, Prerequisites, Implementation Steps and Error Handling, plus 6 more sections
  • Runs Python scripts from its folder; calls python3; reaches redhat.atlassian.net; needs JIRA_API_TOKEN

What it does

List Jiras is an agent skill from openshift-eng/ai-helpers. Query and return raw JIRA bug data for a specific project

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `list_jiras.py`).

It works with Jira and Python. The repository describes itself as: Developer productivity tools for Claude Code & other AI assistants. The licence is Apache-2.0.

Example prompts

  • “/list-jiras”

Requirements

  • Python 3
  • A credential in JIRA_API_TOKEN

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Verify Prerequisites
  2. Verify Environment Variables
  3. Locate the Script
  4. Run the Script
  5. Process the Output
  6. Present Results

What it can do on your machine

Read from SKILL.md and the folder at commit a627176. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • redhat.atlassian.net

    Also links to:

    • id.atlassian.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • JIRA_API_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

List Jiras loads about 2.9k tokens when it runs. Until then it costs about 17 tokens; SKILL.md has 1,003 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~17
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openshift-eng/ai-helpers at commit a627176, republished under its Apache-2.0 licence (© openshift-eng). 1,003 words, ~2,855 tokens.

Download SKILL.mdSave it as .claude/skills/list-jiras/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
list-jiras
description
Query and return raw JIRA bug data for a specific project

List JIRAs

This skill provides functionality to query JIRA bugs for a specified project and return raw issue data. It uses the JIRA REST API to fetch complete bug information with all fields and metadata, without performing any summarization.

When to Use This Skill

Use this skill when you need to:

  • Fetch raw JIRA issue data for further processing
  • Access complete issue details including all fields
  • Build custom analysis workflows
  • Provide data to other commands (like summarize-jiras)
  • Export JIRA data for offline analysis

Prerequisites

  1. Python 3 Installation

    • Check if installed: which python3
    • Python 3.6 or later is required
    • Comes pre-installed on most systems
  2. JIRA Authentication

  3. Network Access

    • The script requires network access to reach your JIRA instance
    • Ensure you can make HTTPS requests to the JIRA URL

Implementation Steps

Step 1: Verify Prerequisites

First, ensure Python 3 is available:

bash
python3 --version

If Python 3 is not installed, guide the user through installation for their platform.

Step 2: Verify Environment Variables

Check that required environment variables are set:

bash
# Verify JIRA credentials are configured
echo "JIRA_URL: ${JIRA_URL}"
echo "JIRA_USERNAME: ${JIRA_USERNAME}"
echo "JIRA_API_TOKEN: ${JIRA_API_TOKEN:+***set***}"

If any are missing, guide the user to set them:

bash
export JIRA_URL="https://redhat.atlassian.net"
export JIRA_USERNAME="your-email@redhat.com"
export JIRA_API_TOKEN="your-api-token-here"
Step 3: Locate the Script

The script is located at:

plugins/teams/skills/list-jiras/list_jiras.py
Step 4: Run the Script

Execute the script with appropriate arguments:

bash
# Basic usage - all open bugs in a project
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS

# Filter by component
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --component "kube-apiserver"

# Filter by multiple components
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --component "kube-apiserver" "Management Console"

# Include closed bugs
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --include-closed

# Filter by status
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --status New "In Progress"

# Set maximum results limit (default 100)
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --limit 500
Step 5: Process the Output

The script outputs JSON data with the following structure:

json
{
  "project": "OCPBUGS",
  "total_count": 1500,
  "fetched_count": 100,
  "query": "project = OCPBUGS AND (status != Closed OR (status = Closed AND resolved >= \"2025-10-11\"))",
  "filters": {
    "components": null,
    "statuses": null,
    "include_closed": false,
    "limit": 100
  },
  "issues": [
    {
      "key": "OCPBUGS-12345",
      "fields": {
        "summary": "Bug title here",
        "status": {
          "name": "New",
          "id": "1"
        },
        "priority": {
          "name": "Major",
          "id": "3"
        },
        "components": [
          {"name": "kube-apiserver", "id": "12345"}
        ],
        "assignee": {
          "displayName": "John Doe",
          "emailAddress": "jdoe@example.com"
        },
        "created": "2025-11-01T10:30:00.000+0000",
        "updated": "2025-11-05T14:20:00.000+0000",
        "resolutiondate": null,
        "versions": [
          {"name": "4.21"}
        ],
        "fixVersions": [
          {"name": "4.22"}
        ],
        "customfield_10855": "4.22.0"
      }
    },
    ...more issues...
  ],
  "note": "Showing first 100 of 1500 total results. Increase --limit for more data."
}

Field Descriptions:

  • project: The JIRA project queried
  • total_count: Total number of matching issues in JIRA (from search results)
  • fetched_count: Number of issues actually fetched (limited by --limit parameter)
  • query: The JQL query executed (includes filter for recently closed bugs)
  • filters: Applied filters (components, statuses, include_closed, limit)
  • issues: Array of raw JIRA issue objects, each containing:
    • key: Issue key (e.g., "OCPBUGS-12345")
    • fields: Object containing all JIRA fields for the issue:
      • summary: Issue title/summary
      • status: Status object with name and ID
      • priority: Priority object with name and ID
      • components: Array of component objects
      • assignee: Assignee object with user details
      • created: Creation timestamp
      • updated: Last updated timestamp
      • resolutiondate: Resolution timestamp (null if not closed)
      • versions: Affects Version/s array
      • fixVersions: Fix Version/s array
      • customfield_10855: Target Version (custom field)
      • And many other JIRA fields as applicable
  • note: Informational message if results are truncated

Important Notes:

  • By default, the query includes: Open bugs + bugs closed in the last 30 days
  • This allows tracking of recent closure activity alongside current open bugs
  • The script fetches a maximum number of issues (default 1000, configurable with --limit)
  • The total_count represents all matching issues in JIRA
  • The returned data includes ALL fields for each issue, providing complete information
  • For large datasets, increase the --limit parameter to fetch more issues
  • Issues can have multiple components
  • All JIRA field data is preserved in the raw format
Step 6: Present Results

Based on the raw JIRA data:

  1. Inform the user about the total count vs fetched count
  2. Explain that the raw data includes all JIRA fields
  3. Suggest using /teams:summarize-jiras if they need summary statistics
  4. The raw issue data can be passed to other commands for further processing
  5. Highlight any truncation and suggest increasing --limit if needed

Error Handling

Show full SKILL.md (451 more words)Show less
Common Errors
  1. Authentication Errors

    • Symptom: HTTP 401 Unauthorized
    • Solution: Verify JIRA_USERNAME and JIRA_API_TOKEN are correct
    • Check: Ensure token has not expired
  2. Network Errors

    • Symptom: URLError or connection timeout
    • Solution: Check network connectivity and JIRA_URL is accessible
    • Retry: The script has a 30-second timeout, consider retrying
  3. Invalid Project

    • Symptom: HTTP 400 or empty results
    • Solution: Verify the project key is correct (e.g., "OCPBUGS", not "ocpbugs")
  4. Missing Environment Variables

    • Symptom: Error message about missing credentials
    • Solution: Set required environment variables (JIRA_URL, JIRA_USERNAME, JIRA_API_TOKEN)
  5. Rate Limiting

    • Symptom: HTTP 429 Too Many Requests
    • Solution: Wait before retrying, reduce query frequency
Debugging

Enable verbose output by examining stderr:

bash
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS 2>&1 | tee debug.log

Script Arguments

Required Arguments
  • --project: JIRA project key to query
    • Format: Project key (e.g., "OCPBUGS", "OCPSTRAT")
    • Must be a valid JIRA project
Optional Arguments
  • --component: Filter by component names

    • Values: Space-separated list of component names
    • Default: None (returns all components)
    • Case-sensitive matching
    • Examples: --component "kube-apiserver" "Management Console"
  • --status: Filter by status values

    • Values: Space-separated list of status names
    • Default: None (returns all statuses except Closed)
    • Examples: --status New "In Progress" Verified
  • --include-closed: Include closed bugs in the results

    • Default: false (only open bugs)
    • When specified, includes bugs in "Closed" status
  • --limit: Maximum number of issues to fetch

    • Default: 100
    • Maximum: 1000 (JIRA API limit per request)
    • Higher values provide more accurate statistics but slower performance

Output Format

The script outputs JSON with metadata and raw issue data:

json
{
  "project": "OCPBUGS",
  "total_count": 5430,
  "fetched_count": 100,
  "query": "project = OCPBUGS AND (status != Closed OR (status = Closed AND resolved >= \"2025-10-11\"))",
  "filters": {
    "components": null,
    "statuses": null,
    "include_closed": false,
    "limit": 100
  },
  "issues": [
    {
      "key": "OCPBUGS-12345",
      "fields": {
        "summary": "Example bug",
        "status": {"name": "New"},
        "priority": {"name": "Major"},
        "components": [{"name": "kube-apiserver"}],
        "created": "2025-11-01T10:30:00.000+0000",
        ...
      }
    },
    ...
  ],
  "note": "Showing first 100 of 5430 total results. Increase --limit for more data."
}

Examples

Example 1: List All Open Bugs
bash
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS

Expected Output: JSON containing raw issue data for all open bugs in OCPBUGS project

Example 2: Filter by Component
bash
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --component "kube-apiserver"

Expected Output: JSON containing raw issue data for the kube-apiserver component only

Example 3: Include Closed Bugs
bash
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --include-closed \
  --limit 500

Expected Output: JSON containing raw issue data for both open and closed bugs (up to 500 issues)

Example 4: Filter by Multiple Components
bash
python3 plugins/teams/skills/list-jiras/list_jiras.py \
  --project OCPBUGS \
  --component "kube-apiserver" "etcd" "Networking"

Expected Output: JSON containing raw issue data for bugs in specified components

Integration with Commands

This skill is designed to:

  • Provide raw JIRA data to other commands (like summarize-jiras)
  • Be used directly for ad-hoc JIRA queries
  • Serve as a data source for custom analysis workflows
  • Export JIRA data for offline processing
  • summarize-jiras: Calculate summary statistics from JIRA data
  • list-regressions: Fetch regression data for releases
  • analyze-regressions: Grade component health based on regressions
  • get-release-dates: Fetch OpenShift release dates

Notes

  • The script uses Python's urllib and json modules (no external dependencies)
  • Output is always JSON format for easy parsing and further processing
  • Diagnostic messages are written to stderr, data to stdout
  • The script has a 30-second timeout for HTTP requests
  • For large projects, use component filters to reduce query size
  • The returned data includes ALL JIRA fields for complete information
  • Use /teams:summarize-jiras if you need summary statistics instead of raw data

© openshift-eng, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/teams/skills/list-jiras of openshift-eng/ai-helpers.

  • SKILL.md
  • list_jiras.py

Open the folder on GitHubat commit a627176

Compare with similar skills

List Jiras next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

List Jiras compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
List Jiras this skillopenshift-eng/ai-helpers120—~2.9kAutomated safety check: PassApache-2.0
Rota Check Periodic Jobsoracle/graalpython1.7k—~792Automated safety check: PassCustom licence
Kanban TuiZaloog/kanban-tui285—~4.1kAutomated safety check: PassMIT
GitHub PR Mirrororacle/graalpython1.7k—~1.3kAutomated safety check: PassCustom licence
Atlassian Readonly Skillssillsdev/FieldWorks110—~1.3kAutomated safety check: PassCustom licence
Atlassian Skillssillsdev/FieldWorks110—~2.7kAutomated safety check: PassCustom licence

Similar skills

  • Rota Check Periodic Jobs

    oracle/graalpython

    Official

    Analyze current GraalPy periodic job failures for ROTA. An agent skill from oracle/graalpython.

    1.7k GitHub stars~792 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Kanban Tui

    Zaloog/kanban-tui

    Comprehensive kanban board and task management via ktui CLI.

    285 GitHub stars~4.1k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed
  • GitHub PR Mirror

    oracle/graalpython

    Official

    Mirror an external GitHub pull request into the internal GraalPython Bitbucket review flow, including OCA label checks, Jira creation or reuse, preserving PR commits, pre-commit cleanup, and handoff…

    1.7k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Atlassian Readonly Skills

    sillsdev/FieldWorks

    Read-only Python utilities for Jira (SIL Data Center): fetch an issue, search with JQL, read transitions, links, worklogs, agile boards and projects.

    110 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Atlassian Skills

    sillsdev/FieldWorks

    Python utilities for Jira (SIL Data Center) covering issue management, JQL search, workflows and transitions, links, agile boards, worklogs and projects.

    110 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Scrum Master

    alirezarezvani/claude-skills

    Advanced Scrum Master skill for data-driven agile team analysis and coaching.

    28k GitHub starsUsed in 1 repo~2.4k tokens
    Product & Project ManagementAuto-check passed

More from openshift-eng/ai-helpers

All 118 skills in this repo
  • Investigate CI Reliability

    openshift-eng/ai-helpers

    Find and independently validate actionable reliability defects across OpenShift release jobs and presubmits, then export portable issue handoffs.

    120 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Address Review PR

    openshift-eng/ai-helpers

    Fetch and address all PR review comments — categorize by priority, make code changes, post replies, and push.

    120 GitHub stars~2.9k tokensUpdated 3 days ago
    Auto-check passed
  • Categorize Activity Types

    openshift-eng/ai-helpers

    Categorize Jira issues into Red Hat Sankey Activity Type categories using MCP Jira tools.

    120 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Has Review Work

    openshift-eng/ai-helpers

    Decide whether a GitHub PR has unanswered authorized review comments or new required CI failures worth a follow-up agent.

    120 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Must Gather Analyzer

    openshift-eng/ai-helpers

    Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components.

    120 GitHub stars~2.3k tokensUpdated 3 days ago
    Auto-check passed
  • Payload Autodl JSON

    openshift-eng/ai-helpers

    Schema for the autodl JSON data file produced by payload-analysis for database ingestion — you must use this skill whenever generating the autodl JSON file

    120 GitHub stars~2.6k tokensUpdated 3 days ago
    Auto-check passed

Works with

Questions about List Jiras

What does List Jiras do?

Query and return raw JIRA bug data for a specific project. An agent skill from openshift-eng/ai-helpers. List Jiras is an agent skill from openshift-eng/ai-helpers.

How do I install List Jiras in Claude Code?

Run `npx skills add openshift-eng/ai-helpers --skill list-jiras -a claude-code`. Or copy the skill folder (plugins/teams/skills/list-jiras in openshift-eng/ai-helpers) into .claude/skills/list-jiras in your project. Claude Code loads it when a task matches its description.

How do I install List Jiras in Codex?

Run `npx skills add openshift-eng/ai-helpers --skill list-jiras -a codex`. Or copy the skill folder (plugins/teams/skills/list-jiras in openshift-eng/ai-helpers) into .agents/skills/list-jiras in your project. Codex loads it when a task matches its description.

Can I use List Jiras in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openshift-eng/ai-helpers --skill list-jiras -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/list-jiras, .gemini/skills/list-jiras, .github/skills/list-jiras and .opencode/skills/list-jiras in your project.

What does List Jiras need to run?

Going by SKILL.md and its folder, List Jiras needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named JIRA_API_TOKEN. Our summary lists: Python 3; A credential in JIRA_API_TOKEN.

Does List Jiras access the network?

SKILL.md names 2 domains. In commands or code: redhat.atlassian.net; the agent is likely to contact it when it follows the instructions. As links in the text: id.atlassian.com. This is read from the text; nothing was executed.

Is List Jiras safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does List Jiras use?

List Jiras is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does List Jiras use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to List Jiras?

Skills that share tags, products or a category with List Jiras: Rota Check Periodic Jobs (oracle/graalpython, 1.7k stars), Kanban Tui (Zaloog/kanban-tui, 285 stars), GitHub PR Mirror (oracle/graalpython, 1.7k stars) and Atlassian Readonly Skills (sillsdev/FieldWorks, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains List Jiras?

openshift-eng (a GitHub organization) maintains it in openshift-eng/ai-helpers, which has 120 GitHub stars. The repository holds 118 skills in this directory. The repository was last updated on October 6, 2026.

Source: openshift-eng/ai-helpers on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.