# Publication comparison fixture

Synthetic local HTTP example; no WordPress, public website or real CDN is used.

With Node 22, run:

```sh
node run.cjs ./result
```

No dependencies. The script binds an available port on `127.0.0.1`, reads a mock CMS record and preview, reads the public URL, explicitly clears its small local body cache, reads the **same URL** again, and stops the server.

The approved weekly-report instruction is **“Select Last seven days before exporting.”** The cached body says **“Select All dates before exporting.”** Before correction, the public response is HTTP 200 and the synthetic CMS status is `publish`, while the material instruction is wrong. After local cache invalidation, that same public URL returns the approved body. Title, link and inline image match throughout.

Open `result/source-preview.html`, `result/public-before.html` and `result/public-after.html` for the three states. `result.json` retains the approved source, actual HTTP headers/bodies, request timestamps, anonymous-access evidence, comparisons and hashes. The HTML files are self-contained apart from their help link; that link was fetched successfully during the run and its result is saved, but the transient server is now stopped.

This tests one explicit local cache repair. A browser reload does not establish that an intermediate cache was purged. “Outdated” here describes the editorial version, not HTTP freshness expiry. Inline SVG equality is the media check; a separately hosted image and actual browser display still need their own verification on a real destination.
