Agent skill

Revert PR

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

Git revert workflow and Revertomatic PR template for reverting merged PRs

Apache-2.0Auto-check passedDevelopment

Install Revert PR

skills CLI
$ npx skills add openshift-eng/ai-helpers --skill revert-pr -a claude-code

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

GitHub CLI
$ gh skill install openshift-eng/ai-helpers revert-pr --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/ci/skills/revert-pr .claude/skills/revert-pr && 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
revert-pr
GitHub stars
120
Token cost
~4.4k tokens
SKILL.md length
1,459 words
Files
1
Skills in repo
118
Repo updated
First seen
Licence
Apache-2.0

At a glance

Git revert workflow and Revertomatic PR template for reverting merged PRs

  • Works in 10 steps: Extract PR Information → Identify the Upstream Repository → Ensure User Has a Fork → …
  • Development work in your project
  • SKILL.md covers When to Use This Skill, Optional Parameters, Prerequisites and Implementation Steps, plus 4 more sections
  • Calls git, gh and jq; reaches github.com and amd64.ocp.releases.ci.openshift.org

What it does

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.

When your agent uses it

  • Development work in your project

Example prompts

  • “/revert-pr”

Requirements

  • Python 3

Workflow steps

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

  1. Extract PR Information
  2. Identify the Upstream Repository
  3. Ensure User Has a Fork
  4. Clone and Set Up Repository
  5. Look Up JIRA Ticket for Context
  6. Detect Commit Message Convention
  7. Create Revert Branch and Perform Revert
  8. Generate CI Override Commands
  9. Create the Revert PR with Revertomatic Template
  10. Return Override Commands

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

    Shell commands in SKILL.md call:

    • git
    • gh
    • jq
    • 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:

    • github.com
    • amd64.ocp.releases.ci.openshift.org

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

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.

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

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,459 words, ~4,440 tokens.

Download SKILL.mdSave it as .claude/skills/revert-pr/SKILL.md (or your agent's skills folder).
name
revert-pr
description
Git revert workflow and Revertomatic PR template for reverting merged PRs

Revert PR

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.

When to Use This Skill

Use this skill when:

  • A merged PR needs to be reverted to restore CI signal
  • Following the OpenShift quick-revert policy
  • You need the exact Revertomatic template format for the revert PR body
  • You need to generate CI override commands for a revert PR

Optional Parameters

  • --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.

Prerequisites

  1. GitHub CLI (gh): Installed and authenticated

    • Check: gh auth status
  2. Git: Installed and configured

    • Check: which git
  3. Repository Access: User must have push access to their fork of the target repository

Implementation Steps

Step 1: Extract PR Information

Use the gh CLI to fetch all necessary details about the PR being reverted:

bash
# 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.
Step 2: Identify the Upstream Repository

Parse the PR URL to determine owner and repository:

bash
# From URL like https://github.com/openshift/kubernetes/pull/1703
# Extract: owner=openshift, repo=kubernetes
Step 3: Ensure User Has a Fork
bash
# 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
fi
Step 4: Clone and Set Up Repository

If no local repository is available:

bash
# 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:

bash
# 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"
Step 5: Look Up JIRA Ticket for Context

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.

bash
# 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:

  1. What broke (for the {CONTEXT} template variable):

    • Look at the issue summary and description for mentions of failing jobs, payloads, or test names
    • Check comments for links to failing Prow jobs, payload pages, or Sippy reports
    • Look for patterns like e2e-aws, e2e-gcp, nightly, payload, or release stream URLs
  2. Verification jobs (for the unrevert instructions):

    • Identify which specific CI jobs are mentioned as broken in the ticket
    • These are the jobs the original author should run before re-landing their change
    • Common patterns: e2e-aws, e2e-gcp, e2e-metal-ipi, e2e-ovn, etc.
bash
# 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 variables

Fallback: If the JIRA lookup fails (no token, network error, or insufficient detail in the ticket), ask the user interactively:

  • "Why is this PR being reverted?"
  • "What jobs should be run to verify a fix before unreverting?"

If the user also provided inline context as arguments, combine it with the JIRA-derived context.

Step 6: Detect Commit Message Convention

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.

bash
# Check the last 20 commit subjects on the base branch
git log "upstream/$base_branch" --oneline -20

UPSTREAM 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:

  • If a significant number of recent commits use the UPSTREAM: <tag>: format, the revert must follow the same convention.
  • The revert commit message and PR title should use:
    UPSTREAM: <carry>: Revert "ORIGINAL_TITLE" because REASON
    For example:
    UPSTREAM: <carry>: Revert "UPSTREAM: 12345: Fix kubelet crash" because it broke e2e-aws jobs
  • If the repo does NOT use this convention, use the standard format described in Step 9.

Store the detected convention for use in Steps 7 and 9.

Step 7: Create Revert Branch and Perform Revert
bash
# 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.

Amend Commit Message for UPSTREAM Convention

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>).

bash
# 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:

text
Revert "Merge pull request #638 from author/branch"

to:

text
UPSTREAM: <carry>: Revert "Merge pull request #638 from author/branch"
Handling Merge Conflicts

If git revert fails with conflicts, determine the best strategy:

Strategy A: Resolve simple/obvious conflicts

Use this when conflicts are trivial and unambiguous:

  • Generated files (go.sum, vendor directories, generated protobuf, etc.)
  • One-line changes where the resolution is obvious
  • Whitespace or formatting-only conflicts

