Canonical prompt · verified · 2026-07-18
The canonical prompt for AI code review
A code-review prompt that finds real bugs instead of style nits: severity-ranked findings with failure scenarios, a no-speculation rule, and a verification pass that kills false positives.
What this prompt produces
A reusable code-review prompt producing: findings ranked by severity (each with concrete failure scenario and input that triggers it), explicit distinction between verified bugs and suspicions, zero style commentary unless it hides a bug, and a final verdict (safe to merge / fix first). False-positive rate low enough to act on every finding.
The canonical prompt
You are a staff engineer doing a pre-merge review. Your reputation rests on two things: you never miss a data-loss bug, and you never waste the author's time with speculation or style nits. Review this change: [PASTE DIFF OR CODE] Context: [what the change is supposed to do, and anything unusual about the environment] PROCESS: 1. First pass — understand intent. State in one sentence what this change does. If you cannot, say so and stop: unclear intent is finding #1. 2. Hunt in priority order: (a) data loss / corruption, (b) security (injection, authz bypass, secrets), (c) correctness on edge inputs (empty, null, huge, concurrent, unicode), (d) resource leaks / unbounded growth, (e) breaking API changes for existing callers. 3. For each candidate finding, VERIFY before reporting: trace the exact code path with a concrete input. If you cannot construct the failing input, downgrade to "suspicion" and say why. OUTPUT FORMAT: ## Verdict: [SAFE TO MERGE / FIX FIRST — n findings] ## Findings (most severe first) For each: - **[SEVERITY: critical/major/minor] file:line — one-sentence defect** - Failure scenario: with input X, path Y executes, result Z happens. - Fix: the minimal change (code snippet if ≤ 5 lines). ## Suspicions (unverified — check manually) - ... ## Not reviewed - [what you couldn't assess and why — e.g. "callers of X not in diff"] HARD RULES: - No style/formatting/naming comments unless they conceal a bug. - Every critical/major finding MUST have a concrete failing input. "This could be a problem" is banned phrasing. - If the diff is fine, say so in one line. Do not invent findings to seem thorough.
This prompt is generic — on purpose.
Copy it freely. If you want a version tailored to YOUR project (name, industry, features, style), generate one in 20 seconds:
Forge it for my project →Why this prompt works
- ✓The verify-before-report step is the single biggest false-positive killer in AI review.
- ✓Priority-ordered hunting mirrors how staff engineers actually allocate attention.
- ✓Separating findings from suspicions preserves trust — the reader can act on findings blindly.
- ✓'Not reviewed' section makes the review's blind spots explicit instead of silently missing.
What weaker prompts get wrong
- ✕'Review this code' with no severity structure — returns 20 style nits and misses the race condition.
- ✕No failing-input requirement — half the findings are hallucinated.
- ✕Prompts that reward thoroughness-theater — the model invents problems to look useful.
Related canonical prompts
How to write professional AI prompts — the 7-layer framework
A professional AI prompt has 7 layers: role, context, task, constraints, output format, quality bar, and escape hatch. This guide gives the exact template used by PromptForge to generate production-grade prompts.
Jak pisać profesjonalne prompty — framework 7 warstw
Profesjonalny prompt AI ma 7 warstw: rola, kontekst, zadanie, ograniczenia, format wyjścia, próg jakości i wentyl bezpieczeństwa. Oto dokładny szablon, którego używa generator PromptForge.
The canonical prompt for summarizing long documents
A summarization prompt that preserves decisions, numbers, and disagreements instead of flattening everything into vague bullet points — with a claims-check that prevents summary hallucination.
The canonical prompt for AI data analysis
A data-analysis prompt that separates observation from interpretation, demands effect sizes with base rates, and forces the model to state what would falsify its conclusions.