Agent skill

Payload Experimental Reverts

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

Experimentally test medium-confidence payload candidates by opening draft revert PRs and triggering payload jobs

Apache-2.0Auto-check passedDevelopment

Install Payload Experimental Reverts

skills CLI
$ npx skills add openshift-eng/ai-helpers --skill payload-experimental-reverts -a claude-code

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

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

At a glance

Experimentally test medium-confidence payload candidates by opening draft revert PRs and triggering payload jobs

  • Works in 2 steps: Set Up Experiments → Collect Results and Act
  • Development work in your project
  • SKILL.md covers When to Use This Skill, Required Skills, Prerequisites and Implementation Steps, plus 2 more sections
  • Calls git and gh; reaches github.com

What it does

Payload Experimental Reverts is an agent skill from openshift-eng/ai-helpers. Experimentally test medium-confidence payload candidates by opening draft revert PRs and triggering payload jobs

Its SKILL.md is about 2.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. 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

  • “/payload-experimental-reverts”

Workflow steps

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

  1. Set Up Experiments
  2. Collect Results and Act

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

    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

    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

Payload Experimental Reverts loads about 2.4k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 1,198 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~2.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,198 words, ~2,443 tokens.

Download SKILL.mdSave it as .claude/skills/payload-experimental-reverts/SKILL.md (or your agent's skills folder).
name
payload-experimental-reverts
description
Experimentally test medium-confidence payload candidates by opening draft revert PRs and triggering payload jobs

Payload Experimental Reverts

This skill experimentally tests medium-confidence candidate PRs by opening draft revert PRs, triggering payload jobs, and evaluating results. It operates in two phases separated by a CI wait period. All state is tracked in the payload results YAML file via the payload-results-yaml skill — no separate tracking file is created.

When to Use This Skill

Use this skill when the /ci:payload-experiment command identifies candidate PRs with medium confidence (score 60-84) that cannot be conclusively attributed to a failure through static analysis alone. The experiment creates real tests to determine causality.

Inputs (passed in-context by the caller):

  • results_yaml_path: Path to the payload results YAML file (e.g., ./payload-results-{tag}.yaml)
  • candidates: List of medium-confidence PRs to test experimentally, each with:
    • pr_url, pr_number, component, title, confidence_score
    • failing_jobs: List of {job_name, prow_url, is_aggregated, underlying_job_name}

Required Skills

Before starting, you MUST load the following skills (they define output schemas used when updating results):

  1. payload-results-yaml — schema for the payload results YAML file
  2. payload-autodl-json — schema for the autodl JSON data file

Prerequisites

  1. GitHub CLI (gh): Installed and authenticated
  2. JIRA MCP: Configured for creating TRT issues (needed in Phase 2 for confirmed causes)
  3. Repository Access: User must have push access to their fork of each target repository

Implementation Steps

Phase 1: Set Up Experiments

For each medium-confidence candidate, launch a parallel subagent (do NOT set the model parameter):

1.1: Check for Merge Conflicts

Before opening a revert PR, preemptively check whether the revert will have merge conflicts:

bash
# Clone the repo (shallow for speed)
git clone -b <base_branch> --depth 50 "https://github.com/<org>/<repo>.git" /tmp/experiment-check-<pr_number>
cd /tmp/experiment-check-<pr_number>

# Attempt the revert without committing
git revert -m1 --no-commit <merge_sha>

# Check for conflicts
git status --porcelain

If conflicts exist:

  • Append an action entry with type: "experiment", status: "skipped_conflict" to this candidate's actions array
  • Skip to the next candidate
  • Do NOT attempt to resolve conflicts for experimental reverts

If no conflicts, abort the dry-run revert and proceed:

bash
git revert --abort 2>/dev/null || git checkout -- .
1.2: Open Draft Revert PR

Load the revert-pr skill and follow its workflow with --draft:

  • PR URL: the candidate PR
  • JIRA ticket: use a placeholder like NO-JIRA (real ticket is created in Phase 2 only for confirmed causes)
  • --draft: Create as a draft PR
  • --context: "Experimental revert for {stream} {architecture} payload {payload_tag}. Testing whether reverting this PR resolves blocking job failures."
  • Do NOT prompt the user for any input

Record the draft revert PR URL.

1.3: Trigger Payload Jobs and Collect Run URLs

Use the trigger-payload-job skill (plugins/ci/skills/trigger-payload-job/SKILL.md) to trigger payload validation jobs on the draft revert PR and collect the resulting URLs. Pass:

  • pr_url: The draft revert PR URL
  • jobs: The failing_jobs list for this candidate (includes job_name, is_aggregated, underlying_job_name for each job)
1.4: Record Experiment

Use the payload-results-yaml skill to append an action entry to the candidate's actions array:

  • type: "experiment"
  • status: "pending"
  • revert_pr_url, revert_pr_state: "draft", payload_jobs, result_summary: "", jira_key: "", jira_url: ""

See the payload-results-yaml skill for the full schema.

Throttling: Never test more than 5 candidates. If there are more than 5, test only the top 5 by confidence score.

Job triggering limits: Across all experiments combined: trigger at most 5 non-aggregated jobs and at most 1 aggregated job. Prioritize jobs from higher-confidence candidates.

When a candidate is processed but all of its jobs were skipped due to these limits (i.e., none were actually triggered), do NOT leave it with status: "pending". Instead set:

  • status: "deferred"
  • payload_jobs: one entry per skipped job with command set and test_url, test_prow_url all set to "skipped_due_to_limits"
  • result_summary: "All jobs skipped due to cross-experiment triggering limits"

When a candidate has some jobs triggered and some skipped, mark the triggered jobs normally and add entries for skipped jobs with the "skipped_due_to_limits" marker so the record is complete. The action's status should be "pending" in this case (it has real jobs to check).

Candidates beyond the top 5 that were never processed at all should get an action entry with:

  • type: "experiment"
  • status: "deferred"
  • result_summary: "Deferred — exceeded maximum of 5 experimental candidates"
Update Payload Results YAML

After all Phase 1 subagents complete, use the payload-results-yaml skill to update the results file at results_yaml_path with the action entries for each candidate that was processed or deferred.

Update autodl JSON

Use the payload-autodl-json skill's "Update Experiment Status" Phase 1 operation to update the autodl JSON file for each candidate that had a draft revert PR created.


Phase 2: Collect Results and Act

Phase 2 is invoked after a CI wait period (typically 1-4 hours). If the results YAML contains any action entry with type: "experiment" and status: "pending", enter Phase 2. Phase 2 processes only pending experiments — candidates with other statuses are left unchanged.

Show full SKILL.md (514 more words)Show less
2.1: Read Payload Results YAML

Read the results YAML at results_yaml_path using the payload-results-yaml skill. Find all candidates that have an action entry with type: "experiment" and status: "pending". Skip actions with status: "deferred" — these had no jobs triggered and cannot be evaluated.

2.2: Check Job Results

For each pending experiment action:

  1. Fetch the test_url from the action's payload_jobs
  2. Check for "AllJobsFinished" status on the page
  3. If not finished, leave the action's status as "pending" — do NOT change it. The caller can invoke Phase 2 again later to re-check.
  4. If finished, check individual prow job results (pass/fail) by fetching each test_prow_url
2.3: Act on Results

For each completed experiment:

PASS (payload jobs pass with the revert applied — the revert fixed the problem):

The candidate PR is confirmed as the cause. Execute:

  1. Create TRT JIRA bug: Same format as stage-payload-reverts Substep 1
  2. Promote draft to real PR:
    bash
    gh pr ready <draft_pr_url>
    Update the PR title to include the JIRA key and remove any "NO-JIRA" placeholder:
    bash
    gh pr edit <draft_pr_url> --title "<jira_key>: Revert #<pr_number> \"<pr_title>\""
    Update the PR body to include the JIRA reference and full Revertomatic template.
  3. Update the action entry: status: "passed", revert_pr_state: "open", jira_key, jira_url

FAIL (payload jobs still fail with the revert applied — the PR is innocent):

  1. Post a comment on the draft PR explaining the result:
    Experiment result: payload jobs still fail with this PR reverted. This PR is not the cause of the
    blocking job failures in {payload_tag}. Closing this draft.
  2. Close the draft PR:
    bash
    gh pr close <draft_pr_url>
  3. Update the action entry: status: "failed", revert_pr_state: "closed"

ALL FAIL (no single revert fixes the problem):

If all experiments fail, close all remaining draft PRs and note in the result summaries that the failures may be caused by an interaction between multiple PRs or by infrastructure issues.

2.4: Update Payload Results YAML

Use the payload-results-yaml skill to update the results file at results_yaml_path:

  • For each completed candidate, update the relevant action entry's status, result_summary, revert_pr_state, jira_key, jira_url
  • Candidates whose jobs are still running keep their action entry's status: "pending" (unchanged)
2.5: Update autodl JSON

Use the payload-autodl-json skill's "Update Experiment Status" Phase 2 operation to update the autodl JSON file for each completed experiment.

Return results to the caller. If any candidates remain pending, inform the caller that Phase 2 should be re-invoked later to collect remaining results.

Error Handling

  • If a revert PR cannot be created (e.g., fork issues), skip that candidate and record the error.
  • If payload job triggering fails, record the error but keep the draft PR open for manual testing.
  • If the pr-payload-tests URL cannot be extracted, record the draft PR URL and note manual checking is required.
  • Do not let one failed experiment block processing of others.

See Also

  • Related Skill: payload-results-yaml - Schema and operations for the payload results YAML
  • Related Skill: revert-pr - The git revert workflow (plugins/ci/skills/revert-pr/SKILL.md)
  • Related Skill: trigger-payload-job - Triggers payload jobs and collects URLs (plugins/ci/skills/trigger-payload-job/SKILL.md)
  • Related Skill: stage-payload-reverts - Stages high-confidence reverts (plugins/ci/skills/stage-payload-reverts/SKILL.md)
  • Related Command: /ci:payload-experiment - Command for experimental reverts (plugins/ci/commands/payload-experiment.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

Files

Just SKILL.md in plugins/ci/skills/payload-experimental-reverts of openshift-eng/ai-helpers.

Open the folder on GitHubat commit a627176

Compare with similar skills

Payload Experimental Reverts 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.

Payload Experimental Reverts compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Payload Experimental Reverts this skillopenshift-eng/ai-helpers120—~2.4kAutomated safety check: PassApache-2.0
Vercel Composition Patternssupabase/supabase111k58 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k4 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 58 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 4 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    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 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

Categories

Questions about Payload Experimental Reverts

What does Payload Experimental Reverts do?

Experimentally test medium-confidence payload candidates by opening draft revert PRs and triggering payload jobs. Payload Experimental Reverts is an agent skill from openshift-eng/ai-helpers.

When should I use Payload Experimental Reverts?

Payload Experimental Reverts fits situations like: development work in your project.

How do I install Payload Experimental Reverts in Claude Code?

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

How do I install Payload Experimental Reverts in Codex?

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

Can I use Payload Experimental Reverts 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 payload-experimental-reverts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/payload-experimental-reverts, .gemini/skills/payload-experimental-reverts, .github/skills/payload-experimental-reverts and .opencode/skills/payload-experimental-reverts in your project.

What does Payload Experimental Reverts need to run?

Going by SKILL.md and its folder, Payload Experimental Reverts needs the command-line tools its instructions call (git and gh).

Does Payload Experimental Reverts access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Payload Experimental Reverts 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 Payload Experimental Reverts use?

Payload Experimental Reverts 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 Payload Experimental Reverts use?

About 2.4k tokens (SKILL.md is roughly 9.8k 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 Payload Experimental Reverts?

Skills that share tags, products or a category with Payload Experimental Reverts: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Payload Experimental Reverts?

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.