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.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add qte77/claude-code-plugins --skill reviewing-cpp --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Reviewing Cpp?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qte77-reviewing-cpp)More formats (shields.io, HTML) on the badges page.
---
name: reviewing-cpp
description: 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.
compatibility: Designed for Claude Code
metadata:
allowed-tools: Read, Grep, Glob
argument-hint: [file-or-directory]
stability: stable
---
# 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
1. **Read task requirements** to understand expected scope
2. **Detect framework** (wxWidgets / GTK3 / Qt) from includes and CMakeLists.txt
3. **Match review depth** to task complexity (single file vs multi-module)
4. **Validate requirements** — does implementation match task scope exactly?
5. **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 `new` without matching `delete` (prefer smart pointers)
- [ ] No dangling pointers to destroyed widgets
- [ ] RAII used for all resource acquisition (files, sockets, handles)
- [ ] No `reinterpret_cast` without 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_free` calls present
- [ ] Qt: no `delete` on 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/` and `include/`
- [ ] 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
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!