有效代码审查需用五类Prompt框架:一、基础结构化;二、上下文感知;三、对比式;四、规则绑定;五、测试驱动,每类均含角色设定、输入格式、输出约束与可落地指令。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您希望利用ChatGPT辅助开展代码审查工作,但不确定如何设计有效指令以获取精准、结构化、可落地的反馈,则可能是由于缺乏针对代码审查场景优化的Prompt框架。以下是多种可直接使用的Prompt方法:
一、基础结构化审查Prompt
该方法通过明确角色、输入格式与输出约束,引导ChatGPT生成符合工程实践的审查意见,避免泛泛而谈或偏离技术焦点。
1、将待审查的代码段完整粘贴至提示词中,并在开头标注语言类型,例如“【Python】”或“【JavaScript】”。
2、在代码前添加指令:“你是一名资深全栈工程师,正在执行正式代码审查。请严格按以下四类逐项检查:a) 安全漏洞(如SQL注入、XSS、硬编码密钥);b) 可维护性问题(如重复逻辑、过长函数、魔法值);c) 性能隐患(如N+1查询、未节流的高频操作);d) 风格合规性(参照PEP 8或ESLint默认规则)。每类下仅列出真实存在的问题,无则写‘未发现’。”
3、在末尾追加:“输出必须为纯文本,禁用Markdown,禁用编号列表,每个问题独立成行,格式为‘[类别] 问题描述 → 建议修改为:XXX’。”
二、上下文感知型Prompt
该方法要求ChatGPT结合函数签名、调用示例与注释理解意图,从而识别语义级缺陷,而非仅做语法表层扫描。
1、提供函数定义、相邻的类型声明(如TypeScript接口)及至少一个典型调用样例。
2、插入指令:“你已知悉本模块的业务目标是‘用户权限实时同步至第三方审计系统’。请基于此上下文判断:参数校验是否覆盖全部边界条件?错误处理路径是否保证审计日志不丢失?异步操作是否具备超时与重试机制?”
3、强制限定输出:“仅返回具体缺陷行号(如第17行)、缺陷本质(如‘缺少对空数组的early return’)及修复后等效代码片段(不超过3行)。”
三、对比式审查Prompt
该方法通过提交新旧两版代码,驱动ChatGPT聚焦变更引入的风险点,适用于PR场景下的增量审查。
1、用分隔符清晰标记“旧版本”与“新版本”,例如:“--- OLD ---\nfunction calc(x) { return x * 2; }\n--- NEW ---\nfunction calc(x) { return x * 2 + 1; }”。
2、指定审查焦点:“请忽略未改动部分。仅分析新增/修改的代码行:a) 是否破坏原有契约(如返回类型变更、副作用增加);b) 是否引入未声明的依赖(如新增全局变量引用);c) 是否降低可观测性(如移除关键日志)。”
3、要求输出:“用‘✅’标记安全变更,用‘⚠️’标记需人工确认项,并附带精确到字符位置的依据,例如‘⚠️ 第5行+12字符:新增常量未定义,运行时抛ReferenceError’。”
四、规则绑定型Prompt
该方法将团队内部编码规范文档的关键条款注入提示词,使ChatGPT审查结果与组织标准强对齐,减少主观偏差。
1、摘录3–5条核心规则原文,如“禁止在React组件内使用console.log”“数据库查询必须显式指定字段,禁用SELECT *”。
2、构造指令:“以下规则来自我司《前端安全开发手册》v2.3。请逐条比对输入代码:若违反某条,请定位至具体行与列,说明违反条款编号(如Rule#4.2),并给出符合规范的重构代码。”
3、附加约束:“若某规则未被触发,不得虚构问题;若代码完全合规,仅输出全部规则均已满足。”
五、测试驱动型Prompt
该方法以测试用例为输入,反向推导代码健壮性缺口,特别适用于TDD流程中的审查补位。
1、提供一组单元测试代码(含describe/it块及断言),确保覆盖正常流、异常流与边界值。
2、嵌入指令:“假设这些测试全部通过。请逆向分析被测函数:是否存在测试未覆盖但实际可能发生的崩溃路径(如未处理Promise rejection、未校验callback参数类型)?是否存在测试断言过于宽松导致缺陷漏检(如仅检查返回值存在性,未验证结构)?”
3、输出格式:“每项风险必须包含:触发条件(如‘当传入null时’)、当前代码行为(如‘抛出TypeError且无catch’)、建议补充的测试用例(格式同现有测试风格)。”










