Date: 2026-05-10 (continued autonomous /loop)
This iteration found and fixed a real conversion-killer bug, then ensured the fix survives future regenerations.
Discovered: All 188 unlock pages were showing the same hardcoded "Director of Revenue Operations at a B2B SaaS in the $5M-$50M ARR band..." teaser regardless of which product was being unlocked. A buyer comparing /unlock/bookkeeper-ai/ vs /unlock/discovery-call-ai/ saw identical "Locked: full schema" content. That's a credibility-destroying signal: it screams template-not-real.
Fixed: Added _extract_dossier_preview(slug) helper to regen-unlock-pages.py. Reads the private full.md for that product, pulls section 3 (named ICP) and section 5 (what it does) first paragraphs, em-dash-strips, html-escapes, falls back to friendly text if missing. Patched the locked teaser to render real per-product content.
Verified across 4 products:
A buyer comparing 3 ideas now sees 3 distinct, credible teasers, not template-cookie-cutter content.
Discovered that the unlock regen wipes the iter 27 objection handler block (which is injected after generation, not part of the generator). Future cron-driven regenerations would have left a 60-min gap with no objection handler.
Fixed: Added a post-regen subprocess hook to regen-unlock-pages.py that calls objection-handler-injector.py immediately after writing pages. Tested: regen now writes pages → injects objections automatically. No race condition with cron.
The preview extractor proactively strips em/en dashes from upstream dossier content during extraction. Verified 0 em-dashes on all 192 unlock pages.
/home/ubuntu/factory/director/regen-unlock-pages.py:_extract_dossier_preview(slug) helpericp_html + what_htmlobjection-handler-injector.py/srv/sites/factory/unlock/<slug>/index.html (re-rendered with per-product previews + objection handler re-injected)All .bak backups preserved.
This was the single highest-impact bug in the buyer-path funnel. The unlock page is where someone decides whether to spend $5. Showing them an obviously-fake template ICP on every product was actively harmful.
Now the unlock page reads as: "Here's the named buyer this dossier is about, here's what the product does in their words, here's a blur veil over the rest. Pay $5 to read it." That's the credible version.
Combined with iter 27's objection handler and iter 28's trust-signal block on builds pages, the funnel is now:
Same Wes-side as before:
The Wishdeal Factory buyer path is now genuinely tight. From "curious" → "$5 decision" the buyer:
What's unique vs typical AI-idea catalogs: the honest disclosures, the per-product preview content, the dossier methodology page, the changelog showing real iteration. Together these read as a real operator's product, not template slop.