Look for existing utilities, components, hooks, server actions, route patterns, copy patterns, and styling primitives before accepting newly written code.
Flag duplicated logic, copied helpers, or custom implementations of things the codebase already has.
Prefer reusing the existing flow even if it needs a small extension.
If the new code creates a shared helper, verify it has real reuse and is not just extracted private logic with a vague name.
Functions should do one thing at the right level of abstraction.
Avoid grab-bag modules that mix unrelated concerns like flags, API calls, transformation, UI state, logging, and scheduling.
Avoid parameter sprawl. If a function needs many knobs, check whether the boundary is wrong.
Prefer simple composition over chains of callbacks, wrappers, memoized helpers, and prop plumbing.
When two backing entities are presented as one product concept, package them into one transport/view model across intermediate components. Black-box components should receive one unified prop/callback and should not care about distinctions like remote vs prebuilt; split back into core entities only at roots/adapters where persistence or payload formats require it.
Keep domain-specific logic close to its domain unless there is proven cross-domain reuse.
Apply “You Might Not Need an Effect”: derive values during render, move event-caused work into event handlers, and reset state with keys when appropriate.
Avoid redundant state and synchronization effects.
Do not add memoization just to quiet performance anxiety. Memoization should solve a real render identity or expensive computation issue.
Prefer straightforward component boundaries over prop/callback gymnastics.
For server/data code, avoid unnecessary waterfalls and run independent work concurrently when the codebase has a pattern for it.
Be direct and concise. Avoid extra explanatory fluff.
Do not invent architecture. Ground claims in codebase patterns.
Search before claiming something is reusable or inconsistent.
If a pattern is not present in the codebase, say so and recommend the smallest clean alternative.
Prefer if statements over ternaries when suggesting code changes in v0.
When in doubt, optimize for code that reads obvious from left to right.
About this skill
Trigger
Reviews code changes for reuse, composition, codebase consistency, and slop. Use when asked to review PRs/diffs, check code reuse, composition, cleanliness, or whether code fits the codebase.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
All rights reserved — view on GitHub — with no detectable licence, this issue links rather than republishes: the skills are omitted from the agent manifest and from the whole-book markdown.
Discovery
1 skill found by walking the repository tree for SKILL.md, not by matching a directory convention. One layout observed: */SKILL.md.
Issue colours
Resolved from a deterministic hash of the owner name. Two accent tones are generated per issue and each is proven against its own ground before it ships: a single accent that passes AA on both light and dark paper is arithmetically impossible.
Heading repairs
1 repair applied to this skill so the document has one h1 and no skipped levels:
Removed “Code Refactor Review”, a leading h1 that duplicated the skill title.
Images inside a skill come from the upstream repository. Where the author gave no alternative text we mark the image decorative rather than inventing a description — a plausible caption we made up is worse than none for the reader who depends on it.
Signal
This repository is unranked on skills.sh, which says nothing about it: the leaderboard covers a fraction of published skills.
Set by Skills Docs from the source repository. Body text is Literata at the reader’s chosen size and measure; code is Geist Mono. Nothing on this page was written by us except this paragraph.