目录 / AI代码体检(看不懂代码也能把关)
AI代码体检(看不懂代码也能把关)
--- name: code-review description: AI 写的代码敢直接用吗?交给它审:出一份人话体检清单——哪里有坑、不修会怎样、先修哪个,每条都写到你看得懂,不懂代码也能拍板。只出清单不动手改,防止越改越乱。触发词:review代码、代码审查、代码体检、把关代码、上线前检查。 display_name: AI代码体检(看不懂代码也能把关) display_name_en: AI Code Review description_zh: 七个维度给代码出体检清单,问题按严重度排序,看不懂代码也能把关。 description_en: Seven-dimension code review checklist ranked by severity. examples_zh: - "帮我体检这个项目的代码" - "审查这次改动有没有坑" - "这段代码有什么隐患" examples_en: - "Review this project's code" - "Check my latest changes for bugs" - "Find risks in this snippet" version: 1.2.3 author: "ayan" --- # code-review — AI代码七维审查(给个人项目主) 总纲:审计修复分离——只读、出清单、证据不足不写结论;清单是给「不深读代码的人」拍板用的,每条必须说人话。 ## 流程 1. 探测:对象=单文件/目录/diff;>1模块拆开逐个审,每模块结束给进度锚「✓ A完成,N条(M待验证),下一个B」,中断续跑不重扫 2. 目标文件全文读(禁只看片段——调试残留/泄漏常在上下文外);判死代码前 Grep 全库引用:无引用≠死代码(反射/配置/外部脚本会骗人) 3. 七维逐条扫。用了并行子代理或多轮扫描的,报告是「声称不是证据」:复核行号、去重剔误报、计数对账后才入清单 4. 输出清单后停,等用户确认;说「修」才切正常编码流程,先复现再修,修完逐条对照 ## 清单格式 每条五字段:定位(文件:行号)|根因(不只现象)|影响(先用一句白话说「你会感觉到什么/不修会怎样」,再补术语)|维度+严重度|修复方向一句话+建议档位(建议修/可缓/不必)。 条目示例(照这个密度写): > `server.py:47`(根因:查询循环里每次新建数据库连接)|影响:数据一多页面越来越慢,最后看着像卡死(每行数据多耗一次握手,N 行 N 次)|性能·中|修复方向:循环外建一次连接复用——建议修 收尾三段:分档统计+未扫范围声明|Quick wins(≤5分钟小修单列,先批这堆)|热点文件TOP3。 严重度统一排序:正确性 > 安全 > 可维护性 > 简单性 > 性能 > 优雅性。 ## 证据纪律 - 验证得动就跑:import、最小复现、查官方API签名;跑不动只写「最可能原因+待验证动作」,禁写成结论 - 认定bug证伪一次:空值/空集合/单元素/0/极值/NaN/跨日/停牌反例试着推翻,推翻不了才标「已确认」 - 性能结论必须有profile前后数字,没有只说「预期」 - 模糊话术=红旗:「应该能跑/大概/看起来对/肯定没人用」出现即缺验证,补动作或降为「待验证」;置信≠证据 ## 七维检查清单 ### ① 正确性Bug 边界反例逐个过;跨环境坑:Windows路径分隔符、中文编码(文件读写必带encoding='utf-8',shell重定向写中文=GBK乱码)、时区naive/aware混用、CRLF;数据口径:日期序列号(1900/1904)、百分比文本("6.67%")与数值混型、浮点直接==。 ### ② AI特有:幻觉与静默降级 幻觉API:参数名/签名以官方文档为准,「看起来对」≠存在,逐个查签名或实测;幻觉配置:引用不存在的配置项/环境变量,静默拿默认值跑;静默降级黑名单:except:pass、except:continue、出错返默认值不标记——表面正常,数据已错;真要降级必须带质量标记(〔A/D/E〕),坏数据不得单独支撑核心结论。 ### ③ 性能与资源 循环内new对象/拼字符串/做I/O/逐条查库;纯函数重复计算不缓存;句柄/连接未关(该用with)、大文件全量进内存、无界拉取;外部调用(API/LLM/TTS/ffmpeg)无超时、重试不幂等无退避;长任务(>3s)占UI主线程。 ### ④ 冗余与可维护性 死代码:全库Grep无引用才算,注释掉的旧代码=死代码该删;调试残留零容忍:breakpoint/pdb/调试print(tests除外)、TODO/FIXME逐个过;重复:同逻辑≥3处才提取(三次法则防错误耦合),同一逻辑两版本并存优先报;重复造轮子:项目已有工具函数/日志/样式又造一个(须全库视角);孤儿import、_v2/_final/_backup文件、test/xxx占位符;量化基线:函数>30行、嵌套>3层、参数≥4或多个布尔开关(doSomething(data,true)里true是什么)、魔法数字无命名常量、类>500行、Manager/Handler/Utils空壳多职责、泛名data/result/temp/info、注释解释「做了什么」而非「为什么」且与代码不同步——以上全归「可维护性」档,不越级挤占bug/安全名额。 ### ⑤ 安全 硬编码密钥/token/连接串(走环境变量);SQL字符串拼接(参数化);日志打印敏感信息;临时文件留在可预测路径。 ### ⑥ 产品与过度工程 删除测试:删掉这功能/这层抽象,用户可感知的行为会坏吗?不坏=垃圾功能或过度工程;20行需求配三层抽象+配置类+接口预留、BaseController/AbstractManager空壳;步骤可合并、if分支可被数据结构消除、数据没就位硬凑半成品「能跑」。 ### ⑦ 可验证与可回滚 改动无对比基准(改前快照/旧值存档)=盲改;关键路径无测试/smoke脚本覆盖;交付话术无证据=未完成(对照证据纪律第4条)。 ## 借口反驳表 | 念头 | 现实 | |---|---| | 看起来没问题,不用跑验证 | 看起来对≠跑得通,验证不可跳 | | 这函数肯定没人用 | Grep全库才算数 | | 顺手把这个也改了 | review=只读,全进清单由用户拍板 | | 仓库太大抽查几个文件 | 要么声明覆盖范围,要么按模块审+进度锚 | | 现在应该能跑了 | 「应该」=没跑,跑完拿输出说话 | | 扫描结果直接抄进清单 | 先过验证闸:行号/去重/计数对账 | ## FAQ - **「一条都看不懂代码,这清单我能用吗?」**——能。每条影响栏先说人话再补术语,你只需要按档位拍板:建议修/可缓/不必。 - **「为什么只出清单不动手修?」**——审计和修复混在一起会互相掩盖:修的过程引入新问题,清单就不准了。你说「修」才切编码流程,修完逐条对照。 - **「标了『待验证』的条目是什么意思?」**——静态看不实、跑复现又成本太高,按证据纪律不许写成结论。要推进就把待验证条目逐个跑实或划掉。 - **「审完说零问题,可信吗?」**——先看收尾的「未扫范围声明」。声明了范围才是零问题,没声明就是没扫完。 - **「和『让 AI 直接改好』比,多这一步值吗?」**——AI 直接改的正确率靠运气,这步是把你不懂的代码翻译成你能拍板的决策,改不改、多急改,你说了算。 ## 故障剧本 - 误报多 → 列出前先验证或标「待验证」;静态看不出的禁写结论 - 仓库大范围炸 → 按调用链分层,入口/核心先审,一次一模块 - 同一处两次结果不一致 → 证据不足,亲验后再定,禁凭印象二选一 - 清单落不落文件 → 默认对话内输出,用户明说才写md,禁主动生成 - 分不清风格问题还是真问题 → 过删除测试:不坏=低优先级或不报 ## 自检(交付前) □ 每条带文件:行号+白话影响+建议档位 □ bug条目有证据或标「待验证」 □ 按严重度统一排序 □ 收尾三段齐(统计+未扫范围/Quick wins/热点TOP3) □ 全程零改动 □ 无模糊措辞裸露 □ 无「顺手改进」夹带 ## 免责声明 - 本 skill 按「现状」提供(MIT 许可),作者不对使用结果作任何保证。 - 使用者自负合规责任:请遵守你所在平台的服务条款与当地法规;生成的任何内容发布前请自查(广告法、违禁词、版权)。 - 本包不代任何第三方品牌、不含第三方私有数据;文中出现的第三方产品名仅为功能互操作说明或示例,与相应方无关联、无赞助。
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。
存档时间线
| 版本 | 存档时间 | 内容哈希 | 内容 |
|---|---|---|---|
| v1 | 2026-11-14 18:10 | 75977546 | 可取 |
版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。