How AI site content is generated, why it sometimes fails, and how it is retried, backfilled, and healed.
Content (businesses.ai_generated_content, a JSON blob: headline, about, services, why_choose_us, faq, etc.) is generated asynchronously via the job queue (content_generation), built by includes/ai-content.php and the provider system.
failJob() (includes/job-queue.php) auto-retries (re-pends whileattempts < max_attempts) so a transient AI hiccup does not leave a site blank.
_dispatchDeepResearch() always queues content even when enrichment finds nothing.The prompt enforces Design Standards at the source (no whole-paragraph bold, no em dashes). The renderer heals non-compliant output at display time. The Design Mirror heals the STORED content in place (zero API cost) and can queue regeneration for empty/wall-of-text sites.
Open thread: new sites fail generation at a higher rate, and deeper enrichment yields noticeably better sections — both tracked in the site-quality backlog.