Agent skill

E2E Parse CI Failure

by redhat-developer in 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

Apache-2.0Auto-check passedTesting & QA

Install E2E Parse CI Failure

skills CLI
$ npx skills add redhat-developer/rhdh --skill e2e-parse-ci-failure -a claude-code

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

GitHub CLI
$ gh skill install redhat-developer/rhdh e2e-parse-ci-failure --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-parse-ci-failure .claude/skills/e2e-parse-ci-failure && 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-parse-ci-failure
GitHub stars
172
Token cost
~2.5k tokens
SKILL.md length
752 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 4 steps: Structured Summary → Derivation Details → GCS Artifacts Location → …
  • Tasks that involve Failing and flaky tests
  • SKILL.md covers When to Use, Input Detection, Prow URL Parsing and Playwright Report Parsing, plus 4 more sections
  • Calls playwright; reaches prow.ci.openshift.org and redhat.atlassian.net

What it does

E2E Parse CI Failure is an agent skill from 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

Its SKILL.md is about 2.5k 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 Failing and flaky tests and End-to-end testing. It works with Jira, Playwright and JUnit. 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

  • Tasks that involve Failing and flaky tests
  • Tasks that involve End-to-end testing

Example prompts

  • “/e2e-parse-ci-failure”

Workflow steps

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

  1. Structured Summary
  2. Derivation Details
  3. GCS Artifacts Location
  4. local-run.sh Command

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:

    • playwright

    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:

    • prow.ci.openshift.org
    • redhat.atlassian.net
    • gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.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

E2E Parse CI Failure loads about 2.5k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 752 words of instructions outside code blocks.

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

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

