with one click
review-pr
// Review PR with structured approach covering architecture, naming, patterns, and critical questions
// Review PR with structured approach covering architecture, naming, patterns, and critical questions
Resolve a CVE vulnerability issue from Jira. Reads the CVE details, assesses impact, and either marks "not affected" with a Jira comment and transition, bumps the affected dependency, or implements a code fix. Use when the user says "cve", "resolve CVE", or provides a CVE Jira issue.
Assess whether an application is ready to migrate to OpenShift. Use when the user describes an application and asks about migration, containerization, or moving to Kubernetes/OpenShift.
Triage production incidents involving data corruption, data loss, slow performance, or outages. Classify severity and recommend immediate actions.
Update Python dependencies to latest versions using uv, regenerate lock and requirements.txt, then verify linting and tests pass. Fix breakage from API changes in bumped packages. Use when the user says "deps update", "bump dependencies", or "update deps".
Troubleshoot ClusterOperator in Degraded, Unavailable, or not Progressing state. Use when operator status shows error conditions, reconciliation failures, or degraded health checks.
Troubleshoot namespace stuck in Terminating state, ResourceQuota exhaustion, or RBAC permission denied errors. Use when resources cannot be created or forbidden errors occur.
| name | review-pr |
| description | Review PR with structured approach covering architecture, naming, patterns, and critical questions |
| disable-model-invocation | true |
When asked to review a PR, follow this structured approach.
Always fetch the latest PR state before reviewing. The cached PR data may be stale.
git fetch upstream pull/<PR_NUMBER>/head:pr-<PR_NUMBER>
git log pr-<PR_NUMBER> --oneline -10
git diff upstream/main...pr-<PR_NUMBER> --stat
For follow-up reviews, re-fetch to get new commits:
git fetch upstream pull/<PR_NUMBER>/head:pr-<PR_NUMBER> --force
Read diffs per area (endpoints, models, utils, tests) rather than one massive diff.
Only raise issues if you have a concrete concern — not as a checklist to fill:
Skip this section if nothing stands out.
Only flag naming if it is genuinely misleading or inconsistent with established patterns in the codebase. Do not flag stylistic preferences or minor wording variations.
Only flag if the pattern causes a real problem (correctness, type safety, maintainability), not just because an alternative exists:
Any used where a concrete type is knowableSkip this section if nothing meaningful to flag.
Only ask questions where the answer is genuinely unclear from the code and matters for correctness or design. Do not manufacture questions for completeness.
Skip this section if the design is clear and the concerns above don't apply.
Before writing the final output, launch one subagent per candidate issue to confirm it is real. Do this in parallel for all issues found in sections 3–6.
Each subagent task should:
foo.py lines 40-55 and any callers.")After all subagents complete:
This step exists to filter out false positives before they reach the output. Do not skip it when there are candidate issues.
Structure the review as: