A repeatable audit of three live sites — agent surfaces, structured data, design, copy, UI/UX and data accuracy — that separates live defects from legacy drift and reports per-site plus network-wide.
Three sites, four critique passes, two reports. Built September 2026 after a run of operator-found defects made it obvious that shipping fixes and improving the network are different things.
Run it: /spotcheck (skill at .claude/skills/spotcheck/SKILL.md), which drives .deploy/spotcheck.sh <hostA> <hostB> <hostC> and dz spotcheck host=<domain>.
A site built in February does not become a site built in September. Muses carry a reading_version, section variants were chosen from whatever enum existed that week, and most live sites have no bespoke muse at all. So every finding is classified as either a live defect (broken now, for everyone — a code change fixes it everywhere) or legacy drift (this site runs an older standard — only regeneration or a migration rule reaches it). Two thirds of findings are drift, and that is the finding behind the findings.
Never three sites just worked on. Cover the three cohorts, because they fail differently:
If no coded root is live (true since September 2026), take a second bespoke-muse site from a different root instead.
Bias to real review counts. A defect on a 60,000-review venue is a defect in public.
Cohort subtlety: the no-muse number is misleading on its own. Part of that cohort can render through a coded root theme; the genuinely unstyled set can be much smaller. Always split it before quantifying reach.
Surfaces (/, llms.txt, design.md, /.well-known/doozer-atlas, robots.txt, sitemap.xml), the JSON-LD graph, page counts, a full-page screenshot, and DB-side truth: business record, muse + reading_version, photo-vision evidence, Magellan bindings, last score, and a computed gap list. It renders no judgement — the four passes (design, copy, UI/UX, accuracy) do that.
javascript_tool; look withdz screenshot ... full=1 (the viewport capture caps at 2000px — everything below the fold is invisible to it).
loading="lazy" images are blank in a full-page capture because nothing scrolls.Curl the src and follow redirects before reporting a missing photo.
capture artifact and a "low contrast" subheading that carried a proper double text-shadow — and found a real bug in the collector: !empty($opening_hours) treats "[]" as populated, so the gap list stayed silent while the Atlas correctly published none. Fixing that surfaced the true number (872 sites).
"citable vs skipped". Wrong: every site publishes the same entity shape and the whole difference is how many Event nodes a venue has. Retracted in 02.
Fix what is unambiguous, cheap and verifiable while you are in there. Everything structural goes in the report with a recommendation — a spotcheck that quietly rewrites the network is not a spotcheck. Re-verify every fix against the live site before claiming it, and quantify before generalising.
Deliberately not fixed in 02: emitting openingHoursSpecification. Only 57 sites carry structured periods[]; 2,445 hold weekday_text full of narrow no-break spaces and thin-space en-dashes plus "Open 24 hours" and "Closed". A wrong parse publishes wrong hours to Google and every assistant, which is worse than none. That needs its own change with validation, not a parser written inside an audit.
The muse system is no longer the bottleneck. What limits the network is that four-fifths of sites never got a muse, and that the facts underneath are thinner than the pages built on them: no usable hours on a third, no phone on a tenth, no niche on 95, no email on 87%. A beautiful page about a business we cannot describe, cannot categorise, and cannot pass a message to is not yet the best resource that business could have.
Reports: Spotcheck 01 (1 Sep 2026, v2.2.607) and 02 (3 Sep, v2.2.608), published as artifacts. Evidence bundles live in .spotcheck/<date>/.
Related: [[design standards]](../systems/design-standards.md) · [[decision vs delivery]](../craft/decision-vs-delivery.md) · [[the Atlas]](../systems/atlas.md) · [[AI discoverability]](../systems/ai-discoverability.md) · [[context-city poisoning]](../systems/context-city-poisoning.md)