High-signal, embedded-aware Pigweed code review skill with strict comment calibration.

Apache-2.0Auto-check passedDevelopment

Install Review

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

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

GitHub CLI
$ gh skill install pigweed-project/pigweed 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/pigweed-project/pigweed.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
548
Token cost
~3k tokens
SKILL.md length
1,339 words
Files
3
Skills in repo
10
Repo updated
First seen
Licence
Apache-2.0

At a glance

High-signal, embedded-aware Pigweed code review skill with strict comment calibration.

  • Works in 4 steps: Gather Context & Diff → Dispatch Reviewer Subagents & Merge… → Empirical Check (When Local Workspace… → …
  • Tasks that involve Performance reviews
  • SKILL.md covers Operating Modes, Comment Calibration &… and Step-by-Step Review Workflow
  • Calls gh and git; reaches pigweed.dev

What it does

Review is an agent skill from pigweed-project/pigweed. High-signal, embedded-aware Pigweed code review skill with strict comment calibration. Dispatches the enabled language reviewer subagents in parallel (one patch each), merges their findings into one calibrated verdict, and falls back to an inline audit for files with no enabled reviewer. Supports both Self-Review Gate mode (pre-upload verification for /crank) and Gerrit CL Reviewer mode (staging calibrated --draft comments via ./gh pr comment). Do not load for a quick LGTM or a single-file look, and not for…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `TEST.md` and `reviewer_workflow.md`).

It sits in Development, covering Performance reviews, Subagents and Code review. The repository describes itself as: Modern software development for embedded systems. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Performance reviews
  • Tasks that involve Subagents
  • Tasks that involve Code review

Example prompts

  • “/review”

Requirements

  • Python 3

Workflow steps

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

  1. Gather Context & Diff
  2. Dispatch Reviewer Subagents & Merge Findings
  3. Empirical Check (When Local Workspace Matches)
  4. Output Verdict & Stage Drafts

What it can do on your machine

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

    • gh
    • git

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • pigweed.dev

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

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

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 pigweed-project/pigweed at commit e73c1a0, republished under its Apache-2.0 licence (© pigweed-project). 1,339 words, ~2,956 tokens.

Download SKILL.mdSave it as .claude/skills/review/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
review
description
High-signal, embedded-aware Pigweed code review skill with strict comment calibration. Dispatches the enabled language reviewer subagents in parallel (one patch each), merges their findings into one calibrated verdict, and falls back to an inline audit for files with no enabled reviewer. Supports both Self-Review Gate mode (pre-upload verification for /crank) and Gerrit CL Reviewer mode (staging calibrated --draft comments via ./gh pr comment). Do not load for a quick LGTM or a single-file look, and not for /respond-style comment handling (see .agents/skills/respond/SKILL.md).
disable-model-invocation
true

Pigweed Calibrated Code Review (/review)

/review performs a rigorous, high-signal engineering review tailored to Pigweed's embedded C++, Rust (pw_kernel), Python, and dual-build (Bazel + GN) architecture.

Unlike generic review prompts that eitherrubber-stamp changes or flood CLs with low-value stylistic noise, /review enforces strict comment calibration, empirical verification, and embedded systems invariants.


Operating Modes

