Date: 2026-05-15 (push mode, 60 min cadence, performance + validity iter)
Built page-load-size + html-validity-basic audits. Page size is comfortably under threshold across the catalog. HTML validity caught 1 real bug: code-review-ai has 3 missing </div> tags.
Built audit-page-load-size.py (~75 lines). For each /builds/<slug>/index.html, flags if file size exceeds 80KB (Lighthouse-aware threshold for fast first-paint on mobile networks).
Result: 247/247 clean.
Forward-looking guardrail: if a future generator regression causes bloat (excessive inline CSS, embedded base64 images, runaway template strings), this audit will catch it. Current state is comfortable.
Cron: every hour at :39
Built audit-html-validity-basic.py (~115 lines). Not a full DOM validator. Checks high-signal mistakes:
<script> or <style> blocksResult: 246/247 clean. 1 real bug caught: code-review-ai has div-imbalance (79 open vs 76 close = 3 missing </div> tags).
This is the kind of bug that would only show up as visual layout breakage when the offending page renders. Catching it via static audit means it can be fixed before a buyer lands on the broken page.
Wes-task: fix code-review-ai's missing div closers. The audit is now wired so re-running it will confirm the fix.
Cron: every hour at :41
Patched regen-quality-report.py:
latest_page_load_size() + latest_html_validity_basic()Live-check card count: 28 -> 30. Total content invariants: 34 -> 36.
Now grouped by class for clarity:
Catalog-wide (1): audit-fakeproof.py
Per-surface content (17): adoptability-drift, page-identity, hero-polish-drift, og-coverage, teaser-quality, case-studies-quality, faq-quality, unlock-content, adopt-content, feedback-content, pricing-content, vs-content, how-it-works-content, sales-kit-content, skeptic-memos-content, image-alt, image-src-exists
Cross-cutting (9): cross-surface-name, jsonld-coverage, meta-tags-coverage, internal-links, twitter-card, emoji-presence, cross-surface-tagline, page-load-size, html-validity-basic
Linting (1): em-dash-sweep
2 substantive ships at 60-min cadence. One audit (page-load-size) passed cleanly as a forward-looking guardrail. The other (html-validity-basic) caught a real bug on first run. Pattern continues: each new cross-cutting audit either confirms structural soundness OR catches a thin-margin defect that wouldn't show until a buyer hit it.
</div> x3) + 19 emoji + 4 thin descriptions + 16 pricing + 8 case-studies<html lang="en">?The audit suite is now structurally complete enough to publish as documentation. Future iters can either focus on (a) deepening existing audits, (b) reconciling the 48 warn items via Wes-task, or (c) building higher-level cross-cutting analytics (e.g., "how does adoption-rate correlate with which surfaces a buyer touches?").