PR Body
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.
Git revert workflow and Revertomatic PR template for reverting merged PRs
$ npx skills add openshift-eng/ai-helpers --skill revert-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openshift-eng/ai-helpers revert-pr --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/ci/skills/revert-pr .claude/skills/revert-pr && 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 "revert-pr" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/revert-pr into .claude/skills/revert-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revert-pr", 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/ci/skills/revert-prType 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 revert-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openshift-eng/ai-helpers revert-pr --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/ci/skills/revert-pr .agents/skills/revert-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "revert-pr" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/revert-pr into .agents/skills/revert-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revert-pr", 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 revert-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openshift-eng/ai-helpers revert-pr --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/ci/skills/revert-pr .cursor/skills/revert-pr && 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 "revert-pr" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/revert-pr into .cursor/skills/revert-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revert-pr", 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/ci/skills/revert-pr--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 revert-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openshift-eng/ai-helpers revert-pr --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/ci/skills/revert-pr .gemini/skills/revert-pr && 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 "revert-pr" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/revert-pr into .gemini/skills/revert-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revert-pr", 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 revert-prInstalls 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 revert-pr -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/ci/skills/revert-pr .github/skills/revert-pr && 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 "revert-pr" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/revert-pr into .github/skills/revert-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revert-pr", 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 revert-pr -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 revert-pr --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/ci/skills/revert-pr .opencode/skills/revert-pr && 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 "revert-pr" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/revert-pr into .opencode/skills/revert-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "revert-pr", 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.
revert-prGit revert workflow and Revertomatic PR template for reverting merged PRs
Revert PR is an agent skill from openshift-eng/ai-helpers. Git revert workflow and Revertomatic PR template for reverting merged PRs
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development. It works with Git and Jira. The repository describes itself as: Developer productivity tools for Claude Code & other AI assistants. The licence is Apache-2.0.
10 steps, taken from the step headings 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.
Shell commands in SKILL.md call:
gitghjqpython3From 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:
github.comamd64.ocp.releases.ci.openshift.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Revert PR loads about 4.4k tokens when it runs. Until then it costs about 21 tokens; SKILL.md has 1,459 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). 1,459 words, ~4,440 tokens.
.claude/skills/revert-pr/SKILL.md (or your agent's skills folder).This skill provides the detailed git revert workflow and the exact PR body template used by Revertomatic for reverting merged pull requests that break CI or nightly payloads.
Use this skill when:
--draft: When set, create the revert PR as a draft (gh pr create --draft). Used by the experimental revert workflow to open experimental revert PRs that may be closed if the suspect is cleared.--context: When the caller passes context directly (e.g., from an autonomous pipeline that already has all context in memory), skip the JIRA lookup in Step 5. The provided context string is used as-is for the {CONTEXT} template variable.GitHub CLI (gh): Installed and authenticated
gh auth statusGit: Installed and configured
which gitRepository Access: User must have push access to their fork of the target repository
Use the gh CLI to fetch all necessary details about the PR being reverted:
# Fetch PR details as JSON
pr_data=$(gh pr view "$PR_URL" --json number,title,author,mergeCommit,baseRefName,state)
# Extract fields
pr_number=$(echo "$pr_data" | jq -r '.number')
pr_title=$(echo "$pr_data" | jq -r '.title')
pr_author=$(echo "$pr_data" | jq -r '.author.login')
merge_sha=$(echo "$pr_data" | jq -r '.mergeCommit.oid')
base_branch=$(echo "$pr_data" | jq -r '.baseRefName')
pr_state=$(echo "$pr_data" | jq -r '.state')Validation:
pr_state must be MERGED. If the PR is not merged, abort with an error.merge_sha must not be empty or null.Parse the PR URL to determine owner and repository:
# From URL like https://github.com/openshift/kubernetes/pull/1703
# Extract: owner=openshift, repo=kubernetes# Get authenticated user
gh_user=$(gh api user --jq '.login')
# Check if fork exists; create one if not
if ! gh api "repos/$gh_user/$repo" &>/dev/null; then
echo "Creating fork of $owner/$repo..."
gh repo fork "$owner/$repo" --clone=false
# Wait for fork to become available
sleep 5
fiIf no local repository is available:
# Clone upstream repo
git clone -b "$base_branch" "https://github.com/$owner/$repo.git" /tmp/revert-workdir
cd /tmp/revert-workdir
# Rename the default remote to 'upstream' so later steps can reference it consistently
git remote rename origin upstream
# Add the user's fork as the 'fork' remote (used for pushing the revert branch)
git remote add fork "git@github.com:$gh_user/$repo.git"If using an existing local clone, ensure upstream points to the canonical repo and fork points to the user's fork:
# Verify remotes: 'upstream' must point to the canonical repo, 'fork' to the user's fork
git remote -v
# If 'upstream' is missing but 'origin' points to the canonical repo, rename it:
# git remote rename origin upstream
# If 'fork' is missing, add it:
# git remote add fork "git@github.com:$gh_user/$repo.git"If --context was provided: Skip the JIRA lookup entirely. Use the provided context string as-is for the {CONTEXT} template variable and proceed to Step 6. The caller has already gathered all necessary context.
Otherwise, when a JIRA ticket is provided, use the fetch-jira-issue skill to automatically gather context about what broke and which jobs need verification before unreverting.
# Path to the fetch-jira-issue script
jira_script="plugins/ci/skills/fetch-jira-issue/fetch_jira_issue.py"
# Fetch JIRA issue details
jira_data=$(python3 "$jira_script" "$JIRA" --format json 2>/dev/null)Extract context from the JIRA issue:
From the JSON output, examine the summary, comments, and linked_prs fields to determine:
What broke (for the {CONTEXT} template variable):
e2e-aws, e2e-gcp, nightly, payload, or release stream URLsVerification jobs (for the unrevert instructions):
e2e-aws, e2e-gcp, e2e-metal-ipi, e2e-ovn, etc.# Example: Extract context from JIRA data
jira_summary=$(echo "$jira_data" | jq -r '.summary')
jira_comments=$(echo "$jira_data" | jq -r '.comments[].body')
# Look for job names and payload URLs in the summary and comments
# to build the CONTEXT and VERIFICATION variablesFallback: If the JIRA lookup fails (no token, network error, or insufficient detail in the ticket), ask the user interactively:
If the user also provided inline context as arguments, combine it with the JIRA-derived context.
YOU MUST ALWAYS DO THIS. Before creating the revert, check recent commits in the repository to determine if it uses a special commit/PR title prefix convention. Skipping this step will cause verify-commits CI jobs to fail.
# Check the last 20 commit subjects on the base branch
git log "upstream/$base_branch" --oneline -20UPSTREAM carry convention: Some repositories (notably openshift/kubernetes and other repos carrying upstream patches) use the prefix format UPSTREAM: <tag>: in commit messages. Common tags include <carry>, <drop>, and upstream cherry-pick numbers like <12345>.
Detection logic:
UPSTREAM: <tag>: format, the revert must follow the same convention.UPSTREAM: <carry>: Revert "ORIGINAL_TITLE" because REASONUPSTREAM: <carry>: Revert "UPSTREAM: 12345: Fix kubelet crash" because it broke e2e-aws jobsStore the detected convention for use in Steps 7 and 9.
# Fetch latest from upstream
git fetch upstream
# Create revert branch from base branch
revert_branch="revert-${pr_number}-$(date +%s%3N)"
git checkout -b "$revert_branch" "upstream/$base_branch"
# Revert the merge commit (first parent = base branch)
git revert -m1 --no-edit "$merge_sha"Important: The -m1 flag tells git to revert relative to the first parent of the merge commit, which is the base branch. This effectively undoes the changes introduced by the PR.
If the UPSTREAM convention was detected in Step 6, you MUST amend the revert commit message to include the appropriate UPSTREAM: <tag>: prefix. The default git revert message (Revert "...") will fail verify-commits CI checks.
Determine the appropriate tag by looking at the commit being reverted and the repo conventions (e.g., <carry>, <drop>).
# Set the tag based on the convention detected in Step 6
upstream_tag="carry" # or "drop", or a cherry-pick number — based on context
# Get the current commit message
current_msg=$(git log -1 --format=%B)
# Prepend the UPSTREAM: <tag>: prefix to the first line
amended_msg=$(echo "$current_msg" | sed "1s/^/UPSTREAM: <$upstream_tag>: /")
# Amend the commit
git commit --amend -m "$amended_msg"This transforms the commit message from:
Revert "Merge pull request #638 from author/branch"to:
UPSTREAM: <carry>: Revert "Merge pull request #638 from author/branch"If git revert fails with conflicts, determine the best strategy:
Strategy A: Resolve simple/obvious conflicts
Use this when conflicts are trivial and unambiguous:
To resolve:
git diff and git statusgit addgit revert --continuegit commit --amend -m "$(git log -1 --format=%B)
Note: Merge conflicts in {FILE_LIST} were resolved manually.
Conflicts were trivial ({DESCRIPTION}, e.g. 'generated file regeneration', 'one-line context change')."Strategy B: Revert dependent commits
Use this when conflicts are non-trivial, meaning later commits depend on the changes introduced by the PR being reverted:
# List commits after the merge commit on the base branch
git log --oneline "$merge_sha"..upstream/"$base_branch"git revert --abort# Revert dependent commits first (newest to oldest)
git revert --no-edit <dependent_sha_newest>
git revert --no-edit <dependent_sha_next>
# ... then revert the original target
git revert -m1 --no-edit "$merge_sha"Note: The following dependent commits were also reverted because
they conflict with or depend on the original change:
- <sha1> <title1>
- <sha2> <title2>After conflict resolution (either strategy), push to the fork:
# Push to fork
git push fork "$revert_branch:$revert_branch"After the revert PR is created, determine which CI jobs need /override commands:
# Get the revert PR's head SHA
pr_sha=$(gh pr view "$revert_pr_url" --json headRefOid --jq '.headRefOid')
# List all status contexts
statuses=$(gh api "repos/$owner/$repo/statuses/$pr_sha" --jq '.[].context' | sort -u)Filter out unoverridable jobs - these are fast-running quality gates that should always pass:
Jobs matching the following pattern should NOT be overridden:
.*(unit|lint|images|verify|tide|verify-deps|fmt|vendor|vet)$Format remaining jobs as override commands:
/override ci/prow/e2e-aws
/override ci/prow/e2e-gcp-ovn
/override ci/prow/e2e-metal-ipi
...PR Title Format depends on the commit convention detected in Step 6:
Standard repositories:
{JIRA}: Revert #{PR_NUMBER} "{ORIGINAL_TITLE}"Example: TRT-9999: Revert #1703 "Fix kubelet crash on restart"
UPSTREAM carry repositories (e.g., openshift/kubernetes):
{JIRA}: UPSTREAM: <tag>: Revert "{ORIGINAL_TITLE}"Example: TRT-9999: UPSTREAM: <carry>: Revert "UPSTREAM: 12345: Fix kubelet crash"
PR Body - Revertomatic Template:
This is the exact template format used by Revertomatic. Use this format precisely:
Reverts #{ORIGINAL_PR_NUMBER} ; tracked by {JIRA_ISSUE}
Per [OpenShift policy](https://github.com/openshift/enhancements/blob/master/enhancements/release/improving-ci-signal.md#quick-revert), we are reverting this breaking change to get CI and/or nightly payloads flowing again.
{CONTEXT}
To unrevert this, revert this PR, and layer an additional separate commit on top that addresses the problem. Before merging the unrevert, please run these jobs on the PR and check the result of these jobs to confirm the fix has corrected the problem:
{OVERRIDE_COMMANDS}
CC: @{ORIGINAL_AUTHOR}Template Variables:
{ORIGINAL_PR_NUMBER}: The PR number being reverted (e.g., 1703){JIRA_ISSUE}: The JIRA ticket tracking the revert (e.g., TRT-9999){CONTEXT}: Explanation of why the revert is needed, derived from the JIRA ticket (Step 5) or provided by the user (e.g., "This PR broke all e2e-aws jobs on the 4.18 nightly payload at https://amd64.ocp.releases.ci.openshift.org/..."){OVERRIDE_COMMANDS}: The list of /override commands for CI jobs that need to be bypassed{ORIGINAL_AUTHOR}: GitHub username of the original PR authorCreate the PR:
gh pr create \
--repo "$owner/$repo" \
--base "$base_branch" \
--head "$gh_user:$revert_branch" \
--title "$jira: Revert #$pr_number \"$pr_title\"" \
--body "$rendered_body"If --draft was set, add the --draft flag to the gh pr create command:
gh pr create \
--repo "$owner/$repo" \
--base "$base_branch" \
--head "$gh_user:$revert_branch" \
--title "$jira: Revert #$pr_number \"$pr_title\"" \
--body "$rendered_body" \
--draftAfter generating override commands in Step 8, return them to the user as a list. Do NOT post them as a comment on the PR automatically. The user can copy-paste them manually if needed.
Note: Override commands may need to be posted after CI jobs have started running and reported their status contexts. If no statuses are available yet, inform the user they can check the PR later for required overrides.
Error: PR #1703 is in state OPEN, not MERGED.
Only merged PRs can be reverted with this command.Error: Could not find merge commit SHA for PR #1703.
The PR may have been squash-merged or rebased.For squash-merged PRs, the merge commit SHA is the squash commit itself. Use gh pr view to get the correct SHA.
Error: git revert -m1 failed due to conflicts.See Step 7 for the two conflict resolution strategies:
Warning: Fork not ready after creation. Waiting...If the fork was just created, retry with exponential backoff (up to ~30 seconds).
Note: No CI status contexts found on the revert PR yet.
Override commands will be available after CI jobs start running.# Input
PR_URL="https://github.com/openshift/kubernetes/pull/1703"
JIRA="TRT-9999"
CONTEXT="This PR broke all jobs on https://amd64.ocp.releases.ci.openshift.org/releasestream/4.15.0-0.nightly/release/4.15.0-0.nightly-2023-10-03-025546"
VERIFY="Run e2e-aws and e2e-gcp jobs"
# Result: Creates PR with title
# TRT-9999: Revert #1703 "UPSTREAM: 12345: Fix kubelet crash on restart"Reverts #1703 ; tracked by TRT-9999
Per [OpenShift policy](https://github.com/openshift/enhancements/blob/master/enhancements/release/improving-ci-signal.md#quick-revert), we are reverting this breaking change to get CI and/or nightly payloads flowing again.
This PR broke all jobs on https://amd64.ocp.releases.ci.openshift.org/releasestream/4.15.0-0.nightly/release/4.15.0-0.nightly-2023-10-03-025546
To unrevert this, revert this PR, and layer an additional separate commit on top that addresses the problem. Before merging the unrevert, please run these jobs on the PR and check the result of these jobs to confirm the fix has corrected the problem:
/override ci/prow/e2e-aws /override ci/prow/e2e-gcp-ovn /override ci/prow/e2e-metal-ipi
CC: @originalauthorgit revert -m1 flag is critical: it specifies the first parent (base branch) as the mainline for the revertrevert-{number}-{timestamp_millis} to avoid collisions with existing branches/ci:revert-pr - The user-facing command that uses this skill (plugins/ci/commands/revert-pr.md)fetch-jira-issue - Fetches JIRA issue details for automatic context extraction (plugins/ci/skills/fetch-jira-issue/SKILL.md)© 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
Just SKILL.md in plugins/ci/skills/revert-pr of openshift-eng/ai-helpers.
Open the folder on GitHubat commit a627176
Revert PR 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 |
|---|---|---|---|---|---|---|
| Revert PR this skillopenshift-eng/ai-helpers | 120 | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| PR BodySAP/spartacus | 784 | — | ~499 | Automated safety check: Pass | Apache-2.0 | |
| SDK Changelogbouffalolab/bouffalo_sdk | 501 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Project Session ManagerYeachan-Heo/oh-my-claudecode | 40k | — | ~4k | Automated safety check: Pass | MIT | |
| Prepare ReleaseDevolutions/devolutions-gateway | 162 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Prime Codebasecoleam00/skills | 670 | — | ~887 | Automated safety check: Pass | MIT |
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.
bouffalolab/bouffalo_sdk
A skill your agent uses when generating a customer-facing CHANGELOG between two SDK release tags.
Yeachan-Heo/oh-my-claudecode
Creates isolated git worktrees, with optional tmux sessions, for PR reviews, issue fixes and feature work across projects and repositories.
Devolutions/devolutions-gateway
Prepares a Devolutions Gateway / Devolutions Agent release commit: bumps the version, generates and inserts the changelog, creates Jira tickets, generates the ToolBox changelog, and produces the…
coleam00/skills
Primes the agent with deep codebase understanding by analyzing structure, documentation, and key files.
opsmill/infrahub
Validate Jira/JPD ticket reference and create a feature 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
Categories
Git revert workflow and Revertomatic PR template for reverting merged PRs. Revert PR is an agent skill from openshift-eng/ai-helpers.
Revert PR fits situations like: development work in your project.
Run `npx skills add openshift-eng/ai-helpers --skill revert-pr -a claude-code`. Or copy the skill folder (plugins/ci/skills/revert-pr in openshift-eng/ai-helpers) into .claude/skills/revert-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openshift-eng/ai-helpers --skill revert-pr -a codex`. Or copy the skill folder (plugins/ci/skills/revert-pr in openshift-eng/ai-helpers) into .agents/skills/revert-pr 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 revert-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/revert-pr, .gemini/skills/revert-pr, .github/skills/revert-pr and .opencode/skills/revert-pr in your project.
Going by SKILL.md and its folder, Revert PR needs the command-line tools its instructions call (git, gh, jq and python3). Our summary lists: Python 3.
SKILL.md names 2 domains. In commands or code: github.com and amd64.ocp.releases.ci.openshift.org; 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.
Revert PR 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 4.4k tokens (SKILL.md is roughly 18k 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 Revert PR: PR Body (SAP/spartacus, 784 stars), SDK Changelog (bouffalolab/bouffalo_sdk, 501 stars), Project Session Manager (Yeachan-Heo/oh-my-claudecode, 40k stars) and Prepare Release (Devolutions/devolutions-gateway, 162 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.