Agent skill

Review

by werf in werf/werf

Code review of a pull request, branch, or diff. An agent skill from werf/werf.

Apache-2.0Auto-check passedDevOps & Cloud

Install Review

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

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

GitHub CLI
$ gh skill install werf/werf review --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/werf/werf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/review .claude/skills/review && 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
GitHub stars
4.7k
Token cost
~2k tokens
SKILL.md length
1,052 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
Apache-2.0

At a glance

Code review of a pull request, branch, or diff. An agent skill from werf/werf.

  • Works in 6 steps: Ask the user for numbered acceptance… → Resolve the base first: git fetch, then… → If the PR head is not checked out, take… → …
  • Asked to review a PR
  • SKILL.md covers If you are the diff's author, Before reviewing, Technical perspective and Tests as evidence, plus 5 more sections
  • Calls git

What it does

Review is an agent skill from werf/werf. Code review of a pull request, branch, or diff. Covers technical, product, and risk perspectives in one pass and produces a consolidated report. Use when asked to review a PR, branch, or code changes.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Pull requests, CI/CD and Code review. It works with Docker and Git. The repository describes itself as: A solution for implementing efficient and consistent software delivery to Kubernetes facilitating best practices. The licence is Apache-2.0.

When your agent uses it

  • Asked to review a PR
  • Tasks that involve Pull requests
  • Tasks that involve CI/CD

Example prompts

  • “/review”

