Management Talk
thananon/9arm-skills
Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…
Provides secure curl wrapper for the jira:issues-by-component command to prevent token exposure
$ npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openshift-eng/ai-helpers jira-issues-by-component --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/jira/skills/jira-issues-by-component .claude/skills/jira-issues-by-component && rm -rf skills-srcUse ~/.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/
Install the "jira-issues-by-component" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-component into .claude/skills/jira-issues-by-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jira-issues-by-component", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-componentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openshift-eng/ai-helpers jira-issues-by-component --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/jira/skills/jira-issues-by-component .agents/skills/jira-issues-by-component && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "jira-issues-by-component" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-component into .agents/skills/jira-issues-by-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jira-issues-by-component", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openshift-eng/ai-helpers jira-issues-by-component --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/jira/skills/jira-issues-by-component .cursor/skills/jira-issues-by-component && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "jira-issues-by-component" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-component into .cursor/skills/jira-issues-by-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jira-issues-by-component", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/openshift-eng/ai-helpers.git --path plugins/jira/skills/jira-issues-by-component--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openshift-eng/ai-helpers jira-issues-by-component --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/jira/skills/jira-issues-by-component .gemini/skills/jira-issues-by-component && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "jira-issues-by-component" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-component into .gemini/skills/jira-issues-by-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jira-issues-by-component", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install openshift-eng/ai-helpers jira-issues-by-componentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/jira/skills/jira-issues-by-component .github/skills/jira-issues-by-component && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "jira-issues-by-component" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-component into .github/skills/jira-issues-by-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jira-issues-by-component", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openshift-eng/ai-helpers jira-issues-by-component --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/jira/skills/jira-issues-by-component .opencode/skills/jira-issues-by-component && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "jira-issues-by-component" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/jira/skills/jira-issues-by-component into .opencode/skills/jira-issues-by-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jira-issues-by-component", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
jira-issues-by-componentProvides secure curl wrapper for the jira:issues-by-component command to prevent token exposure
Jira Issues By Component is an agent skill from openshift-eng/ai-helpers. Provides secure curl wrapper for the jira:issues-by-component command to prevent token exposure
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `README.md` and `jira_curl.sh`).
It works with Jira. The repository describes itself as: Developer productivity tools for Claude Code & other AI assistants. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a627176. It shows what the files ask for, not the result of running them.
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.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
redhat.atlassian.netid.atlassian.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
JIRA_API_TOKENAUTH_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Jira Issues By Component loads about 1.5k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 436 words of instructions outside code blocks.
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.
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.
The full file from openshift-eng/ai-helpers at commit a627176, republished under its Apache-2.0 licence (© openshift-eng). 436 words, ~1,526 tokens.
.claude/skills/jira-issues-by-component/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill provides a secure curl wrapper script for the jira:issues-by-component command. The wrapper prevents JIRA authentication token exposure in process listings and command history.
This skill is automatically used by the jira:issues-by-component command. You typically don't need to invoke it directly unless you're:
The jira_curl.sh wrapper script provides:
ps aux)Secure curl wrapper that automatically adds JIRA authentication headers.
Location: plugins/jira/skills/jira-issues-by-component/jira_curl.sh
Usage:
jira_curl.sh [curl arguments...]Required Environment Variables:
JIRA_URL: JIRA instance URL (e.g., https://redhat.atlassian.net)JIRA_API_TOKEN: Authentication tokenJIRA_USERNAME: Atlassian account email for Basic authExample:
# Set credentials
export JIRA_URL="https://redhat.atlassian.net"
export JIRA_API_TOKEN="your-token-here"
export JIRA_USERNAME="user@redhat.com"
# Use wrapper (token hidden from process list)
jira_curl.sh -s -X POST -d '{"jql":"project=OCPBUGS"}' https://redhat.atlassian.net/rest/api/3/search/jqlJIRA_URL and authentication token are setJIRA_API_TOKEN for Atlassian Cloud authenticationAuthorization: Basic <base64> header inside the script using JIRA_USERNAME and JIRA_API_TOKENexec curl to replace the script process with curlThe wrapper uses the same security pattern as the oc auth skill:
# Token and username are read from environment variables inside the script
AUTH_TOKEN="${JIRA_API_TOKEN:-}"
JIRA_USER="${JIRA_USERNAME:-}"
# Execute curl with Basic authentication header
# Credentials are constructed here, never visible in parent process command line
AUTH_HEADER=$(printf '%s:%s' "$JIRA_USER" "$AUTH_TOKEN" | base64)
exec curl -H "Authorization: Basic $AUTH_HEADER" -H "Accept: application/json" "$@"Why exec?
The script provides clear error messages for common scenarios:
Missing JIRA_URL:
Error: JIRA_URL environment variable is required
Please set JIRA credentials:
export JIRA_URL='https://redhat.atlassian.net'
export JIRA_API_TOKEN='your-token-here'
Alternatively, source a credentials file:
source ~/.jira-credentialsMissing Token:
Error: JIRA authentication token is required
Please set:
export JIRA_API_TOKEN='your-token-here'
export JIRA_USERNAME='user@redhat.com'
Get your token from:
- Atlassian API Token: https://id.atlassian.com/manage-profile/security/api-tokensexport JIRA_URL="https://redhat.atlassian.net"
export JIRA_API_TOKEN="your-token-here"
export JIRA_USERNAME="user@redhat.com"Create ~/.jira-credentials:
# ~/.jira-credentials
export JIRA_URL="https://redhat.atlassian.net"
export JIRA_API_TOKEN="your-token-here"
export JIRA_USERNAME="user@redhat.com"Secure the file:
chmod 600 ~/.jira-credentialsSource it when needed:
source ~/.jira-credentialsJIRA_API_TOKEN# Credentials exposed in process list and history!
curl -u "user@redhat.com:${JIRA_API_TOKEN}" -X POST \
-H "Content-Type: application/json" \
-d '{"jql":"..."}' \
https://redhat.atlassian.net/rest/api/3/search/jqlProblems:
ps aux# Token hidden inside wrapper script
jira_curl.sh -X POST -H "Content-Type: application/json" \
-d '{"jql":"..."}' https://redhat.atlassian.net/rest/api/3/search/jqlBenefits:
The jira:issues-by-component command uses this wrapper to fetch JIRA issues securely:
# Get path to secure curl wrapper
PLUGIN_DIR="plugins/jira/skills/jira-issues-by-component"
JIRA_CURL="${PLUGIN_DIR}/jira_curl.sh"
# Fetch issues with pagination (token hidden)
HTTP_CODE=$("$JIRA_CURL" -s -w "%{http_code}" \
-o "batch-${BATCH_NUM}.json" \
"${API_URL}")This approach:
© 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
SKILL.md and 2 other files in plugins/jira/skills/jira-issues-by-component of openshift-eng/ai-helpers.
Open the folder on GitHubat commit a627176
Jira Issues By Component 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Jira Issues By Component this skillopenshift-eng/ai-helpers | 120 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Management Talkthananon/9arm-skills | 3.2k | — | ~3.2k | Automated safety check: Pass | None | |
| YugabyteDB Issue Creatoryugabyte/yugabyte-db | 11k | — | ~2k | Automated safety check: Pass | Custom licence | |
| Dynamo Jira TicketDynamoDS/Dynamo | 2k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Code Reviewcroffasia/itsaplan | 903 | — | ~2k | Automated safety check: Pass | AGPL-3.0 | |
| Connect Apps with ComposioComposioHQ/awesome-claude-skills | 77k | 3 repos | ~557 | Automated safety check: Pass | None |
thananon/9arm-skills
Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…
yugabyte/yugabyte-db
Creates a GitHub issue or JIRA ticket for a YugabyteDB change or bug, after scrubbing customer data, secrets and unreleased details from anything public.
DynamoDS/Dynamo
Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests.
croffasia/itsaplan
A skill your agent uses when reviewing code — a diff, a merge request, a file, a directory, or a feature.
ComposioHQ/awesome-claude-skills
Connects an agent to 1000+ external apps through the Composio Tool Router plugin, so it can actually send emails, create issues and post messages instead of only drafting them.
SAP/spartacus
A skill your agent uses when the user asks to generate, write, or draft a pull request (PR) body or description for the current branch.
openshift-eng/ai-helpers
Find and independently validate actionable reliability defects across OpenShift release jobs and presubmits, then export portable issue handoffs.
openshift-eng/ai-helpers
Fetch and address all PR review comments — categorize by priority, make code changes, post replies, and push.
openshift-eng/ai-helpers
Categorize Jira issues into Red Hat Sankey Activity Type categories using MCP Jira tools.
openshift-eng/ai-helpers
Decide whether a GitHub PR has unanswered authorized review comments or new required CI failures worth a follow-up agent.
openshift-eng/ai-helpers
Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components.
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
Works with
Provides secure curl wrapper for the jira:issues-by-component command to prevent token exposure. Jira Issues By Component is an agent skill from openshift-eng/ai-helpers.
Run `npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a claude-code`. Or copy the skill folder (plugins/jira/skills/jira-issues-by-component in openshift-eng/ai-helpers) into .claude/skills/jira-issues-by-component in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openshift-eng/ai-helpers --skill jira-issues-by-component -a codex`. Or copy the skill folder (plugins/jira/skills/jira-issues-by-component in openshift-eng/ai-helpers) into .agents/skills/jira-issues-by-component in your project. Codex loads it when a task matches its description.
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 jira-issues-by-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jira-issues-by-component, .gemini/skills/jira-issues-by-component, .github/skills/jira-issues-by-component and .opencode/skills/jira-issues-by-component in your project.
Going by SKILL.md and its folder, Jira Issues By Component needs a shell for the scripts in its folder, the command-line tools its instructions call (curl) and credentials named JIRA_API_TOKEN and AUTH_TOKEN. Our summary lists: A Bash shell; A credential in JIRA_API_TOKEN; A credential in AUTH_TOKEN.
SKILL.md names 2 domains. In commands or code: redhat.atlassian.net and id.atlassian.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
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.
Jira Issues By Component 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.
About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Jira Issues By Component: Management Talk (thananon/9arm-skills, 3.2k stars), YugabyteDB Issue Creator (yugabyte/yugabyte-db, 11k stars), Dynamo Jira Ticket (DynamoDS/Dynamo, 2k stars) and Code Review (croffasia/itsaplan, 903 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.