C

C++代码评审大师

作者:鹿Sir开发工具v1

组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,支持PR review、增量审查、全量评审和代码质量评分

下载量
256
点赞
63
价格
免费

技能文档

---
name: cpp-daima-pingshen-dashi
title: C++代码评审大师
description: 组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,支持PR review、增量审查、全量评审和代码质量评分
category: 开发工具
---

# C++代码评审大师

组合式 C++ 代码评审方案,整合静态分析、C++ 专项检查、多轮迭代评审与 AI 推理能力。

## 架构

```
用户发起 C++ 代码评审
         |
         v
+-------------------------+
|  1. C++ 专项检查          |  内存安全、悬垂引用、UB、所有权
|     + 静态分析预检         |  本地 regex 预检
+------------+------------+
             |
             v
+-------------------------+
|  2. 三路并行 AI 评审       |
|                           |
|   Reviewer-1: 功能正确性  |
|   Reviewer-2: 性能与内存  |
|   Reviewer-3: 安全与最佳实践|
+------------+------------+
             |
             v
+-------------------------+
|  3. 汇总 + 评分报告       |
+------------+------------+
             |
             v
+-------------------------+
|  4. 可选自动修复          |
+-------------------------+
```

## 评审维度

| 维度 | C++ 专项关注点 |
|------|---------------|
| **内存安全** | 内存泄漏、悬垂引用、野指针、double-free、use-after-free |
| **未定义行为** | 未初始化变量、数据竞争、整数溢出、类型双关 |
| **RAII / 所有权** | 构造/析构顺序、智能指针误用、锁粒度 |
| **性能** | 不必要的拷贝、临时对象、虚函数开销、内联建议 |
| **安全** | 缓冲区溢出、格式化字符串、指针运算、原始 new/delete |
| **可读性** | 命名规范、头文件组织、模板复杂度、注释完整性 |
| **最佳实践** | 现代 C++(C++17/20/23)特性、constexpr、Concepts |

## 工作流程

### Step 1 -- 收集代码上下文

- 用户指定文件、目录或 git diff
- 检测是否 PR 场景
- 判断增量审查还是全量审查

### Step 2 -- C++ 专项预检

执行本地静态分析,检测 C++ 常见问题模式:
- 原始 new[] 未配对 delete[]
- sprintf 等不安全函数使用
- 已废弃特性(如 std::auto_ptr)
- 宏定义应替换为 constexpr
- mutable 成员的线程安全问题

### Step 3 -- 三路并行 AI 评审

启动 3 个独立 reviewer,每个关注不同维度:

- **Reviewer-1(功能正确性)**:逻辑错误、边界条件、断言、异常处理
- **Reviewer-2(性能与内存)**:内存分配、拷贝语义、算法复杂度、缓存友好性
- **Reviewer-3(安全与最佳实践)**:缓冲区安全、输入验证、C++ modern guidelines

### Step 4 -- 汇总报告

综合所有 reviewer 意见,输出统一报告:

```markdown
## C++ 代码评审报告

### 项目概览
- 评审范围:<文件/目录/diff>
- 评审模式:<全量/增量/PR>

### C++ 专项问题
| 严重性 | 类型 | 位置 | 问题描述 |
|--------|------|------|----------|
| High | Memory | foo.cpp:42 | 原始 new[] 无对应 delete[] |
| Medium | UB | bar.cpp:87 | 成员变量未初始化 |
| Medium | Security | baz.cpp:23 | sprintf 使用,缓冲区溢出风险 |

### 代码评分(百分制)
| 维度 | 得分 |
|------|------|
| 内存安全 | XX/100 |
| 逻辑正确性 | XX/100 |
| 性能 | XX/100 |
| 安全 | XX/100 |
| 可读性 | XX/100 |
| **总分** | **XX/100** |

### 修复优先级
1. [P0 - 必须修复] ...
2. [P1 - 强烈建议] ...
3. [P2 - 建议优化] ...
4. [P3 - 可选改进] ...
```

### Step 5 -- 自动修复(可选)

用户确认后执行修复。

## 触发方式

| 命令 | 场景 |
|------|------|
| `/cpp-review` | 评审当前打开的 C++ 文件 |
| `/cpp-review <file>` | 评审指定文件 |
| `/cpp-review --diff` | 评审当前 git diff |
| `/cpp-review --pr` | 评审当前 PR |
| `/cpp-review --fix` | 评审并自动修复 |
| `/cpp-review --full` | 全量项目评审 |

## 限制与注意

- **并发限制**:同时最多 3 个 subagent 并行评审
- **最大轮次**:10 轮迭代(防止无限循环)
- **安全模式**:默认每步需用户确认,不会自动修改代码
- **代码不外传**:不向外部 API 发送时使用本地分析模式

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手

C++代码评审大师 - 免费 | 技能派