
Deep Review
FreeComprehensive code reviews with multi-dimensional analysis.
Free · Opens the source repo
What Deep Review does
Deep Review is a sophisticated tool designed for conducting thorough code reviews, leveraging independent subagents to ensure both breadth and precision in analysis. When a user requests a review of a pull request, diff, or branch, the tool operates in two distinct modes: Light and Deep. In Light mode, it performs inline reviews based on quick checklists derived from various dimensions of code quality. This mode is ideal for informal review requests and provides immediate feedback without the overhead of deeper analysis.
In contrast, Deep mode is activated through explicit commands and engages in a more rigorous process. It orchestrates multiple dimension review agents that assess the code against predefined rules, followed by a verification phase that ensures the findings are accurate and relevant. This mode is particularly useful for critical code changes where comprehensive scrutiny is necessary. The tool's design emphasizes speed, allowing multiple dimensions to be reviewed in parallel while maintaining a focus on the context of the codebase.
The core principles guiding Deep Review include anti-hallucination and anti self-approval, ensuring that the reviews are not biased by the original authors of the code. Each dimension is governed by specific rules, which are meticulously crafted to align with the existing codebase standards. This ensures that the review process is both relevant and effective, allowing developers to maintain code quality without imposing unrealistic expectations. Overall, Deep Review is targeted at developers and teams looking to enhance their code review processes with a structured, multi-faceted approach that prioritizes accuracy and efficiency.
When to use it
Use this skill when you need a detailed review of code changes, especially for critical updates or when evaluating multiple aspects of code quality.
When not to use it
This tool is not suitable for simple explanations of code changes or casual review requests that don't require in-depth analysis.
What you can build with it
Reviewing a Critical Pull Request
When a team member submits a significant pull request, use Deep Review in Deep mode to ensure thorough scrutiny across all relevant dimensions.
Conducting Regular Code Audits
Use Deep Review to perform regular audits of your codebase, assessing adherence to coding standards and identifying potential issues.
Evaluating Code for a New Feature
When implementing a new feature, utilize Deep Review to evaluate the code changes for performance, security, and business logic compliance.
How to install Deep Review
View source1. Install with the skills CLI
npx skills add lobehub/lobehub/deep-review --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by lobehubDeep Review
Multi-dimensional code review built on independent subagents. Review breadth comes from parallel dimension coverage; precision comes from adversarial verification and global duplicate consolidation before findings reach the report.
Core principles
Every design choice below serves one of these. When unsure how to execute a step, come back here.
- Anti-hallucination — reviewers that only see diff fragments invent bugs. Candidate findings are therefore falsified one by one by an independent verify subagent that reads full context and returns a three-way verdict (
confirmed/false_positive/need_more_context). Three-way verdicts beat confidence percentages: calibrated-sounding scores are unreliable as hard filters. - Anti self-approval — an agent that just wrote the code is grading its own homework and will pass it. Review must run in independent subagents with a third-party reviewer stance. Never silently degrade deep mode to "the main agent reviews and then verifies its own findings".
- Rules over model — review quality comes from fine-grained, executable dimension rules, not from a smarter model. Subagents run on balanced/fast model tiers; each dimension file tells them exactly how to check, what counts, and what does not.
- Calibrate to codebase and lifespan — hold the diff to the standard the codebase already meets, not an idealized one. If a pattern is widespread in the existing code and this diff does not make it worse, it is not a finding. Declared-temporary code (time-boxed campaign, experiment, one-off script) is judged against its lifespan: hardcoding and low-extensibility shortcuts are the intended trade-off for shipping fast, and "delete the code at expiry" is a valid plan — do not demand configurability from code built to be deleted. (Security is exempt from all calibration — see the dimension file.)
- Speed is a feature — one wave of parallel reviewers, verification pipelined per dimension (never a global barrier), irrelevant dimensions pruned up front.
Two entry modes
| Mode | Trigger | What runs |
|---|---|---|
| Light (default) | Any ordinary review ask: "review this PR", an informal "look at this change for problems", a diff pasted for review — but not explain-only questions about a change | Main agent reviews inline against the Quick checklist section of each applicable dimension file. No subagents. |
| Deep | Explicit only: /deep-review, "run deep review", "full multi-agent review" | Full orchestration: dimension review agents → pipelined verification → global consolidation → structured report → interactive fix flow. |
Do not auto-escalate light to deep. Do not run deep mode for a casual "看看这个改动" — that is light mode.
Dimensions
Rules live in one place: references/dimensions/, one file per dimension.
Both modes read the same files. Light mode reads the full Quick checklist section, including
nested example subsections; deep-mode agents read the full dimension file plus only the rule
sources and routed references applicable to the touched surface.
| Dimension | id prefix | Covers | Verified? |
|---|---|---|---|
| ai-coding-bad-habits | ai | narrow special cases in generic code, partial refactors, redundant type guards/aliases, comment narration, and precedent-blind implementation | yes |
| code-style | style | naming, readability, dead code, comments, i18n hardcoding, UI-library and styling conventions | yes |
| logic | logic | logic correctness: edge cases, null, races, error handling, state machines, requirement deviation, test coverage | yes |
| business-logic | design | design judgment: framework misuse, best-practice violations, solution-weight mismatch, self-inflicted complexity | yes |
| reuse-architecture | reuse | duplicate implementations, unused existing patterns, extensibility, architectural boundaries | yes |
| performance | perf | N+1, blocking calls, resource leaks, render-path waste, DB migration locking and idempotency | yes |
| release-risk | risk | ship/no-ship gate: irreversible persisted state (incl. schemaless shape drift), dev-cycle migration residue, in-flight work & config at deploy time, irreversible outbound effects, prompt/tool-description behavior shifts, shared-surface and high-frequency-UI blast radius, PR purity | yes + checks |
| security | sec | injection, auth bypass, secret/PII leakage, business-slot confidentiality | yes |
| compatibility | compat | light/dark theme, desktop app / web (desktop, mobile) / RN, released-client API compatibility, client vs server agent runtime (gateway on/off), Vercel vs Docker deploys, paired router configs | yes |
| ux | ux | empty/loading/error states, async feedback, confirmation flows, design-value adherence | yes |
| observability | obs | debug: unexplained fixes, uncommented hacks, silent catches, missing logs; product: analytics on qualifying new capabilities; perf: monitoring on high-frequency / high-traffic / polling paths | yes |
| workflow | flow | issue tracking state, PR description freshness, undocumented key decisions, CI / preview build status | no (objective state) |
| skill-freshness | skill | agent skills invalidated by this diff, knowledge worth distilling into a new skill | no (advisory) |
Verified? no means findings from that dimension are objective state checks or advisories — they skip the verify pass and go straight to the report. yes + checks means the dimension's findings are verified normally, but it also emits a second, unverified output — release_checks, pre-deploy confirmation items about production state the repo cannot answer (see its dimension file).
Pruning table (deep mode)
Before spawning, the main agent prunes dimensions that cannot apply to the diff. List pruned dimensions and the one-line reason in the report header. When in doubt, run the dimension.
| Dimension | Skip when |
|---|---|
| ai-coding-bad-habits, code-style, logic, business-logic, reuse-architecture | never (skip only for docs/lockfile-only diffs) |
| performance | no server/db/loop/render-path code touched (e.g. docs, copy, pure type changes) |
| release-risk | no DB schema/migration, no schemaless persisted payload, no queue/cron/config/outbound dependency, no prompt or tool-description text, no shared component or package public API, no high-frequency user surface, and the diff has one obvious purpose |
| security | lockfile/generated-only diff — docs and copy still run it (text is a leak vector: secrets, internal URLs, commercial details) |
| compatibility | diff touches no UI theming/routing, no API contract, no deployment config, no runtime-branching code |
| ux | no user-facing surface changed (components, styles, copy, interaction flows) |
| observability | no error handling, async flow, server code, new user-facing capability, or perf-sensitive path touched |
| workflow | light: no PR/issue/CI context is available; deep: never (cheap external-state checks) |
| skill-freshness | light: the diff neither changes agent instructions nor changes behavior/conventions covered by an existing skill; deep: never (cheap) |
"Docs-only" means human-facing prose only. Files that are executable instructions for agents — .agents/skills/**, AGENTS.md / CLAUDE.md, prompt templates, orchestration manuals — count as code for pruning purposes: their "prose" carries control flow, contracts, and rules whose contradictions are exactly what logic / business-logic / reuse-architecture exist to catch. A diff touching them is never docs-only.
Light mode applies the same table to decide which Quick checklists to read.
Extension packs
A wrapping repository (e.g. a private deployment that vendors this repo as a submodule) can extend the rule set without forking this skill: any sibling skill directory in the active skills root matching deep-review-* (for example .agents/skills/deep-review-cloud/) is an extension pack.
- Extension packs contain
dimensions/*.mdfiles in the same format; a file named after a built-in dimension extends it (load both), a new name adds a dimension. - An extension file declaring
extends: <name>where no such built-in dimension exists (typically because the wrapping repo pins an older submodule commit) falls back to standing on its own. Such a file must therefore carry its ownid_prefix/verify/skip_whenso it stays usable either way; when the built-in is present, the built-in's frontmatter wins. - Both modes must check for extension packs at startup and load whatever is present. Absence is normal — this skill is self-sufficient.
- Extension packs may carry rules that must not live in this open-source repo; never copy their content into files under this directory.
Light mode procedure
- Determine review scope exactly as deep mode step 0 does (see the environment manual's scope rules — three-dot diff from a base that does not lag the fork point, submodule diffs included), but skip the background-hunting extras when context already tells you what changed.
- Apply the pruning table; read the
Quick checklistsection of each surviving dimension file, plus extension-pack counterparts. - Review inline. Findings must cite a rule source or code evidence; respect the codebase-calibration principle.
- Label every finding on the same two axes deep mode uses, and let them drive the recommendation:
- Severity — use only P0 (incident-level impact), P1 (must fix in this change), or P2 (real but deferrable). Never invent additional levels. State whether each finding blocks release.
- Introduced or pre-existing — if the problem lives in code this diff did not change, do not fix it here. Say who introduced it (
git blame/git log -Lon the location) and offer to file a Linear issue for that owner. The only exception is an old bug this diff makes reachable or harmful for the first time, at P0. - Likelihood — high / medium / low, judged on the real production path. State it next to the severity. A
low-likelihood, non-blocking finding is a follow-up, not a fix-now item; on a repeat review of the same change, list it in one line and move on instead of re-arguing it.
- Output in your environment's normal review format (light mode does NOT use the deep report template). When
release-riskproduced pre-deploy confirmation items, list them as a short checklist separate from the findings — they are questions about production state, not defects. Mention that deep mode exists if findings suggest the diff deserves a full pass.
Deep mode procedure
Pick the manual for the current environment and follow it end to end:
- Claude Code →
references/claude-code/main.md - Codex →
references/codex/main.md
If the environment is not listed, tell the user deep mode does not support it yet and offer light mode instead. Do not improvise another environment's mechanics, and do not degrade to a single-agent pass (see principle 2).
Keeping this skill sharp
The skill-freshness dimension and the workflow_feedback channel in the subagent return schema exist to feed observations back into these files. When a review surfaces a rule gap, an outdated rule, or a recurring team preference, update the relevant dimension file in the same PR or a follow-up — that is how calibration stays current.
Frequently asked questions about Deep Review
Similar skills
Quality Playbook Generator
Run comprehensive quality audits on any codebase.
PR Draft Summary
Automate PR summary generation for openai-agents-python.
Final Release Review
Streamline your release candidate audits with ease.
Unit Test Vue Pinia
Efficiently write and review unit tests for Vue 3 applications.
Slang Shader Expert
Optimize and integrate Slang shaders with ease.
Telemetry Standards
Ensure consistent event tracking in Supabase Studio.
