Agent skill

E2E Submit And Review

by redhat-developer in redhat-developer/rhdh

Create a PR for an E2E test fix, trigger Qodo agentic review, address review comments, and monitor CI results

Apache-2.0Auto-check: notesTesting & QA

Install E2E Submit And Review

skills CLI
$ npx skills add redhat-developer/rhdh --skill e2e-submit-and-review -a claude-code

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

GitHub CLI
$ gh skill install redhat-developer/rhdh e2e-submit-and-review --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/redhat-developer/rhdh.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/e2e-submit-and-review .claude/skills/e2e-submit-and-review && 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
e2e-submit-and-review
GitHub stars
172
Token cost
~2.7k tokens
SKILL.md length
838 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create a PR for an E2E test fix, trigger Qodo agentic review, address review comments, and monitor CI results

  • Works in 9 steps: Resolve Pre-Commit Hooks → Commit Changes → Push to Fork → …
  • Qodo agentic review
  • SKILL.md covers When to Use, Step 0: Resolve Pre-Commit Hooks, Step 1: Commit Changes and Step 2: Push to Fork, plus 7 more sections
  • Calls gh, git and yarn

What it does

E2E Submit And Review is an agent skill from redhat-developer/rhdh. Create a PR for an E2E test fix, trigger Qodo agentic review, address review comments, and monitor CI results

Its SKILL.md is about 2.7k 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 Testing & QA, covering End-to-end testing and Commit messages. The repository describes itself as: The repo formerly known as janus-idp/backstage-showcase. The licence is Apache-2.0.

When your agent uses it

  • Qodo agentic review
  • Address review comments
  • Monitor CI results

Example prompts

  • “/e2e-submit-and-review”

Workflow steps

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

  1. Resolve Pre-Commit Hooks
  2. Commit Changes
  3. Push to Fork
  4. Create Pull Request
  5. Trigger Qodo Agentic Review
  6. Wait for and Address Qodo Review
  7. Trigger Affected CI Job
  8. Monitor CI Status
  9. Final Status Report

What it can do on your machine

Read from SKILL.md and the folder at commit a50428e. 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:

    • gh
    • git
    • yarn

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

  • Network

    No URLs in SKILL.md. Its commands use gh, git and yarn, which can reach the network depending on how they are called.

    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

E2E Submit And Review loads about 2.7k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 838 words of instructions outside code blocks.

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

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

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:175
    tage specific files to avoid committing `.env`, test artifacts, or other local-only files.

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 redhat-developer/rhdh at commit a50428e, republished under its Apache-2.0 licence (© redhat-developer). 838 words, ~2,728 tokens.

