mcpbeat

Cpp Review

clickhouse/cpp-review

Review C++ code against Google C++ Style Guide. Use when reviewing C++ code, pull requests, or when asked to check code style compliance.

612 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
119
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/ClickHouse/pg_stat_ch --skill cpp-review

The instruction itself

10 sections, as written by the author

C++ Code Review (Google Style)

Review C++ code for compliance with the Google C++ Style Guide.

Review Checklist

Naming

  • [ ] Types use PascalCase
  • [ ] Functions use PascalCase (accessors use snake_case)
  • [ ] Variables use snake_case
  • [ ] Class members have trailing underscore: member_
  • [ ] Constants use kPascalCase
  • [ ] Macros use UPPER_CASE with project prefix

Headers

  • [ ] Has #define guard: PROJECT_PATH_FILE_H_
  • [ ] Self-contained (includes all dependencies)
  • [ ] Includes ordered: related header, C system, C++ stdlib, other libs, project
  • [ ] No forward declarations unless necessary

Classes

  • [ ] Single-argument constructors are explicit
  • [ ] Data members are private
  • [ ] Copy/move semantics explicit (= default, = delete)
  • [ ] No virtual calls in constructors
  • [ ] Uses composition over inheritance when appropriate

Functions

  • [ ] Returns values instead of output parameters when possible
  • [ ] Parameters ordered: inputs before outputs
  • [ ] Functions are ≤40 lines (prefer smaller)
  • [ ] Uses override/final for virtual overrides

Modern C++

  • [ ] Uses nullptr (not NULL or 0)
  • [ ] Uses C++ casts (not C-style)
  • [ ] Uses range-based for loops where appropriate
  • [ ] Uses auto appropriately (not excessively)
  • [ ] Smart pointers for ownership (unique_ptr, shared_ptr)

Formatting

  • [ ] 80 character line limit
  • [ ] 2-space indent
  • [ ] Braces on same line as control structures
  • [ ] Spaces around binary operators

Feedback Format

Use severity levels:

  • 🔴 MUST FIX: Style violations or bugs that must be fixed
  • 🟡 SHOULD FIX: Strong recommendations for improvement
  • 🟢 CONSIDER: Optional enhancements or suggestions

Example Review Comment

🔴 **MUST FIX**: Missing `explicit` on single-argument constructor
Line 45: `Foo(int value)` should be `explicit Foo(int value)` to prevent
implicit conversions.

🟡 **SHOULD FIX**: Function too long
Lines 78-145: `ProcessData()` is 67 lines. Consider breaking into smaller
functions for readability and testability.

🟢 **CONSIDER**: Use structured bindings
Line 23: `auto [iter, success] = map.insert({key, value});` would be clearer
than separate `.first` and `.second` access.

How to use it

Copy the folder

Take clickhouse/cpp-review from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.