Install any skill in seconds. Free to start, no credit card required.
Get Started Free →tobihagemann/review-code
Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps by running internal reviews and a peer review in parallel and returning combined findings. Single-concern with a type argument, or full review with no argument.
Passed 9 of 17 test cases with the skill, and 6 of 17 without it.
and 4 more in the full report
7 fixed5 passed either way7 still failing3 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
I only want a security-focused audit of my current branch. I don't need a full six-category review. How many internal review sub-agents should you launch alongside peer review?
| Checked | Without skill | With skill |
|---|---|---|
| Dispatches exactly one internal sub-agent for security alongside the peer review agent | Missed | Passed |
The instructions your model reads when the skill loads.
Review code against type-specific criteria. Runs internal reviews and $peer-review in parallel by default. Returns combined structured findings.
Types: correctness, security, api-usage, consistency, simplicity, coverage
With a type argument, runs a single-concern internal review plus the peer review. With no type argument, runs all six internal reviews plus the peer review.
Determine what to review:
git diff --cached, git diff origin/main...HEAD), use that.gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'). If there are no changes against the default branch, stop and state that there is nothing to review.State the resolved file list before continuing: add --name-only to a diff command, or list the files for a file or directory scope. When the scope is a staged diff, also state how many further files git diff HEAD --name-only reports, so a scope narrower than intended stays visible before fanning out.
Each active type maps to a criteria reference file:
Full review activates all six types; a single-concern argument activates one. Skip peer review when instructed (e.g., "without peer review", "no peer", "internal only").
Before dispatching, read the project's test configuration and CI workflow to identify any test tier that resets a shared external resource between tests, such as a database, a fixed port, or a cache. Such tiers have no cross-process interlock, so branches running them concurrently wipe each other's state and return failures indistinguishable from defects in the change. Name any such tier to every branch as off-limits when the review does not depend on running it. When the change under review is what that tier exists to exercise, so that judging it at all requires running the tier, direct each branch instead to provision its own isolated instance of the resource, prepare it through the project's own setup path, run against it, and tear it down afterward. One shared instance carrying an instruction to run a single branch at a time is not sufficient, since nothing enforces that across branches. When a branch's own instance cannot be provisioned, the tier is left unrun and reported as such.
Direct every branch that runs a test suite to redirect the runner's output to a file under $TMPDIR and read the file. Piping a runner to head, tail, or another command that closes the stream early returns while the runner is still going, so a branch that believes its run finished leaves one live to overlap the next branch's.
When the scope contains a guard whose safety rests on an assumption stated in the conversation, in a plan file, or in a code comment, give every branch that assumption as the claim to refute rather than as background.
When the scope contains content that a build or render transform rewrites before it ships — markup compiled to components, template expansion, code generation, translation extraction — build the project before dispatching, in an isolated git worktree under $TMPDIR when the build writes to tracked files, and name the emitted files as part of the scope every branch receives, so each type judges the emitted artifact rather than the source.
Confine each branch prompt to what to review, plus the conventions and factual properties that bear on it. A statement that tells a branch what verdict to reach about a property of the existing code binds it to accept the very property the review exists to assess.
test cases passed, vs 6 / 17 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.