Download SKILL.mdSave it as .claude/skills/e2e-submit-and-review/SKILL.md (or your agent's skills folder).
name
e2e-submit-and-review
description
Create a PR for an E2E test fix, trigger Qodo agentic review, address review comments, and monitor CI results

Submit and Review

Create a pull request for the E2E test fix, trigger automated review, address feedback, and verify CI passes.

When to Use

Use this skill after verifying the fix (via e2e-verify-fix) when all tests pass and code quality checks are clean.

Step 0: Resolve Pre-Commit Hooks

Before committing, ensure all related workspaces have their dependencies installed so pre-commit hooks (lint-staged, rulesync, etc.) pass:

bash
# Root workspace
yarn install

# If e2e-tests files were changed
cd e2e-tests && yarn install && cd ..

# If .ci files were changed
cd .ci && yarn install && cd ..

If a pre-commit hook fails during commit, fix the issue and create a new commit — do not amend.

Step 1: Commit Changes

Stage and Commit
bash
# Stage only relevant files
git add e2e-tests/
git add .ci/  # Only if deployment config was changed

# Commit with a descriptive message
git commit -m "fix(e2e): <short description of what was fixed>

<Longer description if needed explaining:>
- What test was failing
- What the root cause was
- How it was fixed"
Commit Message Convention

Follow the conventional commit format:

  • fix(e2e): fix flaky topology test timeout
  • fix(e2e): update RBAC page locators after UI redesign
  • fix(e2e): add retry logic for catalog entity refresh
  • fix(e2e): skip orchestrator test on GKE platform

If a Jira ticket exists, reference it:

  • fix(e2e): fix topology locator drift [RHIDP-1234]

Step 2: Push to Fork

Push the fix branch to the fork (origin):

bash
git push -u origin <branch-name>

Example:

bash
git push -u origin fix/e2e-topology-locator
# or
git push -u origin fix/RHIDP-1234-e2e-topology-locator

Step 3: Create Pull Request

Create a PR against the upstream redhat-developer/rhdh repository.

Dynamic username extraction -- Always derive the GitHub username from the fork remote at runtime rather than hardcoding it. This makes the workflow portable across any contributor's environment:

bash
GITHUB_USER=$(git remote get-url origin | sed 's|.*github.com[:/]||;s|/.*||')

Then create the PR as a draft (always use --draft):

bash
gh pr create \
  --draft \
  --repo redhat-developer/rhdh \
  --head "${GITHUB_USER}:<branch-name>" \
  --base <release-branch> \
  --title "fix(e2e): <description> [AI /e2e-fix]" \
  --body "$(cat <<'EOF'
## Summary
- <1-2 bullet points explaining what was fixed and why>

## Test Results
- Local verification: 5/5 passes
- Code quality: lint, tsc, prettier all pass

## Related
- Prow job: <URL if applicable>
- Jira: <ticket ID if applicable>
EOF
)"

Important: Always use --repo redhat-developer/rhdh and --head <username>:<branch> for cross-fork PRs. Never hardcode the GitHub username -- always extract it dynamically from the origin remote URL so this workflow works for any contributor.

PR Description Guidelines

Keep it concise:

  • What test was failing
  • What the root cause was
  • How it was fixed
  • Link to the original failing CI job or Jira ticket

Step 4: Trigger Qodo Agentic Review

After the PR is created, trigger an agentic review from Qodo (PR-Agent):

bash
# Get the PR number from the create output, then comment
gh pr comment <PR-number> --repo redhat-developer/rhdh --body "/agentic_review"

The Qodo bot will:

  1. Analyze the code changes
  2. Post review comments with suggestions
  3. Optionally approve or request changes

Step 5: Wait for and Address Qodo Review

Poll for Review Comments

Poll for Qodo review completion (typically takes 1-3 minutes):

bash
# Poll for Qodo bot review (check every 15s, up to 20 attempts = 5 min)
for i in $(seq 1 20); do
  REVIEW_STATE=$(gh api repos/redhat-developer/rhdh/pulls/<PR-number>/reviews \
    --jq '[.[] | select(.user.login | test("github-actions|qodo|codium|pr-agent"))] | last | .state // empty')
  if [[ -n "$REVIEW_STATE" ]]; then
    echo "Qodo review received (state: $REVIEW_STATE)"
    break
  fi
  echo "Waiting for Qodo review (attempt $i/20)..."
  sleep 15
done

If a review is received, fetch the inline comments:

bash
# Get inline review comments
gh api repos/redhat-developer/rhdh/pulls/<PR-number>/comments \
  --jq '.[] | select(.user.login | test("github-actions|qodo|codium|pr-agent")) | {path: .path, line: .line, body: .body}'

If no review is received after 5 minutes, ask the user for guidance.

Address Review Comments

For each review comment:

  1. Code suggestions: If the suggestion improves the code, apply it:
bash
# Make the change locally
# Then stage only the changed files and commit
git add <specific-files>
git commit -m "fix(e2e): address review feedback"
git push

Never use git add -A or git add . — always stage specific files to avoid committing .env, test artifacts, or other local-only files.

  1. Style/convention issues: Fix them per project conventions

  2. False positives: If a suggestion is incorrect, explain why in a reply:

