Agent skill

Fetch Prow Job Runs

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

List Prow job runs from the Sippy API using its real filter syntax — find run IDs by job name, variant, result, or time window

Apache-2.0Auto-check passed

Install Fetch Prow Job Runs

skills CLI
$ npx skills add openshift-eng/ai-helpers --skill fetch-prow-job-runs -a claude-code

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

GitHub CLI
$ gh skill install openshift-eng/ai-helpers fetch-prow-job-runs --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/fetch-prow-job-runs .claude/skills/fetch-prow-job-runs && 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
fetch-prow-job-runs
GitHub stars
120
Token cost
~1.7k tokens
SKILL.md length
644 words
Files
3
Skills in repo
118
Repo updated
First seen
Licence
Apache-2.0

At a glance

List Prow job runs from the Sippy API using its real filter syntax — find run IDs by job name, variant, result, or time window

  • Works in 2 steps: Network Access: The Sippy API must be… → Python 3: Python 3.6 or later, standard…
  • SKILL.md covers When to Use This Skill, Prerequisites, Implementation Steps and API Details, plus 4 more sections
  • Runs Python scripts from its folder; calls python3; reaches sippy.dptools.openshift.org

What it does

Fetch Prow Job Runs is an agent skill from openshift-eng/ai-helpers. List Prow job runs from the Sippy API using its real filter syntax — find run IDs by job name, variant, result, or time window

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `fetch_prow_job_runs.py` and `test_fetch_prow_job_runs.py`).

The repository describes itself as: Developer productivity tools for Claude Code & other AI assistants. The licence is Apache-2.0.

Example prompts

  • “/fetch-prow-job-runs”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Network Access: The Sippy API must be accessible at https://sippy.dptools.openshift.org
  2. Python 3: Python 3.6 or later, standard library only

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

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

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

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

Fetch Prow Job Runs loads about 1.7k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 644 words of instructions outside code blocks.

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

Download SKILL.mdSave it as .claude/skills/fetch-prow-job-runs/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
fetch-prow-job-runs
description
List Prow job runs from the Sippy API using its real filter syntax — find run IDs by job name, variant, result, or time window

Fetch Prow Job Runs

