plugins/ci/skills/fetch-related-triages/SKILL.md
Fetch existing triages and untriaged regressions related to a given regression
npx skillsauth add openshift-eng/ai-helpers fetch-related-triagesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Queries the Sippy API to find existing triage records and untriaged regressions that may be related to a given Component Readiness regression. The API matches based on similarly named tests and shared job runs (using the complete job_runs history tracked across each regression's entire lifetime).
GET https://sippy.dptools.openshift.org/api/component_readiness/regressions/{id}/matches
No authentication required (uses production Sippy URL).
# Fetch all related triages (default: all confidence levels)
python3 plugins/ci/skills/fetch-related-triages/fetch_related_triages.py 35479
# Filter to high confidence matches only
python3 plugins/ci/skills/fetch-related-triages/fetch_related_triages.py 35479 --min-confidence 5
# Human-readable summary
python3 plugins/ci/skills/fetch-related-triages/fetch_related_triages.py 35479 --format summary
regression_id (required): The Component Readiness regression ID--min-confidence (optional): Minimum confidence level to include (1-10, default: 1)--format (optional): Output format — json (default) or summaryThe API assigns a confidence level (1-10) to each match:
job_runs history tracked across each regression's lifetime), which may indicate a shared root cause but could be coincidental in mass failure scenarios{
"success": true,
"regression_id": 35479,
"triaged_matches": [
{
"triage_id": 370,
"triage_ui_url": "https://sippy-auth.dptools.openshift.org/sippy-ng/component_readiness/triages/370",
"jira_key": "OCPBUGS-76612",
"jira_url": "https://redhat.atlassian.net/browse/OCPBUGS-76612",
"jira_status": "New",
"jira_summary": "Component Readiness: [Networking / ovn-kubernetes] ...",
"triage_type": "test",
"triage_description": "...",
"confidence_level": 10,
"regressions_on_triage": [
{
"id": 35217,
"test_name": "...",
"test_id": "...",
"component": "Networking / ovn-kubernetes",
"variants": ["..."],
"opened": "...",
"closed": null,
"triages": null,
"last_failure": "..."
}
]
}
],
"untriaged_regressions": [
{
"id": 35480,
"test_name": "...",
"test_id": "...",
"component": "...",
"variants": ["..."],
"opened": "...",
"closed": null,
"triages": null,
"last_failure": "...",
"match_reason": "similarly_named_test",
"edit_distance": 1
}
]
}
match_reason field:
similarly_named_test: Matched by test name edit distance (lower edit_distance = more similar)same_last_failure: Matched by sharing the same job runs (identified via the job_runs history tracked across each regression's lifetime)The API uses two strategies to find related triages:
Similarly named tests: Compares the regression's test name against test names on existing triages using edit distance. An edit distance of 0 means the same test name (different variants); 1-2 means very similar test names (e.g., L2 vs L3 variant of the same test).
Shared job runs: Finds regressions that were observed in the same job runs. The regression data now includes a complete job_runs list covering all runs where the failure was observed throughout the regression's entire life (not just the last reporting period). Sippy uses this data to find other regressions that failed in the same Prow job runs, which is a strong signal they share the same root cause (e.g., a mass CI infrastructure failure or a broad product regression). Regressions with high test_failures counts in their shared runs are more likely to be collateral damage from a larger issue.
untriaged_regressionstesting
Snapshot OpenShift payload data (release controller, PR diffs, comments, CI jobs, JUnit results, regression tracking) to a local directory for offline analysis
research
Shared engine for analyzing Jira issue activity and generating status summaries
tools
This skill should be used before any Snowflake command to verify MCP connectivity, guide users through access provisioning, and set the session context. Invoke this skill proactively whenever a command needs Snowflake data access.
development
Analyze a payload snapshot to identify root causes of blocking job failures, score candidate PRs, and produce an HTML report with revert recommendations