大多数 “vs” 页面并不是比较。它们是三篇产品介绍拼在一起。一个工具是作者已经在用的,另一个只开到够截图。任务做到一半会改,价格从记忆里抄。评论区随后争论一场从未真正发生的比较。
Claude Radar 还是会发表比较。从不把工具名字并排放,只是躲开这件事。诚实的版本更慢:固定一项任务,固定停止条件,写下操作者做了什么,并拒绝那些看起来像证据、其实不是的主张。
这篇文章就是那套方法:第二个人只凭这一页就能照着做的协议。耗时、金额、胜率,要等到有公开测试仓库、并有记录了执行日期的测试之后。
工具合集的问题
编程代理不是相机。你不能把两台支上三脚架,去拍同一面砖墙。操作者在回路里:提示词、打断的瞬间、不许工具碰的文件、被判定为“差不多了”的测试。回路看不见,比较就成了性格测验。
合集还会混类。终端代理、带行内补全的编辑器、浏览器里的应用构建器,都可以“写一个待办应用”。留下的仓库种类、测试种类、第二天要接着做的工作并不相同。把它们当可互换的产品,得到的是标志网格和一段含糊的收尾。
如果第二个操作者无法只凭这一页重跑这次比较,那就是一篇带比较标题的日记。
我们宁可少发。日记标成日记,比较标成比较。这份协议属于后者。
比较什么,不比较什么
这份杂志英语优先,面向全球。重心是 Claude Code,因为这是这份杂志的主题。Cursor、Codex 和 vibe coding 工具也在同一视野里,因为读者确实在它们之间走动。自动化目录、模板市场、“1,000 个工作流”目录以后可以当旁注,如果建造者的工作撞上它们。它们不是这份杂志的主线。
比较要上这个站,必须同时满足:
- 读者要做的是能跑的软件,不是幻灯片。
- 每套工具都能对准同一份公开测试仓库。
- 我们能说出不是“感觉更快”的完成标准。
- 我们愿意公开失手,而不只是表现好的那一次。
唯一来源是营销页、记着的发布演示或社交帖,就不属于这里。官方文档会带检索日期引用。我们不会把它洗成基准。
共享测试仓库
第一批编辑比较都应从一个小型公开 Web 应用开始——同一仓库、同一组失败测试、同一份 README。测试仓库的要点不是把场面做得很像电影,而是把条件对齐。若 Run A 是“凭记忆重建生产单体”,Run B 是“搭一个计数器”,我们比较的是两件不同的工作。
测试仓库应当故意无聊:
- 小到一次能读完。
- 公开,读者能克隆。
- 没有客户秘密、生产日志和私人名字。
- 运行开始时已有因已知原因失败的测试。
- 与本杂志自己的代码无关,免得按它是否奉承我们来打分。
第一份公开测试仓库会以提交哈希链到每一篇使用它的比较。哈希出现之前,比较停在方法,而不是结果。
协议
这些步骤写出来是为了能被抄走。已发表的比较若跳过某步,应写明哪一步、为什么——不要藏进更顺的叙事。
- 记录工具。 记下工具名、渠道或构建标识、工具暴露的模型选择、编辑器或 CLI 版本、操作系统,以及开始日期。工具不暴露版本,就写下这一点。不要估。
- 重置测试仓库。 从约定提交开始。没有残留的
node_modules小聪明,没有藏着的 WIP,没有与本次比较无关的技能或规则文件。起始树也是方法的一部分。 - 交出同一份提示词包。 每次运行一包,放在文章或旁边的文件里。没有“我私下也说了”。操作者必须加约束,那是干预(第 4 步),不是秘密序言。
- 给干预设上限。 事先决定提示词包之后允许多少轮操作:一个数字,不是“看起来对了为止”。每次干预记一行:说了什么、为什么、是否泄漏了另一次运行得不到的信息。
- 在同一完成标准停下。 第一份测试仓库我们期望:约定测试通过,应用能在本地提供服务,没有为了截图好看偷塞功能。上限内到不了,就是未完成,不是诗意的“几乎”。
- 看另一份日志之前,先存自己的。 写 Run A 时当作没有 Run B。再反过来。两份都存好,才能放进一张表。偷看,是日记假装成试验的办法。
- 把限度写在表旁边。 列不出自己没测什么的比较页,还没准备好。
提示词包示例
下面的包是语气和范围的样本。想自己试这次运行,可以复制。本地尝试不是已发表的结果。
白话任务:给一个小型 TypeScript 应用加上会话笔记解析器,让原始文本变成结构化笔记,测试已经写好形状。
You are working in a small public web app at the tagged commit.
Add `src/notes/parseNote.ts` so the tests in
`src/notes/parseNote.test.ts` pass. Do not add features
the tests do not describe. Do not rewrite unrelated files.
Constraints:
- TypeScript, no new dependencies.
- Refuse sample data that looks like a real person.
- If a test is unclear, stop and ask one question.
Do not invent a business rule.
Stop when `npm test` is green for that file, or when you
cannot proceed without a decision from me. Write a short
summary of files touched and any test you could not satisfy.
包所指向的测试应已在测试仓库里,这样工具就不是在给自己的作业打分。
我们将记录什么
这张表是以后比较页的合同。已发表稿件里的空格表示“我们没测这个”,不是“还行”。我们不会用形容词填满。
| 标准 | 记录什么 | 不会推断什么 |
|---|---|---|
| 完成与否 | 约定测试是否在干预上限内通过。 | 该工具“更擅长工程”。 |
| 到可运行的时间 | 若选择测时间,在一台点名机器上从开始到停止的实际耗时。 | 团队产能,或疲惫的下午也会得到同样结果。 |
| 修改质量 | diff 大小、动过的文件、仍通过的测试、明显无关的重写。 | 品味、资历或“干净架构”。 |
| 操作者投入 | 我们实际发出的干预次数与文本。 | 操作者整体的水平。 |
| 成本 | 仅工具暴露的计量用量,带日期和套餐名。否则:“未披露”。 | 你的月账单,或按标价排名。 |
| 失败形态 | 停在哪里、弄坏了什么、如何恢复——或没恢复。 | 模型的性格。 |
| 配置摩擦 | 安装、登录、项目钩子,写成清单。 | 更长的配置总是更差。 |
已发表的比较会包含什么
比较离开候选名单时,页面应带有:
- 测试仓库哈希和提示词包。
- 第 1 步记录的工具清单。
- 两边的日志,或不丢掉失手的公平摘录。
- 标准表,空格保持空。
- 用于套餐名或限额的官方文档链接,带检索日期。
- 更正栏,哪怕只写“尚无”。
以后若加联盟链接或赞助,会标注并放在计分表之外。商业关系之后移动的名次是更正,不是刷新。
限度
这套协议已经有偏,我们宁可给偏见起名,也不掩饰。
- 一份测试仓库不是整个行业。 小型 TypeScript 应用里的解析器,几乎说明不了原生移动、数据笔记本或百万行单体仓库。
- 操作者是变量。 另一个人会更早打断,或完全不打断。我们可以记下打断,不能把自己减掉。
- 工具会动。 记录了执行日期的测试,就是那一天的结果。我们不会把旧表悄悄改妆成时事。
- 暴露的计量不完整。 若产品把用量打进席位套餐、看不出分项费用,我们不能发明成本列。
- 比较尚未开跑。 空表在有记录了执行日期的测试之前保持空。
- 独立是做法,不是心情。 名字里有 Claude,并不等于给这个工具加分。比较读起来像在偏袒某个工具,就是方法失败了。
来源政策
我们区分四种来源,不让它们混在一起:
- 官方文档 — 带 URL 和检索日期引用或改写。价格与限额数字来自这里,否则不出现。
- 我们的测试仓库与日志 — 公开到可以检查。客户私活不进。
- 其他新闻与一手帖 — 当它们是关于世界的主张来源时链接,不用来代替我们跳过的运行。
- 营销语言 — 只能当作厂商说法的引文,绝不当测量。
我们不会刮私人聊天、贴内部手册,或把社交截图当成版本号。若存在联盟或赞助关系,会在带该链接的页面上写出名字。
更正政策
已发表的比较若错了,页面公开改。
- 事实错误(错误版本、错误套餐名、读错测试)在顶部或更正栏加注日期,并改正文。
- 新的运行是新的运行。不声明就覆盖旧表。
- 不会在商业交易、厂商邮件或流量糟糕的夜晚之后悄悄重排名次。
- 若一句话挡不住这套协议,我们删那句话,不删难堪。
尚未发表任何比较,所以没有可更正的。预先留下更正栏,是为了以后发表的页面也按同一方式更正。