Agent skill

Review Code

by tobihagemann in tobihagemann/turbo

Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps and low-value tests by running internal reviews and a peer review in…

MITAuto-check passedDevelopment

Install Review Code

skills CLI
$ npx skills add tobihagemann/turbo --skill review-code -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tobihagemann/turbo review-code --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tobihagemann/turbo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/codex/skills/review-code .claude/skills/review-code && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
review-code
GitHub stars
407
Token cost
~3.2k tokens
SKILL.md length
1,772 words
Files
7 (incl. references)
Skills in repo
81
Repo updated
First seen
Licence
MIT

At a glance

Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps and low-value tests by running internal reviews and a peer review in…

  • Works in 2 steps: Determine the Scope → Run Reviews in Parallel
  • The user asks to review my code
  • SKILL.md covers Step 1: Determine the Scope, Step 2: Run Reviews in Parallel, Output Format and Rules
  • Calls git and gh

What it does

Review Code is an agent skill from tobihagemann/turbo. Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps and low-value tests 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. Use when the user asks to "review my code", "full code review", "review my changes", "check for bugs", "scan for bugs", "review correctness", "security audit", "find vulnerabilities", "review security", "check API…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/api-usage-review.md`, `references/consistency-review.md` and `references/correctness-review.md`).

It sits in Development, covering Code review, Test coverage and Security review. It works with Git. The repository describes itself as: Reusable workflows for planning, building, reviewing, and shipping with Claude Code and Codex. The licence is MIT.

When your agent uses it

  • The user asks to review my code
  • Full code review
  • Review my changes
  • Review correctness

Example prompts

  • “review my code”
  • “full code review”
  • “review my changes”
  • “/review-code”

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Determine the Scope
  2. Run Reviews in Parallel

What it can do on your machine

Read from SKILL.md and the folder at commit 4b9f4cf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review Code loads about 3.2k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 184 tokens; SKILL.md has 1,772 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~184
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tobihagemann/turbo at commit 4b9f4cf, republished under its MIT licence (© tobihagemann). 1,772 words, ~3,194 tokens.

Download SKILL.mdSave it as .claude/skills/review-code/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
review-code
description
Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps and low-value tests 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. Use when the user asks to "review my code", "full code review", "review my changes", "check for bugs", "scan for bugs", "review correctness", "security audit", "find vulnerabilities", "review security", "check API usage", "verify against docs", "check for cross-file duplication", "review consistency", "check for code reuse", "review simplicity", "find untested code", "find redundant tests", or "review test coverage".

Review Code

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.

Step 1: Determine the Scope

Determine what to review:

  • If a specific diff command was provided (e.g., git diff --cached, git diff origin/main...HEAD), use that.
  • If a file list or directory was provided, review those files directly (read the full files, not a diff).
  • If neither was provided, default to diffing against the repository's default branch (detect via 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.

Step 2: Run Reviews in Parallel

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 or reaches the shared install through a package-manager wrapper, and name the emitted files as part of the scope every branch receives, so each type judges the emitted artifact rather than the source. Refer to that worktree by absolute path in every command and join chained steps with &&, so a failed step cannot leave the rest running in the shared checkout.

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.

When this session edited an instruction file or a file one imports, name it in every branch prompt and direct the branch to read it from disk before judging anything against it: the copy loaded into a branch's context can predate the edit.

When a list of already-adjudicated findings was supplied (one line each: the finding, its verdict, and the recorded reason), include it in every branch prompt, internal and peer, labeled as decisions already reached on proposed changes rather than as established properties of the code. Direct each branch to treat a finding as listed when it matches one on both location and substance, to raise such a finding again only on evidence its recorded reason does not already account for, and to judge any other finding at the same location on its own merits.

Run the review branches independently. Launch them with spawn_agent / wait_agent using inherited model defaults, issuing every call in one batch. Do not issue one and await its result before issuing the rest. For full review that is six internal branches plus one peer branch; for single-concern it is one internal branch plus one peer branch. Every branch prompt must direct it to treat the shared working tree and its git index as read-only and to assess findings by reading and reasoning. HEAD stays where it is: read other refs with git show <ref>:<path> rather than git checkout or git switch. For a check that requires mutating code, the branch works in an isolated git worktree created under $TMPDIR and discarded afterward. In a repository with no commit yet, where a worktree has nothing to check out, an export of the index stands in for one: the branch runs git checkout-index -a --prefix=<dir>/ from the repository's top level, with <dir> under $TMPDIR, then git init and git add -A -f in that directory, so git diff there shows a mutation. Every rule here that names the worktree applies to that directory, and the branch verifies afterward that the directory is gone. Refer to that worktree by absolute path in every command and join chained steps with &&, so a failed step cannot leave the rest running in the shared checkout. Run teardown and verification as their own commands. Give that worktree its own dependency install rather than reaching the shared tree's install by any route: removing a worktree deletes through symlinks, and a redirected suite writes into the shared install. When its own install is not possible, the check is left unrun and reported as such. A check that runs in the shared checkout invokes an already-installed runner directly wherever a package-manager wrapper would front it, since such a wrapper reads as read-only while reconciling the shared install before it runs. Confine dependency installs and reconciliation to an isolated worktree. Every test runner the branch starts, in a worktree or in the shared checkout, runs in its own process group under a timeout enforced from outside the runner. Before teardown, the branch stops the process group of every runner it started, since stopping a runner can leave the processes it spawned alive. Afterward the branch verifies that git worktree list no longer shows the worktree, that git status --short shows what it showed at the start, and that HEAD is still on the branch it started on. It also confirms that no process from those groups, and none whose command line names the worktree path, if any, is still running, and reports by PID any process it could not stop. When it cannot list processes, it reports that check as unrun and names those process groups and the worktree path, if any. After any check, in a worktree or in the shared checkout, it verifies that the shared tree's dependency directory still resolves (a destroyed install leaves git status unchanged, since it is gitignored). Damage the branch cannot repair is reported with the exact repair command in place of findings.