To resolve:

  1. Examine the conflicting files with git diff and git status
  2. Resolve each conflict
  3. Stage the resolved files with git add
  4. Complete the revert with git revert --continue
  5. IMPORTANT: Amend the revert commit message to note the conflict resolution:
    bash
    git 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:

  1. Identify which subsequent commits conflict with the revert:
    bash
    # List commits after the merge commit on the base branch
    git log --oneline "$merge_sha"..upstream/"$base_branch"
  2. Determine which of these commits touch the same files and depend on the reverted changes
  3. Abort the current revert: git revert --abort
  4. Revert in reverse chronological order — revert the dependent commits first, then the target commit:
    bash
    # 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"
  5. IMPORTANT: Amend the final commit message (or use an interactive squash) to document what was reverted:
    Note: The following dependent commits were also reverted because
    they conflict with or depend on the original change:
    - <sha1> <title1>
    - <sha2> <title2>
  6. Inform the user which additional commits were reverted and why, so the PR body can include this information

After conflict resolution (either strategy), push to the fork:

bash
# Push to fork
git push fork "$revert_branch:$revert_branch"
Show full SKILL.md (504 more words)Show less
Step 8: Generate CI Override Commands

After the revert PR is created, determine which CI jobs need /override commands:

bash
# 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
...
Step 9: Create the Revert PR with Revertomatic Template

PR Title Format depends on the commit convention detected in Step 6:

Standard repositories:

text
{JIRA}: Revert #{PR_NUMBER} "{ORIGINAL_TITLE}"

Example: TRT-9999: Revert #1703 "Fix kubelet crash on restart"

UPSTREAM carry repositories (e.g., openshift/kubernetes):

text
{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 author

Create the PR:

bash
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:

bash
gh pr create \
  --repo "$owner/$repo" \
  --base "$base_branch" \
  --head "$gh_user:$revert_branch" \
  --title "$jira: Revert #$pr_number \"$pr_title\"" \
  --body "$rendered_body" \
  --draft
Step 10: Return Override Commands

After 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 Handling

PR Not Merged
Error: PR #1703 is in state OPEN, not MERGED.
Only merged PRs can be reverted with this command.
Merge Commit Not Found
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.

Revert Conflict
Error: git revert -m1 failed due to conflicts.

See Step 7 for the two conflict resolution strategies:

  • Strategy A: Resolve simple/obvious conflicts directly (generated files, one-liners) and note this in the commit message
  • Strategy B: If conflicts are non-trivial, revert the dependent commits as well and document them in the commit message and PR body
Fork Creation Timeout
Warning: Fork not ready after creation. Waiting...

If the fork was just created, retry with exponential backoff (up to ~30 seconds).

No Statuses Available
Note: No CI status contexts found on the revert PR yet.
Override commands will be available after CI jobs start running.

Examples

Example 1: Full Revert Workflow
bash
# 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"
Example 2: Generated PR Body
markdown
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: @originalauthor

Notes

  • The Revertomatic template is important for consistency across OpenShift revert PRs
  • The git revert -m1 flag is critical: it specifies the first parent (base branch) as the mainline for the revert
  • Branch naming uses revert-{number}-{timestamp_millis} to avoid collisions with existing branches
  • The unrevert instructions in the template guide the original author on how to re-land their changes with a fix
  • Override commands exclude fast-running quality gates (unit, lint, images, verify, tide, verify-deps, fmt, vendor, vet)

See Also

© 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

Just SKILL.md in plugins/ci/skills/revert-pr of openshift-eng/ai-helpers.

Open the folder on GitHubat commit a627176

Compare with similar skills

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.

Revert PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Revert PR this skillopenshift-eng/ai-helpers120—~4.4kAutomated safety check: PassApache-2.0
PR BodySAP/spartacus784—~499Automated safety check: PassApache-2.0
SDK Changelogbouffalolab/bouffalo_sdk501—~1.1kAutomated safety check: PassApache-2.0
Project Session ManagerYeachan-Heo/oh-my-claudecode40k—~4kAutomated safety check: PassMIT
Prepare ReleaseDevolutions/devolutions-gateway162—~1.8kAutomated safety check: PassApache-2.0
Prime Codebasecoleam00/skills670—~887Automated safety check: PassMIT

Similar skills

  • PR Body

    SAP/spartacus

    Official

    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.

    784 GitHub stars~499 tokensUpdated today
    DevelopmentAuto-check passed
  • SDK Changelog

    bouffalolab/bouffalo_sdk

    A skill your agent uses when generating a customer-facing CHANGELOG between two SDK release tags.

    501 GitHub stars~1.1k tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Project Session Manager

    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.

    40k GitHub stars~4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Prepare Release

    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…

    162 GitHub stars~1.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Prime Codebase

    coleam00/skills

    Primes the agent with deep codebase understanding by analyzing structure, documentation, and key files.

    670 GitHub stars~887 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Speckit Git Feature

    opsmill/infrahub

    Validate Jira/JPD ticket reference and create a feature branch

    531 GitHub stars~638 tokensUpdated today
    DevelopmentAuto-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 yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    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 yesterday
    Auto-check passed

Works with

Categories

Questions about Revert PR

What does Revert PR do?

Git revert workflow and Revertomatic PR template for reverting merged PRs. Revert PR is an agent skill from openshift-eng/ai-helpers.

When should I use Revert PR?

Revert PR fits situations like: development work in your project.

How do I install Revert PR in Claude Code?

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.

How do I install Revert PR in Codex?

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.

Can I use Revert PR 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 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.

What does Revert PR need to run?

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.

Does Revert PR access the network?

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.

Is Revert PR 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 Revert PR use?

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.

How many tokens does Revert PR use?

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.

What are the alternatives to Revert PR?

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.

Who maintains Revert PR?

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.