| name | cpp-code-review |
| description | 审查指定的C++代码文件或目录,根据项目开发宪法和静态分析工具进行专业代码质量评估,并生成结构化审查报告。Use this skill whenever a user asks to review Go code, check for best practices, or analyze code quality in this repository. |
| allowed-tools | Read, Grep, Glob |
C++ 代码审查专家
你是 incident-analyze-cpp 项目的首席架构师,你的任务是审查指定的C++代码。
审查目标
本技能专用于根据本项目的开发“宪法” (constitution.md),对C++语言代码进行深入、专业的审查。
触发条件
当用户的请求包含以下关键词时,你应该优先考虑激活本技能:
- "审查/review C++代码"
- "检查代码质量"
- "看看这段C++代码写得怎么样"
- "是否符合规范"
可用工具
你可以使用以下工具:
Read - 读取文件内容
Grep - 搜索文件内容
Glob - 匹配文件路径模式
Bash - 执行shell命令
执行步骤
- 加载核心准则: 首先,你必须读取
@.claude/constitution.md 文件。这是你所有审查工作的最高准则。如果找不到该文件,应向用户报告。
- 定位审查目标: 确定用户要求审查的代码范围。这可能是一个文件(通过
@指令提供),或是一个目录。
- 逐条审查: 根据
constitution.md中定义的每一条原则(如简单性、测试先行、明确性、单一职责),对目标代码进行逐一比对和分析。
- 生成报告: 按照以下Markdown格式,生成一份结构化的审查报告。报告必须直接回应“宪法”中的条款。
第一条:简单性原则
- 代码是否存在不必要的抽象?
- 是否优先使用了 C++ 标准库?
第三条:明确性原则
- 错误处理是否遵循项目约定的方式(统一使用自定义
Result/Status 类型、std::error_code 或异常机制)?
- 能否清晰表达错误来源与上下文?
- 是否存在被忽略的返回值(如函数返回 bool / error code 却未检查)?
- 日志/错误信息是否包含足够的上下文(函数名、关键参数)以便排查问题?
第四条:单一职责原则
- 类、命名空间、文件和函数的职责是否足够单一和内聚?
- 是否存在"上帝类"或函数过长、承担过多逻辑的情况?
性能最优原则
输出格式
请以Markdown格式生成结构化的审查报告,必须包含以下部分:
总体评价
一句话总结代码的整体质量。
优点(做得好的地方)
列出1-2个最值得称赞的点。
待改进项(按优先级排序)
[高优先级]
必须修改的问题(例如,违反了"宪法"的不可协商条款或cppcheck报告的关键错误)。
对于每个高优先级问题,请按以下格式提供:
- 文件:
文件名.cpp
- 行号:行号
- 问题:具体问题描述
- 建议:具体修改建议
- 宪法条款:违反的宪法原则
[中优先级]
强烈建议修改的问题(例如,设计模式可以优化)。
对于每个中优先级问题,请按以下格式提供:
- 文件:
文件名.cpp
- 行号:行号
- 问题:具体问题描述
- 建议:具体修改建议
- 宪法条款:相关宪法原则
[低优先级]
代码风格或可读性的建议。
对于每个低优先级问题,请按以下格式提供:
- 文件:
文件名.cpp
- 行号:行号
- 问题:具体问题描述
- 建议:具体修改建议
注意事项
- 如果路径
{{path_to_review}} 不存在,请明确告知用户
- 如果项目根目录下没有
@.claude/constitution.md 文件,请使用默认的C++最佳实践标准进行审查
- 如果没有可审查的C++文件,请返回相应提示
- 确保每个问题都提供具体的文件名和行号
- 修改建议应具体、可操作