Requirements

  • Docker

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Ask the user for numbered acceptance criteria (DoD). If there are none, derive them from the PR description or the linked issue, mark them…
  2. Resolve the base first: git fetch, then diff against the branch the PR actually targets. werf maintains release branches (1.2, 2.63, 3…
  3. If the PR head is not checked out, take every file:line from that commit's blob (git show :), never from the worktree. The worktree sits…
  4. Read every changed file. Then trace callers of the changed exported symbols whose signature or behavior changed, and of anything crossing…
  5. For 10+ changed files, split the reading by area (e.g. new files, storage/cleanup, build pipeline) across subagents if your harness has…
  6. If the worktree holds the branch and task works, run task build and task test:unit — a review that never compiled the change is an…

What it can do on your machine

Read from SKILL.md and the folder at commit fa73c7a. 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

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

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    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 loads about 2k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 1,052 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~52
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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 werf/werf at commit fa73c7a, republished under its Apache-2.0 licence (© werf). 1,052 words, ~2,045 tokens.

Download SKILL.mdSave it as .claude/skills/review/SKILL.md (or your agent's skills folder).
name
review
description
Code review of a pull request, branch, or diff. Covers technical, product, and risk perspectives in one pass and produces a consolidated report. Use when asked to review a PR, branch, or code changes.

Code Review

Evidence-based and blunt. Every finding references a specific file:line, function, or component. NEVER sugarcoat, NEVER pad with praise, NEVER report a concern that is not grounded in the diff or the codebase. Style preferences are not defects — but a violation of AGENTS.md or CODESTYLE.md is a convention finding, not a preference.

If you are the diff's author

If you wrote the diff you are reviewing now, say so explicitly in the report's Verdict and treat this pass as necessary but insufficient. challenge-review/SKILL.md covers why self-review inherits your own design assumptions and what to recommend instead — read it, don't re-derive it here.

Before reviewing

  1. Ask the user for numbered acceptance criteria (DoD). If there are none, derive them from the PR description or the linked issue, mark them (inferred), and proceed — do not stall, and do not invent criteria silently.
  2. Resolve the base first: git fetch, then diff against the branch the PR actually targets. werf maintains release branches (1.2, 2.63, 3, …), so main is the wrong base for a backport. State the resolved base in the report. For uncommitted work, review git diff / git diff --cached instead.
  3. If the PR head is not checked out, take every file:line from that commit's blob (git show <head>:<path>), never from the worktree. The worktree sits on the base, so any file the PR itself changed has different line numbers there, and a comment anchored on a worktree line number lands on the wrong line — or is rejected outright.
  4. Read every changed file. Then trace callers of the changed exported symbols whose signature or behavior changed, and of anything crossing a persistence boundary — via LSP call hierarchy and references, not grep. LSP indexes the worktree, so when the head is not checked out it answers about the base: add a worktree at the head first, or read blobs and say in the report that call tracing was limited.
  5. For 10+ changed files, split the reading by area (e.g. new files, storage/cleanup, build pipeline) across subagents if your harness has them, and synthesize the findings yourself.
  6. If the worktree holds the branch and task works, run task build and task test:unit — a review that never compiled the change is an opinion. NEVER run task format: it would rewrite the diff under review.

Technical perspective

Code structure and correctness only — user impact belongs to the product perspective.

  • Conventions: AGENTS.md and CODESTYLE.md are the standard. This project prefers a bit of duplication over abstraction and minimizes interfaces and generics — flag deviations in either direction, and NEVER report duplication as a DRY defect on its own.
  • Correctness: error wrapping and discarded errors, context propagation and cancellation, goroutine and errgroup ownership, nil map writes, typed-nil interfaces.
  • Security: least privilege, input validation, secret handling, container security.
  • Observability: when deploy or registry operations fail, is the cause visible in the logs?
  • Testability: can the change be exercised without a cluster or a registry?
  • Consistency with the werf, nelm, Docker, and Container Registry patterns already in the project.

Cover the ones the diff actually touches; stay silent about the rest.

Tests as evidence

Passing tests, high coverage, and the author's confidence are not evidence of correctness, whoever wrote the diff. Read test-the-tests/SKILL.md and run its mutation loop against every load-bearing test: mutate the implementation and confirm the test fails, rather than reading the assertions and trusting they'd catch a regression. This is not optional — skipping it because the tests "look thorough" is exactly the failure mode it exists to catch.

For a non-trivial or high-risk diff, or a diff that touches tests or verification infrastructure, also read challenge-review/SKILL.md as an independent challenge pass. It covers check-gaming detection (weakened assertions, quietly skipped tests, mocked-out critical behavior, and more) in one place, so this list doesn't drift from it again.

Show full SKILL.md (418 more words)Show less

Product perspective

What the change does for the user — not how the code is written.

  • User impact: CLI UX, error messages, flag names, defaults, output formatting, breaking changes.
  • Completeness: edge cases (dry-run, force, conflicting flags, empty states).
  • Consistency: matches existing werf CLI conventions and nelm behavior.
  • CLI surface: every flag needs its WERF_* env counterpart, a renamed or removed flag needs a deprecation path, and exit codes plus machine-readable output (--build-report-path, --save-deploy-report) are parsed by users' CI — changing that schema is a breaking change.
  • Documentation: CLI reference pages are generated, so the fix for a stale one is task doc:gen, never a hand edit, and a hand-edited CHANGELOG.md is itself a defect (release-please owns it). Feature docs under pages_en need their pages_ru counterpart.

Risks

Derive risks from the technical and product findings plus the diff — including compound ones, where a technical flaw produces a product gap or an operational hazard. Likelihood is Likely/Possible/Unlikely, severity is Critical/High/Medium/Low; be realistic, do not inflate. Every risk needs a concrete location.

Classify each risk as Technical, Security, UX/Product, or Operational, and report risks only when they exist — an empty matrix is noise. A go.mod bump of nelm, kubedog, or common-go carries the widest blast radius here: it silently changes deploy behavior for everyone.

Gotchas

  • werf uses nelm as its deploy engine — evaluate against nelm patterns, not generic Helm.
  • Stage digests and content-based tags: if a change alters what goes into a digest, every user's cache invalidates and their tags move, which breaks rollback. Say so explicitly.
  • Registry cleanup is destructive — check that --dry-run and the keep policies still hold.
  • Giterminism: any new read of uncommitted state MUST go through giterminism_manager.
  • *_linux.go / *_others.go pairs must stay in sync, as must the Buildah and Docker backends — and a reviewer on macOS cannot compile the Buildah side at all.
  • Persisted formats (stage metadata, bundles, storage records) need backward compatibility.
  • go.mod replaces cobra and oras with werf/3p-* forks — upstream documentation is not authoritative for them.
  • Build and test only via task commands, never raw Go tools.
  • The PR description outlives the review — werf squashes, so it becomes the commit body. Audit its claims against your findings: a safety property asserted there that a finding contradicts is itself a defect, and inline comments anchored to code lines never reach whoever reads it.

Output

Print the report. Do not write it into the repository unless the user asks for a file.

markdown
# Code Review Report

**Base:** `<resolved base branch>`
**Diff:** [X files, +Y/-Z lines]

## Verdict

- Technical: [up to 3 sentences, or `no findings`]
- Product: [up to 3 sentences, or `no findings`]
- Risk: [up to 3 sentences, or `no findings`]

## DoD Criteria

| Criteria | Inferred? | Met? | Evidence |
| :--- | :--- | :--- | :--- |
| [criterion] | yes/no | ✅/⚠️/❌ | file:line |

## Issues

- **Critical** — blocking, with file:line
- **Major** — significant concern
- **Minor** — suggestion

## Risks

Sorted by severity, then by likelihood.

| № | Risk | Type | Likelihood | Severity | Location | Circumstances | Consequences | Recommendation |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |

## Not verified

- What was not built, run, or reachable — and why (Buildah paths do not compile on macOS, e2e needs Linux with kind).
  • Recommendation — the concrete action, with file:line references.

Language

Headers in English, everything else in the user's language.

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

Files

Just SKILL.md in .agents/skills/review of werf/werf.

Open the folder on GitHubat commit fa73c7a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in werf/werf, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Review 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review this skillwerf/werf4.7k—~2kAutomated safety check: PassApache-2.0
GitHub Workflow AutomationFNOSP/FlyNarwhal4957 repos~5.4kAutomated safety check: PassAGPL-3.0
PR Reviewkimdre/doco-cd1.7k—~311Automated safety check: PassApache-2.0
Local Review Codexwindmill-labs/windmill18k—~755Automated safety check: PassCustom licence
CI Adhoc Testnubjs/nub4.4k—~1.7kAutomated safety check: PassMIT
Renovate Actions PR Reviewbacknotprop/plannotator9.2k—~640Automated safety check: PassApache-2.0

Similar skills

  • Automate GitHub workflows with AI assistance. An agent skill from FNOSP/FlyNarwhal.

    495 GitHub starsUsed in 7 repos~5.4k tokens
    DevOps & CloudAuto-check passed
  • PR Review

    kimdre/doco-cd

    Review pull request diffs for correctness and regressions, and provide actionable feedback when asked to review a PR.

    1.7k GitHub stars~311 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Local Review Codex

    windmill-labs/windmill

    Run the CI Codex PR review locally against this branch's unpushed work (committed + uncommitted) before pushing.

    18k GitHub stars~755 tokensUpdated today
    DevOps & CloudAuto-check passed
  • CI Adhoc Test

    nubjs/nub

    Run ad-hoc / exploratory tests on a real OS or platform via CI when the behavior CANNOT be reproduced on the local host or in Docker — macOS Seatbelt / sandbox-exec / codesigning, Windows cmd.exe /…

    4.4k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Renovate Actions PR Review

    backnotprop/plannotator

    Reviews Renovate pull requests that bump GitHub Actions by checking pinned SHAs against upstream tags, scanning changelogs and confirming workflows stay compatible.

    9.2k GitHub stars~640 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Infrastructure Setup

    pavel-molyanov/molyanov-ai-dev

    Provides project infrastructure conventions and review criteria for local setup, Docker, Git hooks, CI/CD, service delivery, release artifacts, monitoring, backups, and operations.

    296 GitHub stars~1.9k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes

More from werf/werf

  • werf conventions for branch names and commit messages. An agent skill from werf/werf.

    4.7k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Pull Request

    werf/werf

    Generates Pull Request titles and descriptions according to werf conventions.

    4.7k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Independent challenge pass for a non-trivial or high-risk change.

    4.7k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • How to treat conclusions inherited from an earlier session — handover notes, prepared comments, verdict files, plans.

    4.7k GitHub stars~669 tokensUpdated yesterday
    Auto-check passed
  • Session Retro

    werf/werf

    Analyze the current session for harness-worthy lessons — repeated corrections, discovered conventions, skill bugs — and turn them into concrete repo changes: docs, skills, task targets, linter…

    4.7k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Verify a test actually falsifies the behavior it claims to cover, via real mutation.

    4.7k GitHub stars~1k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Review

What does Review do?

Code review of a pull request, branch, or diff. An agent skill from werf/werf. Review is an agent skill from werf/werf. Code review of a pull request, branch, or diff.

When should I use Review?

Review fits situations like: asked to review a PR; tasks that involve Pull requests; tasks that involve CI/CD.

How do I install Review in Claude Code?

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

How do I install Review in Codex?

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

Can I use Review 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 werf/werf --skill review -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, .gemini/skills/review, .github/skills/review and .opencode/skills/review in your project.

What does Review need to run?

Going by SKILL.md and its folder, Review needs the command-line tools its instructions call (git). Our summary lists: Docker.

Does Review access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Review 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 use?

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

How many tokens does Review use?

About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Review?

Skills that share tags, products or a category with Review: GitHub Workflow Automation (FNOSP/FlyNarwhal, 495 stars), PR Review (kimdre/doco-cd, 1.7k stars), Local Review Codex (windmill-labs/windmill, 18k stars) and CI Adhoc Test (nubjs/nub, 4.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review?

werf (a GitHub organization) maintains it in werf/werf, which has 4,728 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.

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