Show full SKILL.md (462 more words)Show less
  • Internal branch (one per active type): The branch prompt must include the scope, the path to the type's reference file (~/.agents/skills/review-code/references/<type>-review.md), the output format below, and this directive: read that reference file directly, apply its determination criteria as the bar for a real finding, then return every finding that clears that bar tagged with its priority. Coverage is the goal at this stage, so surface everything that qualifies and let the priority tags convey severity. The branch must also return the Overall Verdict block for its type, using the verdict label from the reference file it read.
  • Peer review branch (unless skipping): Spawn a Codex sub-agent and instruct it to read and follow $peer-review from the installed skill directory, with a request describing: (a) the scope to review; (b) all active types covered in one single-pass review run that evaluates every dimension, each judged independently against its criteria file, rather than a per-dimension parallel fan-out; (c) for each dimension, the criteria live in ~/.agents/skills/review-code/references/<type>-review.md — the reviewer should read that file directly, use its priority scale and verdict label, and include any extra metadata fields it specifies; (d) the output format below, including the **Failure scenario:** line; (e) the already-adjudicated findings list when one was supplied, framed as described above. The branch prompt must also state explicitly that the sub-agent's final message must contain the verbatim findings text $peer-review produced.

Aggregate the findings and per-type verdicts the branches return, with attribution (reviewer: "internal" or "peer"; type; file path). Present them in the output format below.

Then call update_plan to mark this step completed and continue with the next step of the active workflow.

Output Format

Format each finding as:

### [P<N>] <title (imperative, ≤80 chars)>

**File:** `<file path>` (lines <start>-<end>)
**Reviewer:** <internal | peer> (<type>)
**Failure scenario:** <concrete trigger → the consequence>

<one paragraph explaining the issue and its impact>

For **Failure scenario:**, state the consequence a user or maintainer would observe: an error, wrong output, or data loss; for the non-correctness types, the concrete cost — what breaks on the next change, what is duplicated, what goes untested, which stated rule is violated. An intermediate state ("the cached value goes stale", "the collection keeps growing") stops short of a consequence; carry it through to what that state causes.

The reference file may specify additional metadata fields (e.g., **Category:**, **Library:**, **Docs:**). Include them between the **Reviewer:** line and the **Failure scenario:** line.

After all findings, place the Overall Verdict block each internal branch returned for its type (each uses the verdict label from its reference file). For single-concern, that is one verdict block; for full review, six. After the per-type verdicts, add a single combined ## Peer Review Verdict block summarizing what the peer review returned.

## Overall Verdict — <type>

**<Verdict Label>:** <status>

<1-3 sentence assessment>

If there are no qualifying findings for a type, state so under that type's verdict block and explain briefly.

Rules

  • Present findings grouped by priority in single-concern mode, and in file order in full review mode to minimize context switching.

© tobihagemann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in codex/skills/review-code of tobihagemann/turbo.

  • SKILL.md
  • references/api-usage-review.md
  • references/consistency-review.md
  • references/correctness-review.md
  • references/coverage-review.md
  • references/security-review.md
  • references/simplicity-review.md

Open the folder on GitHubat commit 4b9f4cf

Compare with similar skills

Review Code next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Review Code compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Code this skilltobihagemann/turbo407—~3.2kAutomated safety check: PassMIT
Differential Security Reviewtrailofbits/skills7.4k—~1.8kAutomated safety check: NotesCC-BY-SA-4.0
Requesting Code ReviewHezaoHezao/poirot2505 repos~1.6kAutomated safety check: PassMIT
Code Reviewpolyipseity/obsidian-terminal948—~1.6kAutomated safety check: PassAGPL-3.0
Code Review with Beads Tasksmaslennikov-ig/claude-code-orchestrator-kit260—~2kAutomated safety check: PassCustom licence
Code ReviewPrismer-AI/PrismerCloud1.6k—~2.1kAutomated safety check: NotesMIT

