audit-cross-surface-name | every 30 min | For each renamed product, all 11 surfaces consistently use the brand name (no split-brain). |
audit-jsonld-coverage | every 30 min | Every build page has parseable JSON-LD with required schema.org fields + brand-name consistency. |
audit-meta-tags-coverage | every 30 min | Every build page has title + meta description (>=25c) + canonical + 5 og: tags + viewport + charset. |
audit-internal-links | every 30 min | Every /factory/ href on every build page resolves to an existing file. |
audit-twitter-card | every hour | Every build page has twitter:card + twitter:title + twitter:description + twitter:image. |
audit-emoji-presence | every hour | No literal or entity-encoded emojis in user-facing copy (skips decorative icon wrappers). |
audit-cross-surface-tagline | every hour | For each product, canonical tagline matches across /pricing/, /vs/, /how-it-works/, /sales-kit/. |
audit-page-load-size | every hour | No build page exceeds 80KB (Lighthouse-aware threshold for fast first-paint on mobile). |
audit-html-validity-basic | every hour | Open/close tag count balance for 20 common tags + unterminated script/style detection. |
audit-html-lang-attr | every hour | Every build page declares <html lang="en">. WCAG 3.1.1. |
audit-favicon-coverage | every hour | Every build page has <link rel="icon"> declaration to avoid /favicon.ico 404. |
audit-form-labels | every hour | Every form input on /unlock/, /adopt/, /feedback/ has aria-label or matching <label for=id>. WCAG 3.3.2. |
audit-cross-surface-utility-bar | every hour | All 11 per-product surfaces have a top-navigation block. |
audit-anchor-jump-noise | every hour | No empty-hash <a href="#"> placeholder CTAs (broken in-page jumps). |
audit-cross-surface-back-link | every hour | Every sub-surface has a link back to the product hub. |
audit-published-date | every hour | All ship-log details + playbook essays declare a published date. |
audit-utility-link-targets | every hour | Every utility-bar nav link resolves to an existing /factory/ page. |
audit-aria-hidden-decorative | every hour | Decorative <svg> elements declared aria-hidden or labeled. WCAG 4.1.2. |
audit-link-purpose | every hour | No links with non-descriptive text ("click here", "learn more"). WCAG 2.4.4. |
audit-keyboard-focus-styles | every hour | Every build page declares a :focus or :focus-visible style. WCAG 2.4.7. |
audit-css-class-conventions | every hour | All CSS class names follow kebab-case convention. |
audit-paragraph-length | every hour | No <p> tag exceeds 1000 visible chars (walls of text reduce scanability). |
audit-list-vs-paragraph | every hour | No <p> tag masquerading as a list (5+ inline-numbered items). |
audit-internal-anchors | every hour | Every <a href="#xyz"> has a matching id="xyz" target. |
audit-section-landmarks | every hour | Every build page has main/nav/footer ARIA landmarks. |
audit-h1-uniqueness | every hour | Every build page has exactly one effective <h1> (aria-level overrides honored). |
audit-button-anchor-consistency | every hour | No <div>/<span>/<p> with btn class posing as button (must be <a> or <button>). |
audit-skip-link | every hour | Every build page has a WCAG 2.4.1 skip-to-content link. |
audit-heading-hierarchy | every hour | Heading levels don't skip (h1->h2->h3, not h1->h3). WCAG 1.3.1. aria-level overrides honored. |
audit-bold-density | every hour | No build page has >20% of paragraph text in <strong>/<b> (excessive bolding). |
audit-readability-estimate | every hour | Every build page's Flesch-Kincaid grade level <= 14 (marketing-copy threshold). |