ghost

Verdict: disproven

The DOM beat two vision models at spotting what blocks a click.

Question: before an agent clicks, does something cover the target? A consent banner, a modal, a login wall. We collected 285 real pages in Cloudflare Browser Run, labelled each one by sending a real click, and asked three systems.

SystemF1PrecisionRecallp50
ghost-local
SmolVLM-256M on WebGPU in the browser. Same screenshot, same question. Scored on its worst of 3 runs.
0.34850.35380.3433301 ms
dom-rule
One CDP call: does elementFromPoint at the target hit the target? Free.
0.883310.7910 ms
workers-ai-vision
Workers AI vision model on the host. One screenshot, one yes/no question.
0.66150.68250.6418862 ms

Rule: ghost-local needed F1 at least 0.8833 + 0.02 on the frozen holdout split. It scored 0.3485.

What this means

If your agent drives the browser over CDP, ask the page before you ask a model. The answer is one call and costs nothing. Send pixels to a model only for what the DOM cannot see: canvas, images, video.

Proof

Receipt: /proof.json. Frozen hashes: 8 files. Code, raw runs and the gate: https://github.com/acoyfellow/ghost.

A Customer 0 spike. Built on Browser Run, Workers AI, Workers and Transformers.js.