Reviewing cpp
Skill qte77/claude-code-plugins/plugins/cpp-desktop/skills/reviewing-cpp
A Claude Code plugin marketplace providing skills, rules, and scripts extracted from a production development workflow.
npx -y skills add qte77/claude-code-plugins --skill reviewing-cppAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Reviews C++ desktop code for memory safety, framework anti-patterns, build system issues, and thread safety. Use when reviewing C++ GUI code quality or when the user asks for code review.
SKILL.md
3.1 KB, as published. Nobody here has run it
Review Context
- Changed files: !
git diff --name-only HEAD~1 2>/dev/null || echo "No recent commits" - Staged files: !
git diff --staged --name-only
C++ Desktop Code Review
Scope: $ARGUMENTS
Delivers focused, streamlined C++ desktop code reviews matching stated task requirements exactly. No over-analysis.
Workflow
- Read task requirements to understand expected scope
- Detect framework (wxWidgets / GTK3 / Qt) from includes and CMakeLists.txt
- Match review depth to task complexity (single file vs multi-module)
- Validate requirements — does implementation match task scope exactly?
- Issue focused feedback with specific file paths and line numbers
Review Strategy
Simple Tasks (single file/widget): Memory safety, framework correctness, requirements match
Complex Tasks (multi-module): Above plus architecture, ownership graph, event flow, thread safety
Always: Check CMakeLists.txt, check for raw pointer leaks
Review Checklist
Memory Safety:
- No raw
newwithout matchingdelete(prefer smart pointers) - No dangling pointers to destroyed widgets
- RAII used for all resource acquisition (files, sockets, handles)
- No
reinterpret_castwithout safety justification - Container access bounds-checked where needed (
at()vs[])
Framework Anti-Patterns:
- wxWidgets: no manual delete of child windows (parent owns them)
- GTK3: all
g_object_unref/g_freecalls present - Qt: no
deleteon QObject children (parent-child ownership) - No blocking calls in GUI event loop (use async/worker threads)
- Event handlers do not throw exceptions across framework boundaries
Build System (CMakeLists.txt):
- Target-based commands (no
include_directories(),link_libraries()) -
find_package()with imported targets, not raw variables - Minimum CMake version specified
- No hardcoded paths or platform assumptions without conditionals
Thread Safety:
- GUI updates only from main thread
- Worker threads use framework-specific dispatch (wxWidgets:
CallAfter, Qt:QMetaObject::invokeMethod, GTK:g_idle_add) - Shared data protected by mutex or atomic operations
- No data races between event handlers and background threads
Code Quality:
- Follows project patterns in
src/andinclude/ - Const-correctness on methods and parameters
- Forward declarations used to minimize header coupling
- GUI logic separated from business logic
Output Standards
Simple Tasks: CRITICAL issues only, clear approval when requirements met Complex Tasks: CRITICAL/WARNINGS/SUGGESTIONS with specific fixes All reviews: Concise, actionable, no unnecessary complexity analysis