code-review
Skill115 starsChanged 7 days agoMITView on GitHub
Use when a task, feature or bug fix is implemented and before it is committed, merged or handed back to the user, and when the user asks for a review of a change, a branch or a pull request.
We split this skill into the rules it gives an agent
9 rules. 0 are common, 9 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 185 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
No exceptions. No workarounds.
- Distinctive: line 21
After every task in a plan, before the next task starts.
- Distinctive: line 22
After a feature or a bug fix, before it is committed to a shared branch or merged.
- Distinctive: line 23
Before a pull request is opened or marked ready.
- Distinctive: line 24
When the user asks for a review of a diff, a branch or a pull request.
- Distinctive: line 43
Write these files to a scratch directory or a git-ignored path, never into tracked source.
- Distinctive: line 48
every requirement is implemented and has a test.
- Distinctive: line 120
Commit a change you have not disclosed to the user.
- Distinctive: line 127
Write the plain-language walkthrough before committing a multi-file or behavioural change.
“Common” is measured: kept by at least 6 in 10 of the 185 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
A change is reviewed by someone who did not write it, in two stages: first "does it do exactly what was asked", then "is it built well". The author then explains the change to the user in plain language and discloses everything that was not asked for. The author's confidence is not evidence; a fresh reviewer reading the diff is.
The Prime Directive
NO CHANGE LANDS UNTIL A FRESH REVIEWER HAS PASSED IT AND THE USER HAS SEEN WHAT CHANGEDNo exceptions. No workarounds. No shortcuts.
When to Use
Required:
- After every task in a plan, before the next task starts.
- After a feature or a bug fix, before it is committed to a shared branch or merged.
- Before a pull request is opened or marked ready.
- When the user asks for a review of a diff, a branch or a pull request.
Skip:
- A one-line typo or comment fix the user dictated verbatim; still disclose it.
- Exploratory spikes that will be deleted. The code that replaces them is reviewed.
The Protocol
- Check entry conditions. The suite passes on the branch, the work is committed, and you can say in two sentences what was built and why. If the suite is red, fix it first; a reviewer's time is wasted on a change that does not run.
Fix the range and write the diff to a file. Take the base commit (the merge base with the target branch, or the commit before the task) and the head commit:
BASE=$(git merge-base origin/main HEAD) # or the commit before this task HEAD_SHA=$(git rev-parse HEAD) git diff --stat "$BASE" "$HEAD_SHA" > review-stat.txt git diff "$BASE" "$HEAD_SHA" > review.diffWrite these files to a scratch directory or a git-ignored path, never into tracked source. The reviewer reads the file instead of receiving a pasted diff, which keeps both contexts small.
- Dispatch a fresh reviewer. Dispatch a subagent that has none of your session history, using the reviewer template. Fill in the summary, the requirements (plan file and task, or the user's words), the base and head commits, and the paths to the diff files. Name the reviewer's model and effort on the dispatch (see
godmode:model-routing); the final review of a whole branch takes the top tier. The reviewer is read-only and does not dispatch helpers of its own. If your harness ships a code reviewer agent definition, you may dispatch that persona with the same filled-in template. Stage one: spec compliance. The reviewer checks the diff against the requirements line by line:
- every requirement is implemented and has a test;
- nothing was built that was not asked for;
- behaviour the spec is silent on matches what a reasonable user would expect.
A stage-one failure goes back to the implementer before stage two is worth running. Small diffs may run both stages in one dispatch; the reviewer still reports them separately.
- Stage two: quality. Correctness at the edges, error handling, security surface, tests that assert real behaviour, conventions of the surrounding code, simplicity, performance where it matters. The template carries the full checklist.
Triage the findings.
Severity Meaning What you do Critical Wrong behaviour, data loss, a security hole, a crash, a broken build Fix now, then re-review the fix Important Missing requirement, weak error handling, test gaps, structural problems Fix before the next task or before landing Minor Naming, style, small clean-ups Fix if cheap, otherwise record it for the user Evaluate every finding with
godmode:review-response: verify it against the code before you act, and push back with evidence when the reviewer is wrong. Rule on every item the reviewer listed as "declined to judge"; nothing set aside is dropped silently.- Bound the fix loop. After fixes, re-review only the fixes against the findings they address, with a fresh reviewer or the same one. If the same Critical or Important finding survives two fix rounds, stop and hand over to
godmode:error-recovery; a third identical round is not progress. Write the change walkthrough. For the user, in plain language, before you commit or merge. One entry per changed file or per coherent group of files:
### src/middleware/rate-limit.ts What: logins are now limited to five attempts per minute per IP address. Why: the login endpoint accepted unlimited password guesses. Context: runs before the auth routes; counters live in Redis. Risk: if Redis is down the limiter lets everything through. Decide whether it should block instead.Finish with structural consequences (new dependencies, new layers, changed data flow) and open questions for the user. If you cannot explain a change in plain words, you do not understand it well enough to ship it; go back and find out.
Disclose unsolicited changes. List every change the user did not ask for, separately and before the commit:
Not requested: I also renamed parseDate to parseIsoDate in three files because the old name hid that it rejects other formats. Keep it or revert it?This includes reformatting, dependency bumps, renamed symbols, deleted dead code and "while I was there" fixes. The user decides; you do not commit an undisclosed change.
- Record the outcome. In the progress ledger, the task notes or the pull request description: the range reviewed, the reviewer's model, the verdict, which findings were fixed and which were declined with the reason. Then hand on to
godmode:cross-model-reviewbefore landing, or togodmode:merge-protocol.
What the Reviewer Gets, and What It Does Not
| Give | Withhold |
| The requirements in full, or the path to the plan and the task number | Your session history and reasoning |
| The base and head commits and the diff file paths | Your opinion of the code ("it is solid, just check style") |
| What was built, in two sentences | Pre-written findings you want confirmed |
| Known limitations and decisions the user already made | Instructions to be lenient or quick |
A reviewer handed your conclusion tends to return it confirmed. Give it the work and the requirements, not your verdict.
Cognitive Traps
| Rationalisation | Truth |
| "It is a small change; review is overkill." | Small diffs cause large outages, and a small diff reviews in minutes. |
| "I tested it thoroughly." | Tests and review catch different kinds of defect. A test cannot tell you that you built the wrong thing. |
| "I will review my own diff; it is faster." | You will read what you meant, not what you wrote. A reviewer without your context reads the code. |
| "The reviewer needs my whole history to understand." | If the change cannot be understood from the requirements and the diff, the next maintainer cannot understand it either. |
| "The tests pass, so the user does not need the walkthrough." | Passing tests say the code does something. The walkthrough says what, so the user can own it. |
| "That extra rename was obviously helpful; no need to mention it." | Every undisclosed change is a surprise in someone's next debugging session. Disclose it. |
| "We will batch the review into the next pull request." | Defects compound across tasks. Review each task before the next one builds on it. |
Guardrails
Never:
- Land, merge or open a ready pull request with an open Critical or Important finding.
- Review your own change and call it reviewed.
- Paste your session history or your verdict into the reviewer's brief.
- Let the reviewer edit the working tree, move HEAD or dispatch its own reviewers.
- Commit a change you have not disclosed to the user.
- Mark a finding "won't fix" without a technical reason recorded next to it.
Always:
- Review against the written requirements, not against your memory of them.
- Give the reviewer the base and head commits and the diff as a file.
- Name the reviewer's model on the dispatch.
- Write the plain-language walkthrough before committing a multi-file or behavioural change.
- Rule explicitly on everything the reviewer declined to judge.
Connections
godmode:review-response: how you evaluate and answer each finding the reviewer returns.godmode:cross-model-review: after this review passes, one narrow pass by a different model family before landing.godmode:completion-gate: re-run the verification after the last fix, before you say the work is done.godmode:delegated-execution: runs this review after every implementer task.godmode:model-routing: which model takes the reviewer seat.godmode:error-recovery: takes over when the same finding survives two fix rounds.godmode:merge-protocol: landing the reviewed branch.
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★ 194ksame name
- github/spec-kit★ 145ksame name
- ggml-org/llama.cpp★ 133ksame name
- shareAI-lab/analysis_claude_code★ 80ksame name
- shareAI-lab/learn-claude-code★ 80ksame name
- vectorize-io/hindsight★ 57ksame name
- dbeaver/dbeaver★ 52ksame name
- roboflow/supervision★ 51ksame 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.
Used alongsideProjects with it also use add-new-model, azsdk-common-sdk-breaking-change and 9 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.
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
Microsoft AzureSkillazsdk-common-sdk-breaking-change
Detect and mitigate SDK Breaking changes for an SDK package which is generated from TypeSpec. WHEN: "Detect SDK breaking changes for a service", "Detect SDK breaking changes for an SDK package", "Detect and mitigate SDK breaking changes for a service", "Detect and mitigate SDK breaking changes for an SDK package". INVOKES: skill: azsdk-common-generate-sdk-locally; MCP tools: azure-sdk-mcp:azsdk_customized_code_update, azure-sdk-mcp:azsdk_package_detect_breaking_change.
Also in 4 projects that use this
ww-w-aiSkillbkend-auth
bkend.ai authentication guide. Signup, login, JWT tokens, sessions, role-based access control, and password management with bkend.ai BaaS. Triggers: bkend auth, bkend login, bkend signup, JWT, session, RBAC, password, bkend 인증, 로그인, 회원가입, bkend認証, ログイン, 新規登録, bkend认证, 登录, 注册, autenticacion bkend, authentification bkend, bkend-Auth Do NOT use for: data operations (use $bkend-data), file storage (use $bkend-storage).
Also in 4 projects that use this
ww-w-aiSkillbkend-cookbook
bkend.ai cookbook with step-by-step tutorials and example projects. Build a todo app, blog, e-commerce store, and more with bkend.ai BaaS. Triggers: bkend cookbook, bkend tutorial, bkend example, todo app, blog app, bkend 쿡북, bkend 튜토리얼, 예제 프로젝트, bkendクックブック, チュートリアル, bkend教程, 示例项目, tutorial bkend, tutoriel bkend, bkend-Tutorial, ricettario Do NOT use for: initial setup (use $bkend-quickstart), specific features (use $bkend-data/auth/storage).
Also in 4 projects that use this
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 4 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 4 projects that use this
- +5 more from ww-w-ai
In this repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-briefingSkill
- codebase-conventionsSkill
- completion-gateSkill
- cross-model-reviewSkill
- delegated-executionSkill
- doctorSkill
- environment-awarenessSkill
- error-recoverySkill
- fault-diagnosisSkill
- groundingSkill
- inline-executionSkill
- intent-discoverySkill
- knowledge-captureSkill
- merge-protocolSkill
- model-routingSkill
- parallel-executionSkill
- performance-tuningSkill
- project-bootstrapSkill
- quality-gatesSkill
- rationaleSkill
- reference-firstSkill
- review-responseSkill
- security-protocolSkill
- system-designSkill
- task-planningSkill
- team-orchestrationSkill
- test-firstSkill
- ui-engineeringSkill
- ui-researchSkill
- using-godmodeSkill
- workspace-isolationSkill
- writing-skillsSkill
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.