bash
gh api repos/redhat-developer/rhdh/pulls/<PR-number>/comments/<comment-id>/replies \
  -f body="This is intentional because <reason>"
  1. Questions: Answer them with context from the codebase

Step 6: Trigger Affected CI Job

After addressing Qodo review feedback (and pushing any follow-up commits), trigger the presubmit E2E job that corresponds to the originally failing CI job. Presubmit job names differ from periodic/nightly names but cover the same platform and deployment method.

CRITICAL: Never guess or construct presubmit job names. Always discover them from the openshift-ci bot response as described below.

Step 6a: Request Available Jobs

Comment /test ? on the PR to request the list of available presubmit jobs:

bash
gh pr comment <PR-number> --repo redhat-developer/rhdh --body "/test ?"
Show full SKILL.md (340 more words)Show less
Step 6b: Wait for the Bot Response

The bot usually responds within seconds. Poll PR comments for the openshift-ci bot's response:

bash
# Poll for the openshift-ci bot response (check every 5s, up to 12 attempts = 1 min)
for i in $(seq 1 12); do
  BOT_RESPONSE=$(gh api repos/redhat-developer/rhdh/issues/<PR-number>/comments \
    --jq '[.[] | select(.user.login == "openshift-ci[bot]" or .user.login == "openshift-ci-robot")] | last | .body // empty')
  if [[ -n "$BOT_RESPONSE" ]] && echo "$BOT_RESPONSE" | grep -q '/test'; then
    echo "Bot response received:"
    echo "$BOT_RESPONSE"
    break
  fi
  echo "Waiting for openshift-ci bot response (attempt $i/12)..."
  sleep 5
done

If no response is received after 1 minute, ask the user for guidance.

Step 6c: Understand the Bot Response

The bot's response has two sections:

  1. Required jobs — triggered automatically when the PR is marked as ready for review (not on draft PRs). These run the basic presubmit checks:
/test e2e-ocp-helm
  1. Optional jobs — must be triggered explicitly. These include nightly variants, other platforms, and operators:
/test e2e-ocp-helm-nightly
/test e2e-eks-helm-nightly
/test e2e-aks-operator-nightly
...

Note: the job names in the bot's response are shortened (e.g., e2e-ocp-helm), not the full Prow pull-ci-redhat-developer-rhdh-... format. Use these short names directly with /test.

Step 6d: Select and Trigger the Right Job

Match the original failure to the right presubmit job from the bot's list:

Original failure patternTrigger
*ocp*helm*nightly*/test e2e-ocp-helm-nightly
*ocp*operator*nightly*/test e2e-ocp-operator-nightly
*ocp*v4-19*helm*/test e2e-ocp-v4-19-helm-nightly
*aks*helm*/test e2e-aks-helm-nightly
*eks*helm*/test e2e-eks-helm-nightly
*gke*operator*/test e2e-gke-operator-nightly
bash
gh pr comment <PR-number> --repo redhat-developer/rhdh --body "/test <job-name-from-bot-response>"

Rules:

  • Only use job names that appeared in the bot's response — never construct or guess names
  • The required job (e2e-ocp-helm) runs automatically — you usually only need to trigger the optional job matching the original failure
  • If no matching job exists in the list, inform the user and ask how to proceed

Step 7: Monitor CI Status

Watch CI Checks

After pushing changes, monitor the CI pipeline:

bash
gh pr checks <PR-number> --repo redhat-developer/rhdh --watch

Or check manually:

bash
gh pr checks <PR-number> --repo redhat-developer/rhdh

CI check types (Prow E2E jobs, lint checks, build checks, etc.) are documented in the project CI rules. Use gh pr checks output to identify which specific check failed.

If CI Fails
  1. E2E test failure: Check the Prow job logs, determine if it's the same test or a different one
  2. Lint failure: Run yarn lint:fix locally, commit and push
  3. Build failure: Check TypeScript errors with yarn tsc
  4. Unrelated failure: Comment on the PR noting it's an unrelated failure, optionally /retest to re-trigger
