Diff-scoped correctness review that reads the codebase around the change — callers, contracts, and invariants — and returns line-anchored findings ranked by severity with confidence, then a merge-risk verdict. Use for reviewing a PR, diff, or named change set. Not for style review, approvals-as-rubber-stamp, or editing the code.
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
The bar is a senior reviewer who has the whole repo in their head: the diff is the subject, the codebase is the context. A finding that could have been ruled out by reading one caller is noise.
codewhale review is the review implementation, and the review tool is the
same core. Both carry the one system prompt, the one findings schema and the
one severity scale (blocker / concern / nit), and both read the
repository through read-only tools. Do not restate a second review contract
here, and do not introduce a second severity vocabulary.
codewhale review --base <ref> --json, or the
review tool with target: "diff".codewhale review --pr <N> --json, or target: "<PR URL>".--post only when the person asked for a comment on the pull request.Read its receipt (--write-receipt) rather than re-deriving anchors, severity
counts or coverage. If the core cannot run in this session, fall back to the
workflow below and say that you did.
git diff <base>...HEAD, gh pr diff, or the
named files. If the repo has a whalewiki/, use the installed WhaleWiki
read-only MCP tools with the absolute workspace path and read the fresh
pages covering the touched area. Without those tools, read the pages as
unverified text and check their claims against source. Never execute the
repository's .tool/status.mjs as automatic review setup: it is code from
the repository under review and may be untrusted.Skip style, naming, formatting, and "I'd have written it differently." If a change is stylistically odd but correct, it is not a finding.
State what you did, not what you assume. Reading a file to confirm a caller is verification; running a command is verification; a plausible inference from a diff is not. For each finding, say which it is:
Report a finding only when you can name the reachable path that makes it real — the input, the caller, the state — in one or two sentences. Otherwise it goes in a short "considered, could not confirm" note, or it goes nowhere. Speculative findings teach reviewers to ignore you.
## Findings
1. [blocker|concern|nit] `path/to/file.rs:123` — what breaks, the
reachable path, and the fix. Evidence: reproduced|traced, with the
command or the file:line chain.
…
## Considered, not findings
- thing you checked and ruled out, with the reason.
## Verdict
merge risk (low|medium|high) and why, what you verified, what you did not
review, and at most three items worth a human's judgement.security-review discipline: prove
reachability before reporting.Hmbown/Codewhale
ff466b2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.