Date: 2026-05-11 (continued autonomous /loop)
5 items. Closed a real UX gap: 32 products had broken /pricing/ pages that fell through to Caddy's homepage fallback.
Discovered that /factory/builds/<slug>/pricing/ returned 200 OK for 32 products even though the page didn't exist - Caddy's try_files fallback was silently serving the homepage. So a buyer clicking "Pricing" on /builds/activation-ai/ got the Wishdeal Factory homepage with the wrong title and no pricing info. Confusing and misleading.
Fixed: built regen-fallback-pricing.py which generates a real /pricing/ page for any product missing one:
Generator ran across all 207 products with /index.html. Of those, 174 already had custom-branded pricing pages (the original builder produces them); the 32 newest products got the fallback page.
Coverage now: 208 of 207 products (1 extra is a stale dir, harmless).
regen-sitemap-v2.py already enumerates /pricing/ subpath; just needed regen to pick up the 32 new pages.
Added 5 /2 cron entry. Generator is idempotent (skipped 174 already-existed). New products that ship will get a fallback pricing page within 2 hours, until the original builder produces a custom one.
Universal sweep ran: 12 dashes stripped from 3 files. Factory-wide count: 0. The 32 new pricing pages all clean (the generator wraps output with _no_dash()).
60/60 passing at 16ms avg.
/home/ubuntu/factory/director/regen-fallback-pricing.py (fallback pricing generator, idempotent)/srv/sites/factory/builds/<slug>/pricing/index.html files/srv/sites/factory/sitemap.xml (1648 URLs)5 /2 regen-fallback-pricing (every 2 hours)This was an invisible UX bug: status code 200, but wrong content. The kind of issue that would never surface in a routine link audit (the link "works") but would actively confuse buyers (they click Pricing, see Mission Control homepage).
For 32 products that's a meaningful broken impression. Now closed.
Plus the fallback page has its own value: it tells the buyer about the marketplace pricing model honestly while pointing to the $5 unlock for product-specific pricing detail.
Same Wes-side as before:
The factory has closed another silent-bug class: silent-200-wrong-content URLs. Every product now has:
Plus the marketplace shell: catalog, FAQ, changelog, graduated, adoptability methodology, audience landings.
0 em-dashes anywhere across 2600+ HTML files, durably enforced. 60 health endpoints. ~106 cron entries. Director ticking.
Remaining work is exclusively Wes-side: Stripe + traffic push.