plugins/teams/skills/coderabbit-inheritance-scanner-existing-pr/SKILL.md
Search for an existing fix PR on a repo before opening a new one
npx skillsauth add openshift-eng/ai-helpers coderabbit-inheritance-scanner-existing-prInstall 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.
This skill checks whether a repository already has an open pull request whose title contains "CodeRabbit inheritance" (case-insensitive substring match). Teams sometimes modify PR titles to satisfy merge requirements, so a substring match avoids missing renamed PRs. This prevents duplicate PRs from being opened.
Use this skill as Step 3 of the /teams:coderabbit-inheritance-scanner command, after identifying non-compliant repos. Call it for each non-compliant repo.
For a batch of non-compliant repos, check for existing PRs:
# Input: NON_COMPLIANT_REPOS array of "org/repo" strings
# Output: prints PR status for each repo
for REPO in "${NON_COMPLIANT_REPOS[@]}"; do
# Search for open PRs whose title contains "CodeRabbit inheritance" (case-insensitive)
PR_DATA=$(gh api "repos/${REPO}/pulls" \
-f "state=open" \
-f "per_page=100" \
--jq '[.[] | select(.title | ascii_downcase | contains("coderabbit inheritance"))] | first? | {number: .number, html_url: .html_url, created_at: .created_at} // empty' 2>/dev/null)
if [ -n "$PR_DATA" ]; then
PR_NUMBER=$(echo "$PR_DATA" | jq -r '.number')
PR_URL=$(echo "$PR_DATA" | jq -r '.html_url')
CREATED_AT=$(echo "$PR_DATA" | jq -r '.created_at')
# Calculate days open
CREATED_EPOCH=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" "$CREATED_AT" "+%s" 2>/dev/null || date -d "$CREATED_AT" "+%s" 2>/dev/null)
NOW_EPOCH=$(date "+%s")
DAYS_OPEN=$(( (NOW_EPOCH - CREATED_EPOCH) / 86400 ))
echo "HAS_PR|${REPO}|${PR_URL}|${DAYS_OPEN}"
else
echo "NO_PR|${REPO}||"
fi
sleep 0.3
done
Pipe-separated fields per line:
STATUS|org/repo|pr_url|days_open
Where STATUS is one of:
HAS_PR - An open PR with the expected title was foundNO_PR - No matching open PR existsCOMPLIANT).days_open field helps prioritize follow-up on stale PRs.research
Shared engine for analyzing Jira issue activity and generating status summaries
testing
Snapshot OpenShift payload data (release controller, PR diffs, comments, CI jobs, JUnit results, regression tracking) to a local directory for offline analysis
development
Analyze a payload snapshot to identify root causes of blocking job failures, score candidate PRs, and produce an HTML report with revert recommendations
tools
Create TRT JIRA bugs, open revert PRs, and trigger payload jobs for high-confidence revert candidates