Re-trigger CI

If a CI check needs to be re-run:

bash
# For Prow jobs, comment on the PR
gh pr comment <PR-number> --repo redhat-developer/rhdh --body "/retest"

# For specific jobs
gh pr comment <PR-number> --repo redhat-developer/rhdh --body "/retest <job-name>"

Step 8: Final Status Report

After CI passes (or all issues are addressed), produce a final report:

PR Status Report:
- PR: <URL>
- Branch: <branch> -> <release-branch>
- CI Status: PASS / PENDING / FAIL
- Qodo Review: Addressed / Pending
- Files changed: <count>
- Action items: <any remaining items>

Quick Reference: PR Workflow Commands

bash
# Determine GitHub username from fork remote
GITHUB_USER=$(git remote get-url origin | sed 's|.*github.com[:/]||;s|/.*||')

# Create draft PR (always use --draft)
gh pr create --draft --repo redhat-developer/rhdh --head "${GITHUB_USER}:<branch>" --base <release-branch> --title "fix(e2e): <description> [AI /e2e-fix]"

# Trigger Qodo review
gh pr comment <PR#> --repo redhat-developer/rhdh --body "/agentic_review"

# List available presubmit jobs (Step 6a)
gh pr comment <PR#> --repo redhat-developer/rhdh --body "/test ?"

# Wait for openshift-ci bot response (Step 6b) -- poll until bot replies with job list

# Trigger specific presubmit job (Step 6d) -- ONLY use a job name from the bot's response
gh pr comment <PR#> --repo redhat-developer/rhdh --body "/test <job-name-from-bot-response>"

# Check CI status
gh pr checks <PR#> --repo redhat-developer/rhdh

# Re-trigger tests
gh pr comment <PR#> --repo redhat-developer/rhdh --body "/retest"

# View PR
gh pr view <PR#> --repo redhat-developer/rhdh --web

© redhat-developer, 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 .claude/skills/e2e-submit-and-review of redhat-developer/rhdh.

Open the folder on GitHubat commit a50428e

Compare with similar skills

E2E Submit And Review 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.

E2E Submit And Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Submit And Review this skillredhat-developer/rhdh172—~2.7kAutomated safety check: NotesApache-2.0
Gm ScaffoldRandallLiuXin/GodotMaker549—~1.9kAutomated safety check: PassCustom licence
RStudio Selenium to Playwright Migrationrstudio/rstudio5.1k—~3.6kAutomated safety check: PassCustom licence
Add Full Slicefullstackhero/dotnet-starter-kit6.8k—~783Automated safety check: PassMIT
Codex E2E Trace Validationliaohch3/claude-tap3.3k—~3kAutomated safety check: PassMIT
Interactive CLI Testing With tui-testslopus/happy24k—~603Automated safety check: PassMIT

Similar skills

  • Gm Scaffold

    RandallLiuXin/GodotMaker

    Scaffold a new Godot project: project.godot + addons + base directories + e2e/conftest.py + initial git commit.

    549 GitHub stars~1.9k tokensUpdated 20 days ago
    Game DevelopmentAuto-check passed
  • Converts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated.

    5.1k GitHub stars~3.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Add Full Slice

    fullstackhero/dotnet-starter-kit

    Build a capability end-to-end — backend vertical slice (Contracts→handler→validator→endpoint) AND the React page wired to it.

    6.8k GitHub stars~783 tokensUpdated 8 days ago
    Testing & QAAuto-check passed
  • Codex E2E Trace Validation

    liaohch3/claude-tap

    Runs a real Codex CLI session through claude-tap and produces trace evidence and viewer screenshots for pull requests that touch capture, proxying or the viewer.

    3.3k GitHub stars~3k tokensUpdated 15 days ago
    Testing & QAAuto-check passed
  • Tests interactive CLI and TUI programs with Microsoft's tui-test, driving prompts, arrow keys and screen output in a real pseudo-terminal.

    24k GitHub stars~603 tokensUpdated today
    Testing & QAAuto-check passed
  • Verify

    morapelker/hive

    Build, launch, and drive this worktree's Hive app over CDP to verify a change end-to-end with playwright-cli

    470 GitHub stars~709 tokensUpdated 8 days ago
    Testing & QAAuto-check passed

