Kiln Check Deprecation
Kiln-AI/Kiln
Check Kiln's model list for deprecated or sunset models across all providers.
Fetch test runs from Sippy API including outputs for AI-based similarity analysis
$ npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openshift-eng/ai-helpers fetch-test-runs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-test-runs .claude/skills/fetch-test-runs && rm -rf skills-srcUse ~/.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/
Install the "fetch-test-runs" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runs into .claude/skills/fetch-test-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fetch-test-runs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openshift-eng/ai-helpers fetch-test-runs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ci/skills/fetch-test-runs .agents/skills/fetch-test-runs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fetch-test-runs" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runs into .agents/skills/fetch-test-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fetch-test-runs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openshift-eng/ai-helpers fetch-test-runs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ci/skills/fetch-test-runs .cursor/skills/fetch-test-runs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fetch-test-runs" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runs into .cursor/skills/fetch-test-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fetch-test-runs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/openshift-eng/ai-helpers.git --path plugins/ci/skills/fetch-test-runs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openshift-eng/ai-helpers fetch-test-runs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ci/skills/fetch-test-runs .gemini/skills/fetch-test-runs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fetch-test-runs" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runs into .gemini/skills/fetch-test-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fetch-test-runs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install openshift-eng/ai-helpers fetch-test-runsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ci/skills/fetch-test-runs .github/skills/fetch-test-runs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fetch-test-runs" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runs into .github/skills/fetch-test-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fetch-test-runs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openshift-eng/ai-helpers fetch-test-runs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ci/skills/fetch-test-runs .opencode/skills/fetch-test-runs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fetch-test-runs" agent skill from https://github.com/openshift-eng/ai-helpers/tree/main/plugins/ci/skills/fetch-test-runs into .opencode/skills/fetch-test-runs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fetch-test-runs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fetch-test-runsFetch test runs from Sippy API including outputs for AI-based similarity analysis
Fetch Test Runs is an agent skill from openshift-eng/ai-helpers. Fetch test runs from Sippy API including outputs for AI-based similarity analysis
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `README.md` and `fetch_test_runs.py`).
It works with Python and Google Cloud. The repository describes itself as: Developer productivity tools for Claude Code & other AI assistants. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a627176. It shows what the files ask for, not the result of running them.
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.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3jqcurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
prow.ci.openshift.orgsippy.dptools.openshift.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fetch Test Runs loads about 3.9k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 905 words of instructions outside code blocks.
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.
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.
The full file from openshift-eng/ai-helpers at commit a627176, republished under its Apache-2.0 licence (© openshift-eng). 905 words, ~3,907 tokens.
.claude/skills/fetch-test-runs/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill fetches test runs from the Sippy API. It can return both failed and successful test runs, including JUnit output for AI-based analysis.
Use this skill when you need to:
Network Access: Must be able to reach the Sippy test runs API
curl -s https://sippy.dptools.openshift.org/api/tests/v2/runs?test_id=testPython 3: Python 3.6 or later
python3 --versionInput Data: Requires test_id (job_run_ids are optional)
fetch-regression-details skill outputtest_id: Found in regression data (e.g., "openshift-tests:71c053c318c11cfc47717b9cf711c326")job_run_ids: Optional - extracted from sample_failed_jobs[].failed_runs[].job_run_id# Path to the Python script
script_path="plugins/ci/skills/fetch-test-runs/fetch_test_runs.py"
# Fetch all test runs (failures only, by default)
python3 "$script_path" "$test_id" --format json
# Include successful runs as well
python3 "$script_path" "$test_id" --include-success --format json
# Filter to a specific Prow job (exact name works as substring of itself)
python3 "$script_path" "$test_id" --job-contains "periodic-ci-openshift-release-..." --format json
# Filter by multiple substrings (AND logic, case-insensitive, server-side)
python3 "$script_path" "$test_id" --job-contains gcp --job-contains techpreview --format json
# Filter to specific job run IDs (backward compatible with analyze-regression)
python3 "$script_path" "$test_id" "$job_run_ids" --format json
# Get human-readable summary
python3 "$script_path" "$test_id" --format summaryArguments:
test_id: Required test identifier (e.g., "openshift-tests:abc123")job_run_ids: Optional comma-separated list of Prow job run IDs to filter byOptions:
--include-success: Include successful test runs (default: failures only)--job-contains <name>: Filter by job name substring (server-side, case-insensitive). Repeatable for AND logic — all substrings must appear in the job name. Full job names also work since they are substrings of themselves. E.g., --job-contains gcp --job-contains techpreview matches jobs containing both "gcp" and "techpreview".--start-days-ago <days>: Number of days to look back (default API is 7 days)--exclude-output: Strip the output field from each run to reduce response size. Use when you only need pass/fail status (e.g., regression start analysis). Significantly reduces JSON output size for large result sets.--output <path>: Write output to a file instead of stdout. Use when fetching large result sets (e.g., --include-success --start-days-ago 28) that may exceed stdout buffer limits. The script prints a summary line to stderr confirming the write.--format json|summary: Output format (default: json)When used with regression analysis, extract required data from regression details:
# Assuming you have regression_data from fetch-regression-details skill
test_id=$(echo "$regression_data" | jq -r '.test_id')
# Collect all job_run_ids from sample_failed_jobs
# This creates a comma-separated list of all failed job run IDs
job_run_ids=$(echo "$regression_data" | jq -r '
.sample_failed_jobs
| to_entries[]
| .value.failed_runs[]
| .job_run_id
' | tr '\n' ',' | sed 's/,$//')
echo "Test ID: $test_id"
echo "Job Run IDs: $job_run_ids"The script outputs structured JSON data:
# Store JSON output for processing
output_data=$(python3 "$script_path" "$test_id" --format json)
# Check if fetch was successful
success=$(echo "$output_data" | jq -r '.success')
if [ "$success" = "true" ]; then
# Extract runs array
runs=$(echo "$output_data" | jq -r '.runs')
# The runs array contains objects with: url, output, test_name, success
# The AI command will analyze these runs for similarity
echo "Fetched $(echo "$runs" | jq 'length') runs"
else
# Handle error case
error=$(echo "$output_data" | jq -r '.error')
echo "Error: $error"
echo "Test runs API may not be available"
fiThe Sippy API returns a JSON array of test run objects:
[
{
"url": "https://prow.ci.openshift.org/view/gs/test-platform-results-public/logs/periodic-ci-openshift-release-master-ci-4.22-e2e-aws-ovn-techpreview/2016123858595090432",
"output": "fail [k8s.io/kubernetes/test/e2e/apimachinery/discovery.go:145]: Fail to access: /apis/stable.e2e-validating-admission-policy-1181/: the server could not find the requested resource",
"test_name": "[sig-api-machinery] Discovery should validate PreferredVersion for each APIGroup [Conformance]",
"success": false,
"failed_tests": 3
},
{
"url": "https://prow.ci.openshift.org/view/gs/test-platform-results-public/logs/...",
"output": "",
"test_name": "[sig-api-machinery] Discovery should validate PreferredVersion for each APIGroup [Conformance]",
"success": true,
"failed_tests": 0
}
]The script supports two output formats:
Returns structured JSON with raw runs:
{
"success": true,
"test_id": "openshift-tests:71c053c318c11cfc47717b9cf711c326",
"requested_job_runs": 0,
"include_success": false,
"job_name_filters": ["gcp", "techpreview"],
"runs": [
{
"url": "https://prow.ci.openshift.org/...",
"output": "fail [...]: error message",
"test_name": "[sig-api-machinery] test name",
"success": false,
"failed_tests": 3
}
],
"api_url": "https://sippy.dptools.openshift.org/api/tests/v2/runs?test_id=...&prowjob_name=gcp&prowjob_name=techpreview"
}Field Descriptions:
failed_tests > 10, this is a mass failure job — the test may be caught up in a larger issue (e.g., infrastructure failure, installer failure) that needs further investigation to root cause. When many runs show mass failures, the regression may not be caused by a change specific to this test.Error Response (when success is false):
{
"success": false,
"error": "Failed to connect to test runs API: Connection refused",
"test_id": "openshift-tests:abc123",
"requested_job_runs": 0,
"include_success": false,
"job_name_filters": null
}Returns human-readable formatted output with sample runs:
Test Runs
============================================================
Test ID: openshift-tests:71c053c318c11cfc47717b9cf711c326
Job Contains: ['gcp', 'techpreview']
Include Successes: False
Runs Fetched: 18
Successes: 0, Failures: 18
Mass Failure Runs (>10 test failures in job): 4 of 18
⚠ These runs had many other test failures — this test may be caught up in a larger issue.
Sample Runs:
1. [FAIL] Job URL: https://prow.ci.openshift.org/view/gs/test-platform-results-public/logs/...
Failed Tests in Job: 3
Output: fail [k8s.io/kubernetes/test/e2e/apimachinery/discovery.go:145]: Fail to access...
2. [FAIL] [MASS FAILURE] Job URL: https://prow.ci.openshift.org/view/gs/test-platform-results-public/logs/...
Failed Tests in Job: 47
Output: fail [k8s.io/kubernetes/test/e2e/apimachinery/discovery.go:145]: Fail to access...
3. [PASS] Job URL: https://prow.ci.openshift.org/view/gs/test-platform-results-public/logs/...
... and 15 more runspython3 fetch_test_runs.py "openshift-tests:abc"Output (JSON format):
{
"success": false,
"error": "Failed to connect to test runs API: Connection refused.",
"test_id": "openshift-tests:abc",
"requested_job_runs": 0,
"include_success": false,
"job_name_filters": null
}Output (summary format):
Test Runs - FETCH FAILED
============================================================
Error: Failed to connect to test runs API: Connection refused.
The test runs API may not be available.If the API returns an empty array:
{
"success": true,
"test_id": "openshift-tests:abc",
"requested_job_runs": 0,
"include_success": false,
"job_name_filters": null,
"runs": []
}python3 fetch_test_runs.pyOutput:
Usage: fetch_test_runs.py <test_id> [job_run_ids] [options]
Arguments:
test_id Test identifier (e.g., 'openshift-tests:abc123')
job_run_ids Optional comma-separated list of Prow job run IDs
Options:
--include-success Include successful test runs (default: failures only)
--job-contains Filter by job name substring (repeatable for AND logic)
--exclude-output Strip output text from runs to reduce response size
--output <path> Write output to file instead of stdout
--format json|summary Output format (default: json)Exit Codes:
0: Success1: Error (invalid input, API error, network error, etc.)script_path="plugins/ci/skills/fetch-test-runs/fetch_test_runs.py"
python3 "$script_path" "openshift-tests:bb3a7d828630760296ef203c5cacf708" --format jsonscript_path="plugins/ci/skills/fetch-test-runs/fetch_test_runs.py"
python3 "$script_path" "openshift-tests:bb3a7d828630760296ef203c5cacf708" --include-success --format jsonUsed by analyze-regression command:
# Assume regression_data is already fetched
test_id=$(echo "$regression_data" | jq -r '.test_id')
job_run_ids=$(echo "$regression_data" | jq -r '.sample_failed_jobs | to_entries[] | .value.failed_runs[] | .job_run_id' | tr '\n' ',' | sed 's/,$//')
# Fetch outputs for specific job runs
script_path="plugins/ci/skills/fetch-test-runs/fetch_test_runs.py"
output_data=$(python3 "$script_path" "$test_id" "$job_run_ids" --format json)
# Check success
if [ "$(echo "$output_data" | jq -r '.success')" = "true" ]; then
echo "Successfully fetched runs"
fipython3 plugins/ci/skills/fetch-test-runs/fetch_test_runs.py \
"openshift-tests:71c053c318c11cfc47717b9cf711c326" \
--format summary# Fetch runs
output_data=$(python3 "$script_path" "$test_id" --format json)
# Extract all failure output messages
if [ "$(echo "$output_data" | jq -r '.success')" = "true" ]; then
# Get all output texts from failed runs
echo "$output_data" | jq -r '.runs[] | select(.success == false) | .output'
# AI command will analyze these for:
# - Similarity/consistency
# - Common error patterns
# - File references and API paths
# - Root cause determination
fiFilter to runs from jobs matching multiple criteria (e.g., GCP + techpreview):
script_path="plugins/ci/skills/fetch-test-runs/fetch_test_runs.py"
# Get only GCP techpreview runs (both substrings must match, server-side)
python3 "$script_path" "openshift-tests:abc123" --include-success \
--job-contains gcp --job-contains techpreview \
--start-days-ago 28 --format json
# Get only metal upgrade runs
python3 "$script_path" "openshift-tests:abc123" \
--job-contains metal --job-contains upgrade \
--format summary
# Full job name also works (it's a substring of itself)
python3 "$script_path" "openshift-tests:abc123" \
--job-contains "periodic-ci-openshift-release-master-nightly-4.22-e2e-gcp-ovn-techpreview" \
--format jsonUsed by analyze-regression command to find when failures began:
script_path="plugins/ci/skills/fetch-test-runs/fetch_test_runs.py"
# Get the job with the most failures
most_failed_job="periodic-ci-openshift-release-master-nightly-4.22-e2e-metal-ipi-ovn"
# Fetch all runs (including successes) for this specific job, going back 28 days
job_history=$(python3 "$script_path" "$test_id" \
--include-success \
--job-contains "$most_failed_job" \
--start-days-ago 28 \
--format json)
# Analyze the run history
if [ "$(echo "$job_history" | jq -r '.success')" = "true" ]; then
# Runs are returned newest to oldest
# Iterate to find where failures started
echo "$job_history" | jq -r '.runs[] | "\(.success) \(.url)"'
# Look for transition from passing to failing
# Find the first failure that's part of the current regression
fisuccess: false and a descriptive error message--include-success allows analyzing both passing and failing runs--job-contains filters results server-side using case-insensitive substring matching. Repeat for AND logic (all substrings must appear in the job name). Full job names work too since they are substrings of themselves.--start-days-ago allows looking back further than the default 7 days (e.g., --start-days-ago 28)--include-success, --job-contains, and --start-days-ago to get full test history for regression analysisfailed_tests count — the total number of tests that failed in that job. If failed_tests > 10, it indicates a mass failure job where many tests failed together, suggesting the test may be caught up in a larger issue (infrastructure failure, installer failure, etc.) rather than a regression specific to this testfetch-regression-details (provides test_id and job_run_ids)/ci:analyze-regression (uses this skill for failure analysis)© 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
SKILL.md and 2 other files in plugins/ci/skills/fetch-test-runs of openshift-eng/ai-helpers.
Open the folder on GitHubat commit a627176
Fetch Test 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fetch Test Runs this skillopenshift-eng/ai-helpers | 120 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Kiln Check DeprecationKiln-AI/Kiln | 5.2k | — | ~2.5k | Automated safety check: Notes | Custom licence | |
| Kiln Check Finetune DeprecationKiln-AI/Kiln | 5.2k | — | ~1.9k | Automated safety check: Notes | Custom licence | |
| Retail Product Search Agentgoogle/adk-recipes | 10k | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Agent Platform Skill Registrygoogle/skills | 21k | — | ~584 | Automated safety check: Pass | Apache-2.0 | |
| ContributingGoogleCloudPlatform/race-condition | 234 | — | ~930 | Automated safety check: Pass | Custom licence |
Kiln-AI/Kiln
Check Kiln's model list for deprecated or sunset models across all providers.
Kiln-AI/Kiln
Check Kiln's fine-tunable model list for deprecated or unsupported base models.
google/adk-recipes
Builds a retail product search agent on Google Cloud, from catalog ingestion into BigQuery and Vector Search to ADK scaffolding, evaluation and Cloud Run deployment.
google/skills
Searches, manages and scaffolds skills in the Gemini Enterprise Agent Platform Skill Registry using bundled Python scripts and Google Cloud credentials.
GoogleCloudPlatform/race-condition
Guides the developer workflow for contributing to Race Condition.
google/skills
Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.
openshift-eng/ai-helpers
Find and independently validate actionable reliability defects across OpenShift release jobs and presubmits, then export portable issue handoffs.
openshift-eng/ai-helpers
Fetch and address all PR review comments — categorize by priority, make code changes, post replies, and push.
openshift-eng/ai-helpers
Categorize Jira issues into Red Hat Sankey Activity Type categories using MCP Jira tools.
openshift-eng/ai-helpers
Decide whether a GitHub PR has unanswered authorized review comments or new required CI failures worth a follow-up agent.
openshift-eng/ai-helpers
Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components.
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
Works with
Fetch test runs from Sippy API including outputs for AI-based similarity analysis. Fetch Test Runs is an agent skill from openshift-eng/ai-helpers.
Run `npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a claude-code`. Or copy the skill folder (plugins/ci/skills/fetch-test-runs in openshift-eng/ai-helpers) into .claude/skills/fetch-test-runs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openshift-eng/ai-helpers --skill fetch-test-runs -a codex`. Or copy the skill folder (plugins/ci/skills/fetch-test-runs in openshift-eng/ai-helpers) into .agents/skills/fetch-test-runs in your project. Codex loads it when a task matches its description.
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-test-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-test-runs, .gemini/skills/fetch-test-runs, .github/skills/fetch-test-runs and .opencode/skills/fetch-test-runs in your project.
Going by SKILL.md and its folder, Fetch Test Runs needs Python for the scripts in its folder and the command-line tools its instructions call (python3, jq and curl). Our summary lists: Python 3.
SKILL.md names 2 domains. In commands or code: prow.ci.openshift.org and sippy.dptools.openshift.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
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.
Fetch Test 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.
About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fetch Test Runs: Kiln Check Deprecation (Kiln-AI/Kiln, 5.2k stars), Kiln Check Finetune Deprecation (Kiln-AI/Kiln, 5.2k stars), Retail Product Search Agent (google/adk-recipes, 10k stars) and Agent Platform Skill Registry (google/skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.