Sippy Symptoms are known-failure signatures for OpenShift CI. A symptom is a rule made of a file pattern (a glob over a CI job run's artifact files, e.g. **/build-log.txt) and a matcher (string = substring, regex = regular expression, none = file merely exists, cel = a compound CEL expression over other label names). When a symptom matches a job run's artifacts, Sippy applies one or more Labels — human-readable tags like InfraFailure — to that run. Labels appear in the Sippy UI and Spyglass and help everyone quickly recognize known failure modes without re-debugging them. You do not need any prior Sippy knowledge to use this skill.

This skill finds Prow job runs (and their prow_id values) via the Sippy /api/jobs/runs endpoint. It exists because this API does not accept ad-hoc query parameters like ?job_name= or ?period= — those do not exist and will be silently ignored or rejected. Filtering is done through a JSON filter parameter with a fixed set of column fields and operators (listed below), and this skill's script builds that JSON with verified fields and operators so you never have to guess.

When to Use This Skill

Use this skill when you need to:

  • Find run IDs (prow_id) to feed into reevaluate-job-runs after creating or updating a symptom
  • Check how widespread a failure is (e.g. all failed runs of a job family in the last day)
  • List recent runs matching a platform/network/etc. variant
  • Get the Prow URL of recent runs of a given job

Prerequisites

  1. Network Access: The Sippy API must be accessible at https://sippy.dptools.openshift.org
    • No authentication required
  2. Python 3: Python 3.6 or later, standard library only

Implementation Steps

Invoke the script with flags matching the question:

bash
script_path="plugins/ci/skills/fetch-prow-job-runs/fetch_prow_job_runs.py"

# Metal-platform runs in the last 24 hours
python3 "$script_path" --release 5.0 --variant Platform:metal --since-hours 24 --format summary

# Failed runs of jobs whose name contains e2e-metal
python3 "$script_path" --release 5.0 --job-contains e2e-metal --result F --format summary

# Pipe run IDs into symptom reevaluation
python3 "$script_path" --release 5.0 --job-contains e2e-metal --result F --since-hours 48 --ids-only \
  | xargs python3 plugins/ci/skills/reevaluate-job-runs/reevaluate_job_runs.py --dry-run

Flags:

  • --release <release> (required): OpenShift release, e.g. 5.0
  • --job-contains <substr> (repeatable): job name must contain each substring
  • --variant <Key:Value> (repeatable): run must have each variant entry, e.g. Platform:metal
  • --result <code>: overall result code (S success, F failure, n infra failure — lowercase n)
  • --since-hours <n>: only runs newer than N hours ago
  • --filter-json <raw>: escape hatch — raw JSON array of extra filter items merged with the generated ones
  • --limit <n>: max rows (default 100)
  • --ids-only: print just prow_id per line (pipeline-friendly)
  • --format {json,summary}: output format (default json)

All filter items are combined with AND.

API Details

Endpoint
text
GET https://sippy.dptools.openshift.org/api/jobs/runs?release={release}&filter={urlencoded_json}&limit={n}&sortField=timestamp&sort=desc

No authentication required.

Filter JSON Shape
json
{"items": [{"columnField": "name", "operatorValue": "contains", "value": "e2e-metal"}], "linkOperator": "and"}
Show full SKILL.md (261 more words)Show less
Verified Column Fields and Operators

Do NOT invent other query parameters or fields — only these are verified to work:

columnFieldoperatorValuevalue
namecontainsjob-name substring
variantshas entryKey:Value, e.g. Platform:metal
timestamp> / <epoch milliseconds as a string
overall_resultequalsS (success), F (failure), n (infra failure — lowercase)

An unknown columnField yields HTTP 400 with a "column does not exist" message; the script surfaces that message verbatim.

Response Row Fields

{"rows": [...]}; each row has prow_id (string), job, url, variants[], overall_result, failed, succeeded, infrastructure_failure, test_failures, timestamp (epoch millis), cluster.

Error Handling

Case 1: Unknown Column (HTTP 400)
text
Error: HTTP 400 from Sippy API: {"code":400,"message":"could not filter or sort data: error updating query for filter ... column does not exist"}

Use only the column fields in the table above. Exits 1.

Case 2: Network Error
text
Error: failed to connect to Sippy API: [Errno -2] Name or service not known

Exits 1. Check connectivity to sippy.dptools.openshift.org.

Case 3: Empty Results

No matching runs prints [] (JSON), Total: 0 (summary), or nothing (--ids-only) and exits 0 — not an error.

Exit Codes:

  • 0: Success (including empty results)
  • 1: Error (HTTP error, network error, invalid --filter-json)

Examples

Example 1: Metal Runs in the Last 24 Hours
bash
python3 plugins/ci/skills/fetch-prow-job-runs/fetch_prow_job_runs.py \
  --release 5.0 --variant Platform:metal --since-hours 24 --limit 5 --format summary

Expected Output (excerpt):

text
n  periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ovn-ha-cert-rotation-shutdown-5y-age-90d  2080684960133419008  1784908873000
Total: 5
Example 2: Failed Runs of a Job Family
bash
python3 plugins/ci/skills/fetch-prow-job-runs/fetch_prow_job_runs.py \
  --release 5.0 --job-contains e2e-metal --result F --format summary
Example 3: Feed Run IDs to Reevaluation
bash
python3 plugins/ci/skills/fetch-prow-job-runs/fetch_prow_job_runs.py \
  --release 5.0 --job-contains e2e-metal --since-hours 48 --ids-only \
  | xargs python3 plugins/ci/skills/reevaluate-job-runs/reevaluate_job_runs.py --dry-run

Notes

  • Results are sorted newest-first (sortField=timestamp&sort=desc)
  • timestamp filter values must be epoch milliseconds (the script computes this for --since-hours)
  • Repeatable flags AND together; there is no OR support in this script (use --filter-json if you need custom items)

See Also

  • Related Skill: reevaluate-job-runs (re-run symptom detection on the run IDs found here)
  • Related Skill: diagnose-job-run-symptoms (explain which symptoms/labels apply to a run)
  • Related Skill: list-symptoms (browse the symptom/label catalog)
  • Related Skill: fetch-regression-details (another source of job run IDs, from regressions)

© 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

SKILL.md and 2 other files in plugins/ci/skills/fetch-prow-job-runs of openshift-eng/ai-helpers.

  • SKILL.md
  • fetch_prow_job_runs.py
  • test_fetch_prow_job_runs.py

Open the folder on GitHubat commit a627176

Compare with similar skills

Fetch Prow Job Runs 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.

Fetch Prow Job Runs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fetch Prow Job Runs this skillopenshift-eng/ai-helpers120—~1.7kAutomated safety check: PassApache-2.0
Technical Job Searchgithub/awesome-copilot40k—~1.2kAutomated safety check: PassMIT
Job Application AssistantMadsLorentzen/ai-job-search45k—~1.2kAutomated safety check: NotesMIT
Job Application Managerreactive-resume/reactive-resume44k—~13kAutomated safety check: PassMIT
Python Background Jobswshobson/agents40k—~1.8kAutomated safety check: PassMIT
LobeHub Data Fetching Layerslobehub/lobehub83k—~1.8kAutomated safety check: PassCustom licence

Similar skills

  • Technical Job Search

    github/awesome-copilot

    Official

    A skill your agent uses when a software engineer asks for help with job search tasks: parsing or analyzing a job description, tailoring a CV/resume, writing a cover letter, evaluating a job offer…

    40k GitHub stars~1.2k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Job Application Assistant

    MadsLorentzen/ai-job-search

    Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.

    45k GitHub stars~1.2k tokensUpdated 2 days ago
    Business, Finance & HRAuto-check: notes
  • Job Application Manager

    reactive-resume/reactive-resume

    Runs the job-search pipeline. An agent skill from reactive-resume/reactive-resume.

    44k GitHub stars~13k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Python Background Jobs

    wshobson/agents

    Python background job patterns including task queues, workers, and event-driven architecture.

    40k GitHub stars~1.8k tokensUpdated 6 days ago
    Backend & APIsAuto-check passed
  • Explains how LobeHub client code fetches data through services, SWR store hooks and cache keys, and when to avoid useEffect fetching or duplicated state.

    83k GitHub stars~1.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Steve Jobs

    sickn33/agentic-awesome-skills

    Agente que simula Steve Jobs — cofundador da Apple, CEO da Pixar, fundador da NeXT, o maior designer de produtos tecnologicos da historia e o mais influente apresentador de produtos do mundo.

    47k GitHub starsUsed in 2 repos~352 tokens
    Auto-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 4 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 4 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 4 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 4 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 4 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 4 days ago
    Auto-check passed

Questions about Fetch Prow Job Runs

What does Fetch Prow Job Runs do?

List Prow job runs from the Sippy API using its real filter syntax — find run IDs by job name, variant, result, or time window. Fetch Prow Job Runs is an agent skill from openshift-eng/ai-helpers.

How do I install Fetch Prow Job Runs in Claude Code?

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

How do I install Fetch Prow Job Runs in Codex?

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

Can I use Fetch Prow Job Runs 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 fetch-prow-job-runs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fetch-prow-job-runs, .gemini/skills/fetch-prow-job-runs, .github/skills/fetch-prow-job-runs and .opencode/skills/fetch-prow-job-runs in your project.

What does Fetch Prow Job Runs need to run?

Going by SKILL.md and its folder, Fetch Prow Job Runs needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Fetch Prow Job Runs access the network?

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

Is Fetch Prow Job Runs 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 Fetch Prow Job Runs use?

Fetch Prow Job Runs 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 Fetch Prow Job Runs use?

About 1.7k tokens (SKILL.md is roughly 6.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 Fetch Prow Job Runs?

Skills that share tags, products or a category with Fetch Prow Job Runs: Technical Job Search (github/awesome-copilot, 40k stars), Job Application Assistant (MadsLorentzen/ai-job-search, 45k stars), Job Application Manager (reactive-resume/reactive-resume, 44k stars) and Python Background Jobs (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fetch Prow Job Runs?

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.