More from redhat-developer/rhdh

  • E2E Deploy Rhdh

    redhat-developer/rhdh

    Deploy RHDH to an OpenShift cluster using local-run.sh for E2E test execution, with autonomous error recovery for deployment failures

    172 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • E2E Diagnose And Fix

    redhat-developer/rhdh

    Analyze a failing E2E test, determine root cause, and fix it using Playwright Test Agents and RHDH project conventions

    172 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • E2E Parse CI Failure

    redhat-developer/rhdh

    Parse a Prow CI job URL or Jira ticket to extract E2E test failure details including test name, spec file, release branch, platform, and error messages

    172 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • E2E Reproduce Failure

    redhat-developer/rhdh

    Run a specific failing E2E test against a deployed RHDH instance to confirm the failure and determine if it is consistent or flaky

    172 GitHub stars~1.9k tokensUpdated today
    Auto-check: notes
  • E2E Verify Fix

    redhat-developer/rhdh

    Verify an E2E test fix by running the test multiple times and checking code quality

    172 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Patch Backstage

    redhat-developer/rhdh

    Workflow to backport Backstage changes into RHDH by syncing a downstream maintenance branch and generating yarn patches.

    172 GitHub stars~3.3k tokensUpdated today
    Auto-check passed

Questions about E2E Submit And Review

What does E2E Submit And Review do?

Create a PR for an E2E test fix, trigger Qodo agentic review, address review comments, and monitor CI results. E2E Submit And Review is an agent skill from redhat-developer/rhdh.

When should I use E2E Submit And Review?

E2E Submit And Review fits situations like: qodo agentic review; address review comments; monitor CI results.

How do I install E2E Submit And Review in Claude Code?

Run `npx skills add redhat-developer/rhdh --skill e2e-submit-and-review -a claude-code`. Or copy the skill folder (.claude/skills/e2e-submit-and-review in redhat-developer/rhdh) into .claude/skills/e2e-submit-and-review in your project. Claude Code loads it when a task matches its description.

How do I install E2E Submit And Review in Codex?

Run `npx skills add redhat-developer/rhdh --skill e2e-submit-and-review -a codex`. Or copy the skill folder (.claude/skills/e2e-submit-and-review in redhat-developer/rhdh) into .agents/skills/e2e-submit-and-review in your project. Codex loads it when a task matches its description.

Can I use E2E Submit And Review 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 redhat-developer/rhdh --skill e2e-submit-and-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/e2e-submit-and-review, .gemini/skills/e2e-submit-and-review, .github/skills/e2e-submit-and-review and .opencode/skills/e2e-submit-and-review in your project.

What does E2E Submit And Review need to run?

Going by SKILL.md and its folder, E2E Submit And Review needs the command-line tools its instructions call (gh, git and yarn).

Does E2E Submit And Review access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is E2E Submit And Review safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does E2E Submit And Review use?

E2E Submit And Review 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 E2E Submit And Review use?

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

What are the alternatives to E2E Submit And Review?

Skills that share tags, products or a category with E2E Submit And Review: Gm Scaffold (RandallLiuXin/GodotMaker, 549 stars), RStudio Selenium to Playwright Migration (rstudio/rstudio, 5.1k stars), Add Full Slice (fullstackhero/dotnet-starter-kit, 6.8k stars) and Codex E2E Trace Validation (liaohch3/claude-tap, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Submit And Review?

redhat-developer (a GitHub organization) maintains it in redhat-developer/rhdh, which has 172 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: redhat-developer/rhdh on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.