but-for-real 是一个面向 AI 编码场景的技能(Skill)提示词,来源标注为 shpigford/skills,页面地址为 https://www.skills.sh/shpigford/skills/but-for-real。它的定位不是提供代码生成能力,而是给 AI 加上一道强制性的自我审查环节。其说明文字开篇即指出:当 AI 准备说出「我已经更新了代码」或「现在应该能跑了」时,应当先停下来——它没有资格宣布胜利,只能去证明。
用途
该技能用于对抗 AI 在批量修改代码后产生的过度自信。资料将其描述为:AI 常常像从未经历过线上事故的初级开发者那样,带着没有依据的把握提交一堆改动。因此这个技能要求在宣布完成之前,先对自己刚做的工作进行一次「怀疑式复核」。
主要能力与检查项
技能内容把复核拆成若干步骤,覆盖以下方面:
-
核对需求:重新阅读用户原始请求的真实文字,而不是自己对请求的解读。检查是否添加了没人要求的功能、「顺手改进」了本来没问题的相邻代码,或是因为更有趣而解决了另一个问题。
-
以最苛刻视角审查代码:包括看起来对但实际错误的逻辑(模式匹配到貌似合理的东西就当作完成)、被忽略的边界情况(null、空数组、凌晨三点线上才会出现的状态)、添加却从未使用的导入/变量/函数(死代码)、复制粘贴留下的痕迹、差一错误、该用模板却用字符串拼接、该用变量却硬编码、以及名义上是具体类型实为 any 的类型。
-
排查遗漏:测试是否更新、其他引用或依赖被修改代码的文件是否检查过、遗留的 TODO 是否处理、是否只写了正常路径而缺少错误路径、类型是否被破坏以及类型检查是否真正运行。
-
真正运行验证:明确反对「我有信心它能工作」「逻辑看起来是对的」「根据我的理解」这类说法,要求阅读 git diff 的每一处改动、执行构建、运行全部测试而不是自认为相关的那部分、涉及浏览器时打开浏览器点击操作、检查控制台、日志和网络面板。若无法运行验证,必须明确说明,而不是假装有把握。
-
修复并复查修复:发现问题后要直接修复,而不是列出道歉式清单;随后用同样的偏执复查修复本身。文中还提出一个自检问题:如果用户录屏尝试这个功能然后失败,自己是否会想钻进地缝里——若是,就说明还没做完。
使用方式
资料将其呈现为一段指令性提示词,通过强硬、讽刺的语气向 AI 下达复核流程。安装方式、调用方式、支持的模型或工具、是否收费等信息暂未提供。
适用场景
适合在 AI 完成代码修改、准备汇报「已完成」之前使用;也适用于需要防止 AI 过度自信、防止夹带无关改动、强调先验证再声明的开发工作流。
限制
该技能依赖 AI 能否真正执行构建、测试和浏览器检查;在无法运行验证的环境中,按资料要求只能明确声明无法验证。资料未提供其在具体平台上的实现细节、兼容范围或自动化程度。