code-review
Skill0 starsChanged 52 days agoMITView on GitHub
Review changed code for correctness bugs and instruction-file violations, verify each candidate, and report the survivors without editing. Use when asked to review a diff, branch, or PR for bugs. Not for cleanup; that is simplify.
194 other projects use a version of this.
Adopted by
Most recently taken up by
- doggy8088/spec-kittheir own version, first seen Nov 9, 2026
- strelov1/freehiretheir own version, first seen Nov 9, 2026
- storybookjs/storybooktheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
- supabase/supabasetheir own version, first seen Nov 8, 2026
- The-Vibe-Company/quivrtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use close-spec, design-with-images and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
dzhngSkillclose-spec
When a spec under specs/<feature>/ is done shipping (a write-spec build, or any planned task that produced a spec), archive it to specs/done/ and rewrite it from a build-plan into a durable rationale — the why, the principles, the invariants — pointing back to the real code for the how. Use when implementation has landed and the plan no longer matches what shipped, or the user says a feature/spec is finished. Pairs with [write-spec](../write-spec/SKILL.md) (the plan this closes) and [review](../review/SKILL.md) (run before closing).
Also in 5 projects that use this
dzhngSkilldesign-with-images
Explore UI and visual design with image generation, then iterate the real implementation against the user-selected concept. Use when brainstorming visual directions, offering mockup variants, or implementing an approved generated design; do not stop at the mockups or the first code approximation.
Also in 5 projects that use this
PydanticSkilladd-new-model
Add support for a newly-released language or image generation model in pydantic-ai (e.g. openai:gpt-5.6, anthropic:claude-sonnet-5, openai:gpt-image-2). Use when a provider ships a new model id and you need to wire literals, profile flags, adapters, and tests to recognize it. Handles SDK-lag, gateway list conventions, capability probing, and direct image-model geometry.
Also in 9 projects that use this
transitive-bullshitSkillcompare-screenshots
Compare screenshots against the intended design, distinguishing approved references from historical baselines. Use for iterative implementation matching, before/after visual review, objective image telemetry, or checking a lone capture for flat, empty, or badly framed content.
Also in 5 projects that use this
Microsoft AzureSkillazsdk-common-apiview-feedback-resolution
Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_customized_code_update, azure-sdk-mcp:azsdk_typespec_delegate_apiview_feedback, azure-sdk-mcp:azsdk_run_typespec_validation, azure-sdk-mcp:azsdk_package_generate_code.
Also in 6 projects that use this
Microsoft AzureSkillazsdk-common-generate-sdk-locally
Generate and finalize Azure SDKs locally from TypeSpec, including build, checks, tests, changelog, metadata, and version updates by default. WHEN: "generate SDK locally", "build SDK", "run SDK tests", "run CI checks", "validate package", "run checks", "update changelog", "fix SDK build errors", "resolve SDK generation errors", "customize TypeSpec", "rename SDK client", "rename SDK model", "hide operation from SDK", "fix analyzer errors", "resolve customization drift", "create subclient", "update metadata", "update version". INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.
Also in 6 projects that use this
- +4 more from dzhng
- +2 more from Azure
Other versions194 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 194
- mattpocock/skills★ 309ksame name
- TheAlgorithms/Python★ 226ksame name
- microsoft/vscode★ 195ksame name
- github/spec-kit★ 149ksame name
- ggml-org/llama.cpp★ 134ksame name
- supabase/supabase★ 115ksame name
- storybookjs/storybook★ 91ksame name
- shareAI-lab/analysis_claude_code★ 80ksame name
- shareAI-lab/learn-claude-code★ 80ksame name
- vectorize-io/hindsight★ 60ksame name
184 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- ask-mattSkill
- create-prSkill
- draft-prSkill
- ready-prSkill
- developSkill
- self-review-docsSkill
- implement-reviewSkill
- implementSkill
- implement-specSkill
- librarianSkill
- nemesisSkill
- refactorSkill
- research-codebaseSkill
- researchSkill
- review-docsSkill
- self-reviewSkill
- simplifySkill
- tddSkill
- test-auditSkill
- waterfall-challengeSkill
- waterfall-designSkill
- waterfall-implementSkill
- waterfall-planSkill
- waterfall-refactorSkill
- waterfall-reviewSkill
- zero-tech-debtSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 184 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Run git diff @{upstream}...HEAD to get the diff under review.
- Distinctive: line 27
Run them in parallel if the harness supports it.
- Distinctive: line 42
Read every hunk in the diff, line by line.
- Distinctive: line 53
If you can't find it, that's a candidate: a removed guard, a dropped error path, a narrowed validation, a deleted test that was covering a …
- Very specific: line 72
When the PR adds or modifies a type that wraps another (cache, proxy, decorator, adapter): check that every method routes to the wrapped …
- Distinctive: line 87
Only flag a violation when you can quote the exact rule and the exact line that breaks it — no style preferences, no vague "spirit of the …
- Distinctive: line 112
Keep candidates where the vote is CONFIRMED or PLAUSIBLE.
“Common” is measured: kept by at least 6 in 10 of the 184 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Code Review
You are reviewing for recall: catch every real bug. At this level,
catching real bugs matters more than avoiding false positives — a missed bug
ships. Err on the side of surfacing. Cleanup belongs to simplify; this
review reports findings and leaves the code as it is.
Phase 0 — Gather the diff
Run git diff @{upstream}...HEAD to get the diff under review. Without an
upstream, diff against the merge-base with the default branch, detected
dynamically (e.g. git symbolic-ref refs/remotes/origin/HEAD), and fall back
to git diff HEAD~1. If that range is empty or there are uncommitted changes,
also run git diff HEAD and include the working tree — this often runs before
the commit. If the invocation names a target — a PR, a branch, a path — review
that instead. Treat this diff as the review scope.
Phase 1 — Find candidates (5 correctness angles + 1 conventions angle, up to 8 each)
Spawn one subagent per angle below, each given the diff and its own angle. Run them in parallel if the harness supports it; otherwise serialize. If the harness has no subagents, perform each angle, verification, and the sweep yourself, sequentially, in this context, and say so in the summary, so the reader isn't misled about what ran.
Release each reviewer once its report is in, and every reviewer this run started if the run stops or fails; leave other agents alone.
Each angle surfaces up to 8 candidate findings with file, line, a
one-line summary, and a concrete failure_scenario. Do NOT let one angle's
conclusions suppress another's — if two angles flag the same line for
different reasons, record both.
Angle A — line-by-line diff scan
Read every hunk in the diff, line by line. Then read the enclosing function for
each hunk — bugs in unchanged lines of a touched function are in scope (the PR
re-exposes or fails to fix them). For every line ask: what input, state, timing,
or platform makes this line wrong? Look for inverted/wrong conditions,
off-by-one, null/undefined deref, missing await, falsy-zero checks,
wrong-variable copy-paste, error swallowed in catch, unescaped regex metachars.
Angle B — removed-behavior auditor
For every line the diff DELETES or replaces, name the invariant or behavior it enforced, then search the new code for where that invariant is re-established. If you can't find it, that's a candidate: a removed guard, a dropped error path, a narrowed validation, a deleted test that was covering a real case.
Angle C — cross-file tracer
For each function the diff changes, find its callers (search for the symbol) and check whether the change breaks any call site: a new precondition, a changed return shape, a new exception, a timing/ordering dependency. Also check callees: does a parallel change in the same PR make a call unsafe?
Angle D — language-pitfall specialist
Scan for the classic pitfalls of the diff's language/framework — for example:
JS falsy-zero, == coercion, closure-captured loop var; Python mutable default
args, late-binding closures; Go nil-map write, range-var capture; SQL injection;
timezone/DST drift; float equality. Flag any instance the diff introduces.
Angle E — wrapper/proxy correctness
When the PR adds or modifies a type that wraps another (cache, proxy, decorator,
adapter): check that every method routes to the wrapped instance and not back
through a registry/session/global — e.g. a caching provider holding a
delegate field that resolves IDs via session.get(...) instead of
delegate.get(...) will re-enter the cache or recurse. Also check that the
wrapper forwards all the methods the callers actually use.
Conventions
Find the instruction files (AGENTS.md, CLAUDE.md) that govern the changed
code: user-level and repo-root, plus any in a directory that is an ancestor of
a changed file (a directory's file only applies to files at or below it). Read
each one that exists, then check the diff for clear violations of the rules
they state.
Only flag a violation when you can quote the exact rule and the exact line that breaks it — no style preferences, no vague "spirit of the doc" inferences. In the finding, name the file's path and quote the rule so the report can cite it. If no instruction file applies, return nothing for this angle.
Conventions candidates use the same file/line/summary shape; in
failure_scenario, name the instruction file and the rule that is broken
instead of a crash. Correctness bugs always outrank conventions findings when
the output cap forces a cut.
Phase 2 — Verify (1-vote, 3-state)
Dedup candidates that point at the same line/mechanism, keeping the one with the most concrete failure scenario. For each remaining candidate, spawn one verifier: give it the diff, the relevant file(s), and the candidate, and have it return exactly one of:
- CONFIRMED — can name the inputs/state that trigger it and the wrong output or crash. Quote the line.
- PLAUSIBLE — mechanism is real, trigger is uncertain (timing, env, config). State what would confirm it.
- REFUTED — factually wrong (code doesn't say that) or guarded elsewhere. Quote the line that proves it.
Keep candidates where the vote is CONFIRMED or PLAUSIBLE. This is recall mode — a single non-REFUTED vote carries the finding. Do NOT drop on uncertainty.
Phase 3 — Sweep for gaps
Spawn one more finder as a fresh reviewer who has the verified list.
Re-read the diff and enclosing functions looking ONLY for defects not already
listed. Do not re-derive or re-confirm anything already there — the job is
gaps. Focus on what the first pass tends to miss: moved/extracted code that
dropped a guard or anchor; second-tier footguns (dataclass default evaluated
once, hash() non-determinism, lock-scope shrink, predicate methods with side
effects); setup/teardown asymmetry in tests; config defaults flipped.
Surface up to 8 additional candidates, each naming a defect not already on the list. If nothing new, return an empty sweep — do not pad.
Output
Report at most 15 findings, ranked most-severe first. Give each its
file:line, a one-sentence summary, the failure_scenario (concrete
inputs/state → wrong output/crash), and its verdict. If more than 15 survive,
keep the 15 most severe. If nothing survives verification, say so.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

