本文为真实经历,使用微信语音口述,然后 chatgpt 协助整理排版。 下面 token 数据是 ccusage 生成。
我基于 Vue 重新设计了一套页面 UI ,整体页面结构与现有版本基本一致,但在样式上做了较多微调,涉及 6–7 个文件。 这套 UI 只包含渲染逻辑,不包含任务逻辑,可以理解为一份 Vue 版本的“设计稿”。
而原始项目是用 React 编写的,内部承载了完整的业务逻辑,因此在调整 UI 时,不应该触动业务逻辑。
我的目标是:在 React 项目中,还原出 Vue 版本的 UI 效果。
我没有直接手动改 UI ,而是选择让 AI + 测试驱动来完成这件事:
先让 AI 编写一个 E2E 测试:
对两个页面进行自动截图,并进行图片 diff:
写一个 loop ,在我睡觉前启动:
早上起床收菜。
React UI 成功对齐 Vue 设计稿。
整个过程无需人工干预,最终效果完全达到预期 🚀
这次实验的代价也非常“真实”:
根据 /context 输出:
其中:
👉 主要消耗来源: Ralph Loop 的反复迭代
任务完成后,由于 stop hook 没有正确终止,循环仍然持续触发,累计执行了数百次:
Stop says: 🔄 Ralph iteration 1466 | No completion promise set - loop runs infinitely
│ Date │ Models │ Input │ Output │ Cache Create │ Cache Read │ Total Tokens │ Cost (USD) │
│ 2026-03-19 │ - haiku-4-5 │ 10,311 │ 31,789 │ 710,709 │ 422,494,228│ 423,247,037 │ $268.22 │
│ │ - opus-4-6 │ │ │ │ │ │ │
我使用的是 claude code max 订阅。
其中 Cache Read 是免费的,因此虽然账面上有较高的 token 消耗,但实际成本并没有那么高。
整体来看,大约消耗了 5 小时 token 限额的 5% 左右。
1
rocmax 17 小时 32 分钟前 via Android
为什么不用 figma 出设计稿
|
2
hamsterbase OP @rocmax 非专业设计师,业余项目。 和 ai 一起,所以用 html 设计项目。
|
3
hamsterbase OP @rocmax 之前也试过 figma 和 html 完美对齐,但是没实践成功。figma 渲染和 html 渲染在像素层面有差异, 而且有的设计稿不规范,层级关系很乱。
|
4
sillydaddy 17 小时 22 分钟前
感谢分享!
请问是迭代了 1500 次吗,input 和 cache create 总共才 70 多万。相当于每次 diff 只有差不多 1000 个新 token 提示词输入吗? 我设想中的这种迭代是多轮次的,每次迭代都重新启动一个 Claude Code 的对话 session 。看样子你是在一轮对话里面完成的吗? |
5
hamsterbase OP @sillydaddy
claude code plugin 商店的 ralph-loop 插件实现的。 /ralph-loop:ralph-loop PROMPT [--max-iterations N] [--completion-promise TEXT] 我本人就写了一段提示词而已。 停止条件。 1 。npm run test:ui 通过 2 。 'today-image-diff.spec.ts' 不造假 |
6
bigdogbigpig PRO 很强,cc 真的很强
|
7
Solix 16 小时 21 分钟前
|
8
timespy 15 小时 45 分钟前
好思路,收藏
|
9
duuu 15 小时 19 分钟前
这个就是靠大力出奇迹。。
|
10
rm2788 14 小时 41 分钟前
请问博主两个问题:
> 计算视觉相似度 和 标记像素差异 这个具体要怎么做? > 持续迭代,直到测试通过(即视觉差异收敛到可接受范围) 这个是根据上面说的相似度小于某个值吗? |
11
L5411 14 小时 34 分钟前
300k tokens 耗费 200$ 吗
|
12
hamsterbase OP |
13
hamsterbase OP 有现成项目 https://github.com/mapbox/pixelmatch 。 我和 ai 描述了我的需求,它自动安装这个仓库然后编写了对比脚本。
因为是两个 html 对比,所以我的规则像素完全一样。 |