PR Review Auditor
Evaluate whether a PR review's claims are justified by evidence and stay within PR scope.
Invocation
/pr-audit # Prompts for review text
/pr-audit --with-diff # Also provide PR diff for verification
Purpose
Find false positives, overstated claims, and non-evidence-based assertions in a PR review.
This tool does NOT re-review the PR; it evaluates whether the review's claims are justified and whether the reviewer is asking for work that belongs outside the PR.
Input
Provide:
- Review to audit (required): The PR review text to audit
- PR diff (optional): If provided, enables verification of code-specific claims
- Requirements pack (optional but recommended): If provided, enables scope checks against issue criteria, constraints, and non-goals
Audit Rules
1. Evidence Standard
- If review references specific code behavior, lines, or files, it must be supported by the PR diff
- If no diff provided, mark such claims "Not verifiable" rather than "false" (unless internally inconsistent)
2. False Positive Definition
A "false positive" is any of:
- Claim incorrect given provided evidence
- Claim presented as fact but not supported by evidence
- Overconfident phrasing without proof
- Speculation masquerading as certainty
- Logical error or mismatch between evidence and conclusion
3. Confidence-Language Violations
Flag as [Overstated] unless directly supported by cited code evidence:
- "correctly"
- "validated"
- "applied consistently"
- "high confidence"
- "fundamentally sound"
- "safe"
- "robust"
- "fully prevents"
- "guarantees"
Absence of evidence = classify as [Overstated] or [Unsubstantiated], not [Correct].
4. Fairness
- If claim might be true but isn't supported, label "Unsubstantiated" (not "Incorrect")
- Use precise language: "unverified", "overstated", "speculative", "missing evidence", "internally inconsistent"
5. Actionability
For every false-positive candidate, propose:
- A tighter, defensible rewrite
- The exact evidence needed to validate the original claim
6. Scope Discipline
- If a finding asks for work unrelated to the linked issue, PR purpose, touched behavior, or a credible regression from the diff, mark it as out of scope.
- Example: a PR adding a refresh button can justify findings about button behavior, regressions, or stated performance requirements; asking for a new diagnostics page to measure refresh speed is out of scope unless instrumentation was part of the issue/PR.
7. Verification Before Escalation
- Blockers and strong recommendations must be backed by concrete evidence, repro steps, a missing required behavior, or an explicit validation gap tied to scope.
- If the concern is plausible but not verified, downgrade it to a question or follow-up validation task rather than endorsing it as a blocker.
Output Format
<audit_report>
<audit_summary>
- [3-6 bullets on: overall reliability, degree of overconfidence, most serious false-positive risks]
</audit_summary>
<false_positive_candidates>
<item>
<claim>[Exact quote from review]</claim>
<classification>[Incorrect | Unsubstantiated | Overstated | Speculative | Internally inconsistent]</classification>
<why>
- [1-3 bullets explaining the issue]
</why>
<evidence_check>[Cite diff snippet or "No diff provided"]</evidence_check>
<better_phrasing>[Conservative rewrite]</better_phrasing>
<what_to_ask_for>[Exact file/line/snippet needed to verify]</what_to_ask_for>
</item>
</false_positive_candidates>
<blocker_sanity_check>
<blocker>
<claim>[Blocker from review]</claim>
<truly_blocking>[Yes | No | Unclear]</truly_blocking>
<scope_status>[In scope | Out of scope | Unclear]</scope_status>
<verification_status>[Verified | Not verifiable | Contradicted]</verification_status>
<notes>[Tight, factual notes]</notes>
</blocker>
</blocker_sanity_check>
<scope_violations>
- [Review finding]: asks for work outside the issue/PR scope
</scope_violations>
<verification_gaps>
- [Review finding]: escalated without concrete evidence or a real repro
</verification_gaps>
<missing_context_requests>
- [Minimal list of PR snippets required to verify disputed claims]
- [Prioritize blocker claims, scope disputes, and exploit-related claims]
</missing_context_requests>
<cleaned_review_snippet>
[Rewrite of the review's summary section with:
- No unverifiable certainty
- No global correctness claims
- Explicit uncertainty where appropriate]
</cleaned_review_snippet>
</audit_report>
Process
- List strongest confidence statements from the review
- Check each for evidence support
- Audit each blocker:
- Is it actually blocking given stated requirements and changed behavior?
- Is it in scope for this PR, or is it reviewer preference / unrelated follow-up work?
- Does repro logically demonstrate the issue?
- Does proposed fix address the stated problem?
- Check major suggestions and follow-ups:
- Are they in scope?
- Are they verified strongly enough for their stated severity?
- Check for internal contradictions (e.g., "epsilon applied consistently" vs later complaints about epsilon behavior)
Classification Guide
| Classification |
When to Use |
| Incorrect |
Claim contradicted by provided evidence |
| Unsubstantiated |
Claim might be true but no evidence supports it |
| Overstated |
Claim uses confidence language without sufficient basis |
| Speculative |
Claim about potential issues without concrete repro |
| Internally inconsistent |
Claim contradicts other claims in the same review |
Examples
Example 1: Overstated Claim
Input claim: "Guard conditions: Input/output amounts validated as positive, ratios validated as finite, epsilon threshold (1e-8) applied consistently"
Audit:
- Classification: Overstated
- Why:
- Multiple factual assertions bundled into one statement
- "Applied consistently" is a global claim requiring proof across all code paths
- Better phrasing: "I see positive/finiteness checks in the cycle-analysis path shown, but I haven't verified all ratio comparisons use EPS consistently."
- Ask for: "Paste all ratio comparison sites (profit detection + cycle validation) to verify EPS usage."
Example 2: Unsubstantiated Claim
Input claim: "Correctly uses N iterations of Bellman-Ford to detect negative-weight cycles"
Audit:
- Classification: Unsubstantiated
- Why:
- "Correctly" implies validation of iteration count, initialization, and termination
- No supporting code cited
- Better phrasing: "Implements a Bellman-Ford-style relaxation loop; iteration count and cycle reconstruction need confirmation."
- Ask for: "findNetPositiveCycle implementation including loop bounds and predecessor handling."
Example 3: Out-of-Scope Review Ask
Input claim: "This refresh-button PR should add a diagnostics page so we can measure refresh speed."
Audit:
- Classification: Unsubstantiated
- Why:
- The requested diagnostics page is a net-new surface, not a defect in the changed refresh-button behavior
- Unless the issue/PR explicitly includes instrumentation or perf tooling, this is scope drift
- Better phrasing: "If refresh performance is a stated requirement, request a concrete validation step for the button path; otherwise do not block on unrelated diagnostics UI."
- Ask for: "Linked issue text or PR description showing diagnostics/performance instrumentation is in scope."
1---2name: pr-audit3description: Audit a PR review for false positives, scope drift, overstated claims, and unsubstantiated assertions. Use when: (1) User runs `/pr-audit`, (2) User asks to "audit" or "check" a review, (3) User wants to find false positives or verify claims in a review, (4) User provides a review and asks if claims are justified. Does NOT re-review the PR; evaluates whether the review's claims are supported by evidence.4---56# PR Review Auditor78Evaluate whether a PR review's claims are justified by evidence and stay within PR scope.910## Invocation1112```13/pr-audit # Prompts for review text14/pr-audit --with-diff # Also provide PR diff for verification15```1617## Purpose1819Find false positives, overstated claims, and non-evidence-based assertions in a PR review.20This tool does NOT re-review the PR; it evaluates whether the review's claims are justified and whether the reviewer is asking for work that belongs outside the PR.2122## Input2324Provide:251. **Review to audit** (required): The PR review text to audit262. **PR diff** (optional): If provided, enables verification of code-specific claims273. **Requirements pack** (optional but recommended): If provided, enables scope checks against issue criteria, constraints, and non-goals2829## Audit Rules3031### 1. Evidence Standard3233- If review references specific code behavior, lines, or files, it must be supported by the PR diff34- If no diff provided, mark such claims "Not verifiable" rather than "false" (unless internally inconsistent)3536### 2. False Positive Definition3738A "false positive" is any of:39- Claim incorrect given provided evidence40- Claim presented as fact but not supported by evidence41- Overconfident phrasing without proof42- Speculation masquerading as certainty43- Logical error or mismatch between evidence and conclusion4445### 3. Confidence-Language Violations4647Flag as [Overstated] unless directly supported by cited code evidence:48- "correctly"49- "validated"50- "applied consistently"51- "high confidence"52- "fundamentally sound"53- "safe"54- "robust"55- "fully prevents"56- "guarantees"5758Absence of evidence = classify as [Overstated] or [Unsubstantiated], not [Correct].5960### 4. Fairness6162- If claim might be true but isn't supported, label "Unsubstantiated" (not "Incorrect")63- Use precise language: "unverified", "overstated", "speculative", "missing evidence", "internally inconsistent"6465### 5. Actionability6667For every false-positive candidate, propose:681. A tighter, defensible rewrite692. The exact evidence needed to validate the original claim7071### 6. Scope Discipline7273- If a finding asks for work unrelated to the linked issue, PR purpose, touched behavior, or a credible regression from the diff, mark it as out of scope.74- Example: a PR adding a refresh button can justify findings about button behavior, regressions, or stated performance requirements; asking for a new diagnostics page to measure refresh speed is out of scope unless instrumentation was part of the issue/PR.7576### 7. Verification Before Escalation7778- Blockers and strong recommendations must be backed by concrete evidence, repro steps, a missing required behavior, or an explicit validation gap tied to scope.79- If the concern is plausible but not verified, downgrade it to a question or follow-up validation task rather than endorsing it as a blocker.8081## Output Format8283```xml84<audit_report>85 <audit_summary>86 - [3-6 bullets on: overall reliability, degree of overconfidence, most serious false-positive risks]87 </audit_summary>8889 <false_positive_candidates>90 <item>91 <claim>[Exact quote from review]</claim>92 <classification>[Incorrect | Unsubstantiated | Overstated | Speculative | Internally inconsistent]</classification>93 <why>94 - [1-3 bullets explaining the issue]95 </why>96 <evidence_check>[Cite diff snippet or "No diff provided"]</evidence_check>97 <better_phrasing>[Conservative rewrite]</better_phrasing>98 <what_to_ask_for>[Exact file/line/snippet needed to verify]</what_to_ask_for>99 </item>100 </false_positive_candidates>101102 <blocker_sanity_check>103 <blocker>104 <claim>[Blocker from review]</claim>105 <truly_blocking>[Yes | No | Unclear]</truly_blocking>106 <scope_status>[In scope | Out of scope | Unclear]</scope_status>107 <verification_status>[Verified | Not verifiable | Contradicted]</verification_status>108 <notes>[Tight, factual notes]</notes>109 </blocker>110 </blocker_sanity_check>111112 <scope_violations>113 - [Review finding]: asks for work outside the issue/PR scope114 </scope_violations>115116 <verification_gaps>117 - [Review finding]: escalated without concrete evidence or a real repro118 </verification_gaps>119120 <missing_context_requests>121 - [Minimal list of PR snippets required to verify disputed claims]122 - [Prioritize blocker claims, scope disputes, and exploit-related claims]123 </missing_context_requests>124125 <cleaned_review_snippet>126 [Rewrite of the review's summary section with:127 - No unverifiable certainty128 - No global correctness claims129 - Explicit uncertainty where appropriate]130 </cleaned_review_snippet>131</audit_report>132```133134## Process1351361. **List strongest confidence statements** from the review1372. **Check each for evidence support**1383. **Audit each blocker**:139 - Is it actually blocking given stated requirements and changed behavior?140 - Is it in scope for this PR, or is it reviewer preference / unrelated follow-up work?141 - Does repro logically demonstrate the issue?142 - Does proposed fix address the stated problem?1434. **Check major suggestions and follow-ups**:144 - Are they in scope?145 - Are they verified strongly enough for their stated severity?1465. **Check for internal contradictions** (e.g., "epsilon applied consistently" vs later complaints about epsilon behavior)147148## Classification Guide149150| Classification | When to Use |151|---------------|-------------|152| **Incorrect** | Claim contradicted by provided evidence |153| **Unsubstantiated** | Claim might be true but no evidence supports it |154| **Overstated** | Claim uses confidence language without sufficient basis |155| **Speculative** | Claim about potential issues without concrete repro |156| **Internally inconsistent** | Claim contradicts other claims in the same review |157158## Examples159160### Example 1: Overstated Claim161162**Input claim**: "Guard conditions: Input/output amounts validated as positive, ratios validated as finite, epsilon threshold (1e-8) applied consistently"163164**Audit**:165- Classification: Overstated166- Why:167 - Multiple factual assertions bundled into one statement168 - "Applied consistently" is a global claim requiring proof across all code paths169- Better phrasing: "I see positive/finiteness checks in the cycle-analysis path shown, but I haven't verified all ratio comparisons use EPS consistently."170- Ask for: "Paste all ratio comparison sites (profit detection + cycle validation) to verify EPS usage."171172### Example 2: Unsubstantiated Claim173174**Input claim**: "Correctly uses N iterations of Bellman-Ford to detect negative-weight cycles"175176**Audit**:177- Classification: Unsubstantiated178- Why:179 - "Correctly" implies validation of iteration count, initialization, and termination180 - No supporting code cited181- Better phrasing: "Implements a Bellman-Ford-style relaxation loop; iteration count and cycle reconstruction need confirmation."182- Ask for: "findNetPositiveCycle implementation including loop bounds and predecessor handling."183184### Example 3: Out-of-Scope Review Ask185186**Input claim**: "This refresh-button PR should add a diagnostics page so we can measure refresh speed."187188**Audit**:189- Classification: Unsubstantiated190- Why:191 - The requested diagnostics page is a net-new surface, not a defect in the changed refresh-button behavior192 - Unless the issue/PR explicitly includes instrumentation or perf tooling, this is scope drift193- Better phrasing: "If refresh performance is a stated requirement, request a concrete validation step for the button path; otherwise do not block on unrelated diagnostics UI."194- Ask for: "Linked issue text or PR description showing diagnostics/performance instrumentation is in scope."