Similar skills

  • Official

    Reviews a pull request, commit or diff for security problems, using git history, caller counts and test coverage, and writes a markdown report.

    7.4k GitHub stars~1.8k tokensUpdated yesterday
    SecurityAuto-check: notes
  • Requesting Code Review

    HezaoHezao/poirot

    Pre-commit review: security scan, quality gates, auto-fix. An agent skill from HezaoHezao/poirot.

    250 GitHub starsUsed in 5 repos~1.6k tokens
    DevelopmentAuto-check passed
  • Code Review

    polyipseity/obsidian-terminal

    A skill your agent uses when reviewing PRs, code changes, or conducting code audits in obsidian-terminal.

    948 GitHub stars~1.6k tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Code Review with Beads Tasks

    maslennikov-ig/claude-code-orchestrator-kit

    Reviews staged changes, a branch, a PR or a path for bugs, security gaps and performance issues, then writes an evidence-based report and creates Beads tasks.

    260 GitHub stars~2k tokensUpdated 7 mo ago
    DevelopmentAuto-check passed
  • Code Review

    Prismer-AI/PrismerCloud

    Review a diff against its acceptance criteria in four segments (convention adherence, bug scan, historical-context regressions, test-coverage gaps) as a NON-implementing agent.

    1.6k GitHub stars~2.1k tokensUpdated 8 days ago
    DevelopmentAuto-check: notes
  • Review

    softspark/ai-toolkit

    Reviews code for quality, security, correctness. An agent skill from softspark/ai-toolkit.

    179 GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check: notes

More from tobihagemann/turbo

All 81 skills in this repo
  • Consult Oracle

    tobihagemann/turbo

    Consult ChatGPT Pro via ChatGPT browser automation for problems that resist standard approaches.

    407 GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Fetch PR Comments

    tobihagemann/turbo

    Fetch and summarize review feedback and conversation from a GitHub PR (unresolved review threads, review bodies, and PR conversation comments) without making changes.

    407 GitHub starsUsed in 1 repo~967 tokens
    Auto-check passed
  • Recall Rationale

    tobihagemann/turbo

    Recall why a past change was made by locating the Claude Code transcript that produced it.

    407 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Codex Exec

    tobihagemann/turbo

    Run autonomous task execution using the codex CLI. An agent skill from tobihagemann/turbo.

    407 GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check passed
  • Resolve PR Comments

    tobihagemann/turbo

    Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments.

    407 GitHub stars~3.8k tokensUpdated yesterday
    Auto-check passed
  • Investigate

    tobihagemann/turbo

    Systematically investigate bugs, test failures, build errors, performance issues, or unexpected behavior by cycling through characterize-isolate-hypothesize-test steps.

    407 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed

Works with

Questions about Review Code

What does Review Code do?

Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps and low-value tests by running internal reviews and a peer review in…. Review Code is an agent skill from tobihagemann/turbo. Review code for bugs, security vulnerabilities, API misuse, consistency issues, simplicity problems, or test coverage gaps and low-value tests by running internal reviews and a peer review in parallel and returning combined findings.

When should I use Review Code?

Review Code fits situations like: the user asks to review my code; full code review; review my changes; review correctness.

How do I install Review Code in Claude Code?

Run `npx skills add tobihagemann/turbo --skill review-code -a claude-code`. Or copy the skill folder (codex/skills/review-code in tobihagemann/turbo) into .claude/skills/review-code in your project. Claude Code loads it when a task matches its description.

How do I install Review Code in Codex?

Run `npx skills add tobihagemann/turbo --skill review-code -a codex`. Or copy the skill folder (codex/skills/review-code in tobihagemann/turbo) into .agents/skills/review-code in your project. Codex loads it when a task matches its description.

Can I use Review Code in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tobihagemann/turbo --skill review-code -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-code, .gemini/skills/review-code, .github/skills/review-code and .opencode/skills/review-code in your project.

What does Review Code need to run?

Going by SKILL.md and its folder, Review Code needs the command-line tools its instructions call (git and gh).

Does Review Code access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Review Code safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Review Code use?

Review Code is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review Code use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.9k tokens, read only when the agent opens those files.

What are the alternatives to Review Code?

Skills that share tags, products or a category with Review Code: Differential Security Review (trailofbits/skills, 7.4k stars), Requesting Code Review (HezaoHezao/poirot, 250 stars), Code Review (polyipseity/obsidian-terminal, 948 stars) and Code Review with Beads Tasks (maslennikov-ig/claude-code-orchestrator-kit, 260 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review Code?

tobihagemann (a GitHub user) maintains it in tobihagemann/turbo, which has 407 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 7, 2026.

Source: tobihagemann/turbo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.