Determine the mode from how /review is invoked:

  1. Mode A — Self-Review Gate (Local Pre-Upload / /crank Subagent):
    • Trigger: Bare /review on local uncommitted/unpushed changes, or invoked by /crank before ./gh pr create / ./gh pr ready.
    • Behavior: Inspects git diff origin/main...HEAD (or working tree diff), runs targeted verification, and emits a structured verdict (PASS or NEEDS_FIXES) with actionable file/line findings so the author agent fixes every [bug], [embedded/size], [api], and [test] issue before a human reviewer ever sees the CL.
  2. Mode B — Gerrit CL Reviewer (/review <cl> or Reviewer Workflow):
    • Trigger: /review <cl_id_or_url> (or bare /review when reviewing a teammate's CL).
    • Behavior: Fetches CL context via ./gh pr view <cl> --comments and ./gh pr diff <cl>, evaluates the patch, and stages calibrated inline comments using ./gh pr comment <cl> --path <file> --line <line> -m "<msg>" --draft. Never publishes comments live without --draft unless explicitly instructed by the user.

Comment Calibration & Anti-Slop Rules

Every comment or finding MUST pass these calibration filters:

  1. Zero Praise / Filler Comments: Never post inline comments that merely say "Nice refactor!", "Looks good", or restate what the code does.
  2. Verify Before Accusing: Before claiming a symbol is undefined, a header is missing, or a lock is unlocked, verify with code_search, view_file, or bazelisk test. Zero hallucinated compiler errors.
  3. Mandatory Severity Prefix: Every inline finding must begin with one of:
    • [bug] — Correctness, memory safety, race condition, lifetime/dangling reference, or unhandled error status.
    • [embedded/size] — Dynamic heap allocation in a no-alloc module, unbounded recursion/stack frame (>256B buffer on stack), ISR-unsafe blocking call, or unnecessary template/code-size bloat.
    • [api] — Public header C++17 incompatibility, missing #pragma once, symbol outside pw namespace, unprefixed macro, or Doxygen mismatch.
    • [build] — Missing BUILD.bazel / BUILD.gn / CMakeLists.txt parity, missing visibility/deps, or broken negative compilation test (PW_NC_TEST).
    • [test] — Missing unit test for new behavior/bugfix, or use of raw EXPECT_EQ(status, pw::OkStatus()) instead of PW_TEST_EXPECT_OK.
    • nit: — Optional, minor readability or naming polish.
  4. Nit Budget (Max 3): Emit at most 3 nit: comments across the entire CL. If there are blocking [bug] or [embedded/size] issues, prioritize those and drop minor nits entirely.
  5. Respect Formatter Authority: Never leave inline comments about whitespace, line wrapping, or include sorting that ./pw format handles automatically.
  6. Changed Lines Only: Review the diff, not the file. Never stage an inline comment on unchanged code; put out-of-diff observations, if any, in the summary (Mode A) or in one change-level draft (Mode B).
  7. Cite the Rule: When a finding rests on a Pigweed rule, link it as a pigweed.dev URL, e.g. https://pigweed.dev/code_reviews.html#docs-code-reviews-checklist-<aspect> or https://pigweed.dev/style/<page>.html#<anchor>.

Step-by-Step Review Workflow

Step 1: Gather Context & Diff
  • For Mode A (Local Self-Review):
    bash
    git log -1 --format=%B HEAD
    git diff origin/main...HEAD
  • For Mode B (Gerrit CL <cl>):
    bash
    ./gh pr view <cl> --comments
    ./gh pr diff <cl>
    If the CL links a Buganizer issue (Bug: b/<id> or Fixed: b/<id>), inspect it via ./gh issue view <id> to verify the change actually solves the stated problem.
  • Hard stops: If no target resolves (no HEAD ahead of origin/main and no CL given), or the CL is MERGED or ABANDONED (./gh pr view <cl> --json state), stop and say why without dispatching anything.
Step 2: Dispatch Reviewer Subagents & Merge Findings

You coordinate: you do not read changed source yourself when a reviewer subagent handles the file. Work from the diff gathered in Step 1.

  1. Map files to reviewers. A row applies only if a changed file matches it and the agent is enabled (its definition file exists and git grep -l "^disabled: true" -- <definition file> prints nothing).

    Files matchingAgent (name:)Definition file
    *.c, *.cc, *.h, *.inccpp-reviewer.agents/agents/cpp_reviewer.md
    *.py, *.pyipython-reviewer.agents/agents/python_reviewer.md
    *.rsrust-reviewer.agents/agents/rust_reviewer.md
  2. Cut one patch per reviewer without reading it. out=$(mktemp -d), then git diff origin/main...HEAD -- <its files> > "$out/<agent>.patch" (Mode B: filter the ./gh pr diff <cl> output the same way).

  3. Dispatch every selected reviewer in one parallel step, each as a read-only background subagent. Give each the checkout path, its patch path, its file list, and this instruction verbatim:

    Read and follow .agents/skills/review/reviewer_workflow.md. Return findings in the Finding format defined there and nothing else.

    Wait for every reviewer to finish before merging.

  4. Merge. Render findings with the severity prefixes above as mapped in reviewer_workflow.md: blocking and should-fix become [<tag>] <issue> (<rule>), nit becomes nit: <issue>. Deduplicate same file/line/rule; order by severity with scope: in-diff before out-of-diff. Never soften, reword, or drop a reviewer's blocking finding. Apply the nit budget to the merged set.

  5. Fall back for the rest. Files matching no row, or only rows whose agent is disabled or absent, get the inline audit below. Report which files each reviewer handled and which fell back.

Show full SKILL.md (559 more words)Show less
Fallback: inline audit

For files no enabled reviewer handled, read the full surrounding file context (view_file) for modified hunks—never review a diff hunk in isolation. Check these six Pigweed dimensions:

1. Embedded Memory & Execution Constraints
  • Zero Dynamic Allocation: Core Pigweed C++ modules disallow new, delete, std::vector, std::string, std::map, and std::function. Verify fixed-capacity alternatives (pw::InlineString, pw::Vector, pw::Function, pw::Alloctor injection) are used.
  • Stack & Code Size (pw_bloat): Flag large stack allocations (e.g., byte arrays >256 bytes on MCU stacks), accidental <iostream>/<sstream> includes, or heavy template instantiations on hot paths.
  • ISR & Thread Safety (pw_sync): Check InterruptSpinLock vs. Mutex usage in interrupt-callable contexts, lock annotations (PW_GUARDED_BY, PW_EXCLUSIVE_LOCKS_REQUIRED), and Borrowable lifetimes.
2. C++17 / Rust (pw_kernel) / Python Idioms
  • C++17 Compatibility: Public headers (public/.../*.h) must compile cleanly with -std=c++17. C++20 enhancements must be guarded with __cplusplus or PW_CXX_STANDARD_IS_SUPPORTED(20).
  • Error Handling: Recoverable errors must use pw::Status / pw::Result<T> (no C++ exceptions). Fatal invariant violations must use PW_CHECK / PW_ASSERT.
  • pw_async2 (if applicable): Verify Pend(Context&) implementations properly register a Waker (PW_ASYNC_STORE_WAKER) whenever returning Pending(), and never hold locks across yield points.
  • Rust / pw_kernel (if applicable): Verify no_std compliance, minimal unsafe blocks with explicit // SAFETY: justifications, and panic-free error propagation.
3. Build System Parity (Bazel + GN + CMake)
  • If a source file (.cc), public header (.h), or dependency was added or removed in BUILD.bazel, verify whether the module also maintains BUILD.gn (and CMakeLists.txt). Missing GN parity is one of the top causes of Pigweed CQ breakages!
4. Test Rigor & Negative Compilation Tests
  • Every bugfix or behavior change requires a pw_unit_test (*_test.cc) test case.
  • Assertions on pw::Status / pw::Result should use PW_TEST_EXPECT_OK and PW_TEST_ASSERT_OK.
  • Template/constexpr API constraints should include PW_NC_TEST negative compilation tests where appropriate.
5. Documentation & Commit Hygiene
  • Public API additions/changes in public/ headers must update Doxygen comments and module .rst docs (docs skill conventions).
  • Commit message must follow <module>: <Imperative subject <=72 chars>, explain the why, include Bug: b/<id> or Fixed: b/<id>, and preserve Change-Id:.
6. AI Artifacts
  • If the change touches .agents/, AGENTS.md, GEMINI.md, or CLAUDE.md: read docs/sphinx/style/ai_artifacts.rst in full at review time and apply its review checklist; cite findings as https://pigweed.dev/style/ai_artifacts.html#<anchor> (for example #docs-pw-style-ai-artifacts-review-checklist).

Step 3: Empirical Check (When Local Workspace Matches)

When running in Mode A (or Mode B from a worktree allocated with ./gh wt use review-<cl> --cl <cl> --json; never ./gh pr checkout in a checkout you did not allocate):

  • Run hermetic tests for modified modules:
    bash
    bazelisk test --noshow_progress --noshow_loading_progress //<module>/...
  • Check formatting:
    bash
    ./pw format --check

Step 4: Output Verdict & Stage Drafts
In Mode A (Self-Review Gate):

Return a structured markdown report:

  • Verdict: PASS (zero [bug], [embedded/size], [api], [build], or [test] findings) or NEEDS_FIXES.
  • Blocking Findings: File, line, severity tag, and exact fix required.
  • Nits (<= 3): Optional minor improvements.
  • Coverage: which files each reviewer subagent handled, which fell back to the inline audit, and any scope: out-of-diff observations.
In Mode B (Gerrit CL Reviewer):
  1. Check existing comments (./gh pr view <cl> --comments) so you do not duplicate feedback already left by another reviewer.
  2. Stage each in-diff finding as a private Gerrit draft:
    bash
    ./gh pr comment <cl> --path <file> --line <line> -m "[<tag>] <concise explanation and concrete suggestion>" --draft
    Put out-of-diff findings, if any, in one change-level draft (./gh pr comment <cl> -m "<summary>" --draft). Never vote.
  3. Present a summary table of all staged --draft comments to the user, along with the command to publish them once reviewed (./gh pr review <cl> --publish).

© pigweed-project, 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

SKILL.md and 2 other files in .agents/skills/review of pigweed-project/pigweed.

  • SKILL.md
  • TEST.md
  • reviewer_workflow.md

Open the folder on GitHubat commit e73c1a0

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 skillpigweed-project/pigweed548—~3kAutomated safety check: PassApache-2.0
GitHub Review Iterationprisma/orm48k—~2.2kAutomated safety check: PassApache-2.0
Cherry Studio PR ReviewCherryHQ/cherry-studio53k—~3.9kAutomated safety check: PassAGPL-3.0
PR Reviewjaemk/self_update961—~1.5kAutomated safety check: NotesMIT
Cursor Composer Task DelegateChachamaru127/claude-code-harness3.2k—~4.4kAutomated safety check: NotesMIT
Local PR Reviewwindmill-labs/windmill18k—~995Automated safety check: PassCustom licence

Similar skills

  • Official

    Runs a loop on a GitHub pull request: fetch review state, triage comments into actions, implement them and resolve threads, repeating until nothing actionable is left.

    48k GitHub stars~2.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Cherry Studio PR Review

    CherryHQ/cherry-studio

    Reviews Cherry Studio branches, pull requests, commits, files and docs against the project's own architecture, naming, API-boundary and UI rules, report-only by default.

    53k GitHub stars~3.9k tokensUpdated today
    DevelopmentAuto-check passed
  • PR Review

    jaemk/self_update

    Targeted, read-only review of a PR or checked-out branch. An agent skill from jaemk/self_update.

    961 GitHub stars~1.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check: notes
  • Cursor Composer Task Delegate

    Chachamaru127/claude-code-harness

    Hands one implementation task to Cursor Composer in an isolated git worktree, then reviews its diff and cherry-picks the result into the main branch.

    3.2k GitHub stars~4.4k tokensUpdated 5 days ago
    DevelopmentAuto-check: notes
  • Local PR Review

    windmill-labs/windmill

    Runs the same code review locally that GitHub's auto-review actions run on a PR, delegating to a fresh-context subagent so the review isn't biased by the main session's own reasoning.

    18k GitHub stars~995 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Auto Devflow

    HuangPuStar/FenixAgent

    A skill your agent uses when starting an issue, bugfix, feature, or refactor that should be driven by multiple coordinated subagents: explore → plan → code → review, with the main agent acting as…

    552 GitHub stars~3k tokensUpdated today
    DevelopmentAuto-check passed

More from pigweed-project/pigweed

All 10 skills in this repo
  • Oncall

    pigweed-project/pigweed

    Pigweed oncall rotation runbooks and maintenance workflows (such as rolling CIPD client tools for b/315378787).

    548 GitHub stars~963 tokensUpdated today
    Auto-check passed
  • Crank

    pigweed-project/pigweed

    Autonomous "take the next step" workflow orchestrator for Pigweed.

    548 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Docs

    pigweed-project/pigweed

    A skill your agent uses for ALL documentation-related workflows: rst style guide, changelog updates, C/C++ API reference (Doxygen)

    548 GitHub stars~804 tokensUpdated today
    Auto-check passed
  • Freshen

    pigweed-project/pigweed

    Safely rebase or fast-forward the active Pigweed worktree onto its target branch (origin/main), resolve Pigweed dual-build and code conflicts, preserve Gerrit Change-Id footers, and verify local…

    548 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Manual CLI Test

    pigweed-project/pigweed

    Interactively "taste the CLI" and "kick the tires" on any CLI tool or subcommand (/manual-cli-test, /agent-cli-kick-tires).

    548 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Respond

    pigweed-project/pigweed

    Address Gerrit review comments and private author drafts on a Pigweed CL with calibrated engineering judgment—implementing valid fixes, answering questions, or pushing back respectfully with…

    548 GitHub stars~2.2k tokensUpdated today
    Auto-check passed

Questions about Review

What does Review do?

High-signal, embedded-aware Pigweed code review skill with strict comment calibration. Review is an agent skill from pigweed-project/pigweed. High-signal, embedded-aware Pigweed code review skill with strict comment calibration.

When should I use Review?

Review fits situations like: tasks that involve Performance reviews; tasks that involve Subagents; tasks that involve Code review.

How do I install Review in Claude Code?

Run `npx skills add pigweed-project/pigweed --skill review -a claude-code`. Or copy the skill folder (.agents/skills/review in pigweed-project/pigweed) 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 pigweed-project/pigweed --skill review -a codex`. Or copy the skill folder (.agents/skills/review in pigweed-project/pigweed) 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 pigweed-project/pigweed --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 (gh and git). Our summary lists: Python 3.

Does Review access the network?

SKILL.md names 1 domain. In commands or code: pigweed.dev; the agent is likely to contact it when it follows the instructions. 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 3k tokens (SKILL.md is roughly 12k 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 Review Iteration (prisma/orm, 48k stars), Cherry Studio PR Review (CherryHQ/cherry-studio, 53k stars), PR Review (jaemk/self_update, 961 stars) and Cursor Composer Task Delegate (Chachamaru127/claude-code-harness, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review?

pigweed-project (a GitHub organization) maintains it in pigweed-project/pigweed, which has 548 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.

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