Download SKILL.mdSave it as .claude/skills/e2e-parse-ci-failure/SKILL.md (or your agent's skills folder).
name
e2e-parse-ci-failure
description
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

Parse CI Failure

Extract structured failure context from a Prow job URL or Jira ticket for an RHDH E2E CI failure.

When to Use

Use this skill when you receive a failing Prow job URL (e.g., https://prow.ci.openshift.org/view/gs/...), a Jira ticket ID (e.g., RHIDP-XXXX), or a Jira URL (e.g., https://redhat.atlassian.net/browse/RHIDP-XXXX) for an E2E test failure and need to extract all relevant details before starting a fix.

Input Detection

  • Playwright report URL: URL ending in index.html (with optional #?testId=... fragment) — use Playwright MCP if available (see "Playwright Report Parsing" below), otherwise fall back to build log parsing
  • Prow URL: Starts with https://prow.ci.openshift.org/ — parse the job page and build log
  • Jira ticket ID: Matches pattern RHIDP-\d+ or similar — use Jira MCP tools to read the ticket
  • Jira URL: Starts with https://redhat.atlassian.net/browse/ — extract the ticket ID from the URL path (e.g., RHIDP-XXXX from https://redhat.atlassian.net/browse/RHIDP-XXXX) and then use Jira MCP tools to read the ticket

Prow URL Parsing

URL Structure

Prow job URLs follow two patterns:

  • Periodic/postsubmit: https://prow.ci.openshift.org/view/gs/test-platform-results/logs/<job-name>/<build-id>
  • Presubmit (PR): https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/redhat-developer_rhdh/<pr-number>/<job-name>/<build-id>

Extract <job-name> and <build-id> from the URL path. These are the two key values needed for all derivations.

GCS URL Derivation

Convert the Prow URL to a GCS artifacts URL by replacing the prefix:

Prow:  https://prow.ci.openshift.org/view/gs/test-platform-results/logs/<job-name>/<build-id>
GCS:   https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/<job-name>/<build-id>/artifacts/

For presubmit jobs, use pr-logs/pull/redhat-developer_rhdh/<pr-number>/ instead of logs/.

Key artifacts within the GCS directory:

  • Build log: <step-name>/build-log.txt
  • JUnit XML: <step-name>/artifacts/junit-results/results.xml
  • Playwright report: <step-name>/artifacts/playwright-report/

Fetch the Prow job page with WebFetch to find the job status and artifact links, then fetch the build log for test failure details.

Extracting Test Failures from Build Log

Search the build log for these Playwright output patterns:

# Failing test line (primary source for test name, spec file, and project):
  ✘  [<project>] › <path>/<spec-file>.spec.ts:<line> › <test-describe> › <test-name>

# Error details (immediately after the failure line):
  Error: <error-message>
  expect(received).toBeVisible()
  Locator: <locator>

# Summary (at the end of the log):
  X failed
  X passed
  X skipped

Also check JUnit XML for <testcase> elements with <failure> children as a fallback.

Playwright Report Parsing

When the URL points to a Playwright HTML report (index.html, optionally with #?testId=...), use Playwright MCP if available — navigate with browser_navigate, then browser_snapshot to extract test name, spec file, error, steps, retries, screenshots, and traces from the accessibility tree. Derive job metadata (<job-name>, <build-id>, <project>) from the URL path segments.

If Playwright MCP is not available, derive the build-log.txt URL from the report URL and fall back to build log parsing.

Jira Ticket Parsing

Use Jira MCP tools to read the ticket. Extract:

  1. Prow job URLs from the description or comments — then parse them using the Prow URL Parsing steps above.
  2. Test names, spec file paths, error messages, or stack traces from the description, comments, or attachments.
  3. affects version field — map to release branch (e.g., 1.10 → main, 1.9 → release-1.9, 1.8 → release-1.8).
  4. component field for additional context (e.g., "E2E Tests", "CI/CD").
Show full SKILL.md (330 more words)Show less

Job Name Mapping

Refer to the e2e-fix-workflow rule for all mapping tables: job name to release branch, job name to platform and deployment method, job name to Playwright projects, release branch to image repo/tag, and job name to local-run.sh -j parameter. Those tables are the single source of truth and should not be duplicated here.

When parsing a job name, apply those mapping tables to derive: release branch, platform, deployment method, Playwright projects, and local-run.sh flags (-j, -r, -t).

Fields Requiring Build Log Access

Not all output fields can be derived from the Prow URL alone. The following table clarifies what requires fetching the build log or artifacts:

FieldSourceDerivable from URL alone?
Job nameURL path segmentYes
Build IDURL path segmentYes
Release branchJob name pattern matchYes
PlatformJob name pattern matchYes
Deployment methodJob name pattern matchYes
Playwright projectsJob name pattern matchYes
local-run.sh flags (-j, -r, -t)Job name + release branchYes
GCS artifacts URLConstructed from URLYes
Test nameBuild log Playwright outputNo — requires build log
Spec fileBuild log Playwright outputNo — requires build log
Specific Playwright project (of failing test)Build log [project] prefixNo — requires build log
Error typeBuild log error detailsNo — requires build log
Error messageBuild log error detailsNo — requires build log
Failure count / pass countBuild log summary lineNo — requires build log

Output

Produce the following structured output with three sections.

1. Structured Summary
- Test name: <full test name from Playwright output>
- Spec file: <path relative to e2e-tests/playwright/>
- Playwright project: <specific project from the [project] prefix in the failure line>
- Release branch: <main or release-X.Y>
- Platform: <OCP/AKS/EKS/GKE/OSD-GCP>
- Deployment method: <Helm/Operator>
- Error type: <locator/timeout/assertion/crash/deployment>
- Error message: <the actual error>
- Prow URL: <original URL>
- Jira ticket: <ticket ID if applicable>
2. Derivation Details

Show how each field was derived with the matching pattern. This makes the reasoning transparent and auditable.

| Field              | Value                        | Derivation                                                |
|--------------------|------------------------------|-----------------------------------------------------------|
| Job name           | <full-job-name>              | Extracted from URL path segment                           |
| Build ID           | <build-id>                   | Extracted from URL path segment                           |
| Release branch     | <branch>                     | Pattern `*-rhdh-<branch>-*` matched in job name           |
| Platform           | <platform>                   | Pattern `*<platform-keyword>*` matched in job name        |
| Deployment method  | <method>                     | Pattern `*<method-keyword>*` matched in job name          |
| Playwright project | <project>                    | `[<project>]` prefix in failing test line                 |
| Image repo (-r)    | <repo>                       | Release branch `<branch>` maps to `<repo>`                |
| Image tag (-t)     | <tag>                        | Release branch `<branch>` maps to `<tag>`                 |
| Test name          | <test-name>                  | Parsed from `✘` line in build log                         |
| Spec file          | <spec-file>                  | Parsed from `✘` line in build log                         |
| Error type         | <error-type>                 | Classified from error message pattern                     |
3. GCS Artifacts Location

Derive and present the GCS artifacts URLs constructed from the Prow URL:

GCS Artifacts Base:
  https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/<job-name>/<build-id>/artifacts/

Build Log:
  <base>/artifacts/<step-name>/build-log.txt

JUnit Results:
  <base>/artifacts/<step-name>/artifacts/junit-results/results.xml

Playwright Report:
  <base>/artifacts/<step-name>/artifacts/playwright-report/

For presubmit (PR) jobs, the base path uses pr-logs/pull/redhat-developer_rhdh/<pr-number>/ instead of logs/.

4. local-run.sh Command

Provide the full command ready to copy-paste, with a flag breakdown.

OCP jobs — use -s for deploy-only mode:

cd e2e-tests
./local-run.sh -j <full-job-name> -r <image-repo> -t <image-tag> -s

Flag breakdown:
| Flag | Value              | Reason                                           |
|------|--------------------|--------------------------------------------------|
| -j   | <full-job-name>    | Full Prow job name (matches glob in CI script)   |
| -r   | <image-repo>       | Image repo derived from release branch <branch>  |
| -t   | <image-tag>        | Image tag derived from release branch <branch>   |
| -s   | (no value)         | Deploy only, skip running tests                  |

K8s jobs (AKS, EKS, GKE) — do not use -s; full execution is required:

cd e2e-tests
./local-run.sh -j <full-job-name> -r <image-repo> -t <image-tag>

Flag breakdown:
| Flag | Value              | Reason                                           |
|------|--------------------|--------------------------------------------------|
| -j   | <full-job-name>    | Full Prow job name (matches glob in CI script)   |
| -r   | <image-repo>       | Image repo derived from release branch <branch>  |
| -t   | <image-tag>        | Image tag derived from release branch <branch>   |

© 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-parse-ci-failure of redhat-developer/rhdh.

Open the folder on GitHubat commit a50428e

Compare with similar skills

E2E Parse CI Failure 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 Parse CI Failure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Parse CI Failure this skillredhat-developer/rhdh172—~2.5kAutomated safety check: PassApache-2.0
Cucumber and Playwright E2E Testslanggenius/dify158k—~682Automated safety check: PassCustom licence
Debug Playwright Prowquay/quay2.8k—~2.2kAutomated safety check: PassApache-2.0
Debugging Opik E2E Testscomet-ml/opik22k—~1.8kAutomated safety check: PassApache-2.0
Quay Prow Triagequay/quay2.8k—~2.9kAutomated safety check: PassApache-2.0
Debug Playwrightquay/quay2.8k—~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • Guides changes and reviews of the Cucumber and Playwright end-to-end suite under `e2e/`: feature files, step definitions, support code, tags, locators and assertions.

    158k GitHub stars~682 tokensUpdated today
    Testing & QAAuto-check passed
  • Deep-dive diagnosis of a Playwright test failure already isolated to one Quay Prow/OpenShift CI run: downloads its GCS artifacts (results.json, JUnit, build/pod logs, Jaeger traces), classifies real…

    2.8k GitHub stars~2.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Investigates a failed Opik end-to-end test from CI, TestOps or a local run, decides regression versus flake, and proposes a fix without editing tests.

    22k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Diagnose any Quay Prow job failure end to end: prowjob.json - top-level build log - JUnit - resolved failing step - Playwright results.json when the failing step is Playwright, continuing through…

    2.8k GitHub stars~2.9k tokensUpdated today
    Testing & QAAuto-check passed
  • Debug Playwright E2E test failures from GitHub Actions CI runs.

    2.8k GitHub stars~1.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Playwright Testing

    chongdashu/vibejam-starter-pack

    Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.

    149 GitHub stars~2.1k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed

More from redhat-developer/rhdh

  • E2E Submit And Review

    redhat-developer/rhdh

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

    172 GitHub stars~2.7k tokensUpdated today
    Auto-check: notes
  • 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 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

Categories

Questions about E2E Parse CI Failure

What does E2E Parse CI Failure do?

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. E2E Parse CI Failure is an agent skill from redhat-developer/rhdh.

When should I use E2E Parse CI Failure?

E2E Parse CI Failure fits situations like: tasks that involve Failing and flaky tests; tasks that involve End-to-end testing.

How do I install E2E Parse CI Failure in Claude Code?

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

How do I install E2E Parse CI Failure in Codex?

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

Can I use E2E Parse CI Failure 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-parse-ci-failure -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-parse-ci-failure, .gemini/skills/e2e-parse-ci-failure, .github/skills/e2e-parse-ci-failure and .opencode/skills/e2e-parse-ci-failure in your project.

What does E2E Parse CI Failure need to run?

Going by SKILL.md and its folder, E2E Parse CI Failure needs the command-line tools its instructions call (playwright).

Does E2E Parse CI Failure access the network?

SKILL.md names 3 domains. In commands or code: prow.ci.openshift.org, redhat.atlassian.net and gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is E2E Parse CI Failure 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 E2E Parse CI Failure use?

E2E Parse CI Failure 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 Parse CI Failure use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Parse CI Failure?

Skills that share tags, products or a category with E2E Parse CI Failure: Cucumber and Playwright E2E Tests (langgenius/dify, 158k stars), Debug Playwright Prow (quay/quay, 2.8k stars), Debugging Opik E2E Tests (comet-ml/opik, 22k stars) and Quay Prow Triage (quay/quay, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Parse CI Failure?

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.