falsify 是一个单 Markdown 技能,给任何 AI 智能体装上五段式科学思维协议:公理 → 假设 → 对抗 → 验证 → 收束。它阻止智能体给出自己无法证伪的自信结论——包括 Codex、Claude Code、DeepSeek Harness、Cursor、Gemini CLI 在内的 20+ 智能体。
真实案例(GitHub bun#25648):Bun 构建 Svelte 5.45.3 后栈溢出,esbuild 构建同一版本正常。左边是没有 falsify 时智能体的典型回答,右边是装了 falsify 之后的回答——后者的判断与后来发生的现实完全一致。
这看起来是 Svelte 5.45.3 的回归 bug——新版本引入了有问题的代码。
建议:降级到 5.45.2,等 Svelte 修复后再升级。
H1 · Bun 命名冲突:Bun 保留具名函数表达式名,函数体内 get(query) 指向自身 → 无限递归。预注册预测:改名后栈溢出消失。
H2 · Svelte 产物有错:被直接证据反驳——同一份 Svelte 输出 esbuild 能正常消费。
esbuild 产物 diff:__name(get3, "get") 重命名打破遮蔽 = 直接证据。最便宜的真测试:把 Bun 产物里 function get 改名再跑。
完整案例:evals/dogfood-external-20260827.md · 4 个真实社区案例,3/3 有事实结论的与后来发生的现实一致
不是「每句话都要写论文」。协议按语境触发:高风险、不可逆、会被执行的问题走完整深度模式;简单问题给简单答案。深度是工具,不是戏服。
一句话复述真问题,命名利害:谁在执行这个答案,错了会怎样。
Read the room事实 / 假设 / 传闻分列三张清单,未列入的不得进入推理。
Axiomatize写成可证伪预测:若 H 则观察到 O;若 ¬O,H 死亡。
Hypothesize先替最强的对手反驳自己:钢人化 + 失效模式 + 拒绝接受什么证据。
Adversarialize主动找反证、给证据分级、跑最便宜的实验;没有外部信号不升级置信度。
Verify只下证据支持的结论,标注剩余未知,给出可核查声明。
Converge简单问题 → 简单答案。Nudge 模式只追加 2–3 个追问。
Contextual协议的效果被写成 28 个评测用例 + 评分标准,并经过真实社区案例的外部交叉验证。
一个 Markdown 文件,零依赖。它不会运行脚本、不访问网络、不碰凭据——只是改变智能体「如何下结论」。
falsify 蒸馏自 70+ 社区来源与认知科学 / 因果推断文献,而不是拍脑袋的提示词。