Appearance
Everything Claude Code C++ Reviewer Agent(cpp-reviewer)是专为 C++ 项目打造的专业代码审查代理,聚焦内存安全、现代 C++ 惯用法、并发与性能等核心问题。相比直接提问 Claude,cpp-reviewer 能自动分析 git diff、运行 clang-tidy/cppcheck、聚焦高风险点,并输出结构化审查报告,极大提升 C++ 代码质量与安全性。适用于所有 C++ 代码变更场景,尤其推荐在团队协作、PR 审查和生产前自动化流程中使用。
Everything Claude Code C++ Reviewer Agent:内存安全、现代 C++ 惯用法与并发代码审查
在 AI 辅助编程日益普及的今天,C++ 作为底层高性能语言,其内存安全、并发正确性和现代规范尤为关键。Everything Claude Code C++ Reviewer Agent(cpp-reviewer)正是为此而生——它是 Everything Claude Code 插件体系中专注于 C++ 代码审查的专业 Agent,能自动、系统地发现并报告 C++ 代码中的高风险隐患与不规范实现。
相比直接向 Claude 或其他 LLM 提问,cpp-reviewer 具备自动化、结构化、可复现的专业审查能力,能与 Skills、Hooks、Rules 等 ECC 组件深度集成,成为 C++ 团队保障代码质量与安全的核心基石。
一、cpp-reviewer Agent 能解决什么问题?
1.1 典型痛点
- C++ 代码易出现内存泄漏、未初始化、悬垂指针等致命问题,人工审查难以全覆盖
- 并发、锁、RAII、现代 C++ 特性(如智能指针、move 语义)使用不当,易引发隐蔽 Bug
- 传统 LLM 问答无法自动聚焦增量变更、缺乏一致性和专业审查标准
- 团队协作时,代码规范和安全底线难以统一执行
1.2 cpp-reviewer 的核心能力
- 自动聚焦变更:通过
git diff精确定位本次修改的 C++ 文件和行 - 工具链集成:自动运行
clang-tidy、cppcheck等静态分析工具,补足 LLM 盲区 - 多维度审查:涵盖内存安全、并发、现代惯用法、性能、可维护性等 6 大维度
- 结构化风险分级:严格区分 CRITICAL/HIGH/MEDIUM 问题,输出可追溯的审查结论
- 自动触发与手动调用:支持在 PR、CI、保存文件等多场景自动或手动激活
- 与 Rules/Skills 协作:结合 cpp-coding-standards 等规则集,确保团队规范落地
二、cpp-reviewer 工作机制与触发方式
2.1 触发机制
- 自动激活:在 C++ 文件有变更(如 PR、保存、commit 前)时,系统会自动调用 cpp-reviewer
- 手动调用:可通过命令、UI 按钮或 CLI 显式触发,适合单独复查某段代码或历史 diff
- 与 Hooks 集成:结合 PreToolUse / PostToolUse / Stop 等 Hook,可实现自动化审查流水线
2.2 审查流程
收集变更
自动执行:bashgit diff -- '*.cpp' '*.hpp' '*.cc' '*.hh' '*.cxx' '*.h'精确聚焦所有 C++ 源/头文件的最新修改。
静态分析
如检测到clang-tidy或cppcheck可用,则自动运行:bashclang-tidy --checks='*,-llvmlibc-*' src/*.cpp -- -std=c++17 cppcheck --enable=all --suppress=missingIncludeSystem src/捕获 LLM 可能遗漏的警告和错误。
多维度结构化审查
- 内存安全(CRITICAL):如 raw new/delete、buffer overflow、use-after-free、未初始化变量、内存泄漏、空指针解引用等
- 安全性(CRITICAL):如命令注入、格式化字符串漏洞、整数溢出、硬编码密钥、危险类型转换等
- 并发(HIGH):如数据竞争、死锁、缺少锁保护、线程未 join/detach
- 代码质量(HIGH):如未使用 RAII、Rule of Five 不完整、大函数、深层嵌套、C 风格代码
- 性能与最佳实践(MEDIUM):如不必要的拷贝、缺少 move 语义、字符串拼接、vector 未 reserve、const 正确性、auto 误用、include 污染等
输出结构化报告
- 明确指出每一项风险的文件、行号、问题描述、建议修复方案
- 分级给出结论:Approve(无 CRITICAL/HIGH)、Warning(仅 MEDIUM)、Block(有 CRITICAL/HIGH)
与团队规范联动
可自动引用 cpp-coding-standards 等规则,确保一致性。
三、与其他 Agent 的协作模式
cpp-reviewer 并非孤立工作,常见组合包括:
- 与 code-reviewer 协同:code-reviewer 负责多语言通用质量审查,cpp-reviewer 专注 C++ 深度安全与惯用法,两者可串联或并行调用,互为补充(详见 代码质量、安全性与可维护性专业审查代理)。
- 与 cpp-build-resolver 联动:若发现构建错误,可自动切换至 C++ Build Resolver 进行修复建议,实现“审查-修复”闭环。
- 与 security-reviewer 串联:安全敏感代码先由 cpp-reviewer 发现风险,再交由 security-reviewer 进行全局安全扫描。
- 与 Hooks/Rules/Skills 体系:通过 Hooks 自动化事件和 Rules 规则库驱动,保证审查流程标准化、自动化。
四、实际使用示例
场景:开发者在分支上提交了新的 C++ 代码,包含原始指针、手动内存管理和多线程操作。系统自动触发 cpp-reviewer 审查,以下为典型对话过程:
plaintext
用户提交代码后,cpp-reviewer 自动激活:
cpp-reviewer:
检测到以下 C++ 代码变更(git diff):
- src/foo.cpp: 新增 raw new/delete 操作,未使用智能指针
- src/bar.cpp: 多线程写入共享变量,未加锁保护
- src/baz.cpp: 函数超 80 行,嵌套层级达 5 层
静态分析结果(clang-tidy/cppcheck):
- [CRITICAL] src/foo.cpp: 使用原始指针管理内存,建议替换为 std::unique_ptr
- [HIGH] src/bar.cpp: 共享变量 data 存在数据竞争风险,建议加锁或使用 std::atomic
- [HIGH] src/baz.cpp: 函数过长且嵌套过深,建议拆分重构
审查结论:Block(存在 CRITICAL/HIGH 级别问题)
修复建议:
1. 用智能指针替换 raw new/delete
2. 为多线程共享变量加锁或用原子类型
3. 拆分过长函数,减少嵌套层级
如需详细 C++ 规范,请参考 skill: cpp-coding-standards开发者可根据报告逐项修复,再次触发 cpp-reviewer 直至所有问题消除,获得 Approve 结论。
五、为什么要用专门的 cpp-reviewer Agent?
- 自动聚焦增量变更:无需手动复制粘贴代码,自动分析 git diff,避免遗漏
- 专业分级与标准:严格区分 CRITICAL/HIGH/MEDIUM,输出结构化结论,便于团队协作和自动化 CI 集成
- 工具链与 LLM 结合:融合 clang-tidy/cppcheck 静态分析,补足 LLM 语义盲区
- 可复现、可追溯:每次审查流程、结论、建议均可记录,支持合规与审计
- 深度集成 ECC 体系:与 Skills、Hooks、Rules 等组件协同,形成自动化 DevSecOps 流水线
- 避免 LLM 直接提问的不确定性:直接问 Claude 只会得到一次性、上下文不固定的建议,缺乏一致性和安全保障
六、最佳实践与注意事项
- 始终在 C++ 代码变更后第一时间运行 cpp-reviewer
- 结合团队 C++ 规范(如 cpp-coding-standards)与 Rules 体系,确保审查标准化
- 与构建修复、全局安全审查等 Agent 串联,形成闭环
- 在 CI/CD、PR、保存文件等关键节点自动触发,减少人工遗漏
- 如需自定义审查规则,可扩展 Skill/Rule 或调整 Hooks 配置
更多 ECC 体系最佳实践,建议参考:Everything Claude Code 完全指南、快速上手指南、Hooks 实战。
FAQ
Q: cpp-reviewer 和 code-reviewer 有什么区别? A: code-reviewer 适用于多语言通用审查,cpp-reviewer 专注于 C++ 的内存安全、并发和现代惯用法,能发现更深层次的 C++ 特有风险。
Q: cpp-reviewer 能自动修复问题吗? A: 审查代理本身只负责发现和报告问题,修复建议会在报告中给出。实际修复可结合其他 Agent 或手动完成。
Q: 没有 clang-tidy/cppcheck 时 cpp-reviewer 还能用吗? A: 可以,cpp-reviewer 仍会基于代码 diff 和 LLM 语义分析执行审查,但建议尽量配置静态分析工具以提升准确性和覆盖率。