Date: 2026-05-10 (continued autonomous /loop)
4 substantial items. One was a critical regression fix that would have hurt SEO.
Started iteration by checking sitemap and found it had 224 URLs instead of the expected 1328. Investigation revealed two sitemap generators running on cron:
regen-sitemap.py (v1, deprecated) every 2 hoursregen-sitemap-v2.py (v2, current) every hour at :55The v1 was overwriting the v2 sitemap at :00 every 2 hours. So at any given moment, the sitemap was either 1328 URLs (just after v2) or 224 URLs (just after v1). This is a real SEO issue - Google was potentially seeing the smaller sitemap and de-indexing pages.
Fixed:
0 /2 .../regen-sitemap.pyThe /factory/categories/ and /factory/archetypes/ pages had not been updated with the iter-23 nav additions (/for/, /faq/, /changelog/). Discovered this by sampling. Fixed at both generators (regen-categories.py, regen-archetypes.py) and re-ran them.
Coverage now:
The link audit reported 15 broken links. Investigation showed 6 of them were JavaScript template literals like href="/factory/builds/${slug}/" inside <script> tags. These work at runtime but the audit's HTML-href regex didn't distinguish them from real broken links.
Fixed by adding if "$" in link: continue to the audit's link iteration. Now correctly skips JS template literals.
Result: 15 broken → 8 broken. Remaining 8 are real (admin/log page references to deleted products + missing sub-pages) but none in primary buyer surface.
Built find-cron-collisions.py to scan all cron-scheduled python scripts and find files referenced by 2+ scripts (potential write-collision risk like the sitemap one). Result: many scripts READ adoptability.json (expected), but no other genuine WRITE collisions on primary buyer-facing artifacts.
This is preventive work - if a future iteration introduces a write collision, this tooling can catch it.
0 em-dashes shipped on any iter-34 file. Verified post-each-write.
/home/ubuntu/factory/director/regen-categories.py (nav consistency)/home/ubuntu/factory/director/regen-archetypes.py (nav consistency)/home/ubuntu/factory/director/link-audit.py (skip JS templates)crontab (removed legacy regen-sitemap.py entry)/srv/sites/factory/sitemap.xml (1336 URLs, restored)/tmp/find-cron-collisions.py (preventive collision audit)All .bak backups preserved.
| Iter | Broken | Notes |
|---|---|---|
| 30 | 94 | First measured (in iter 33's audit) |
| 33 (start) | 95 | (re-baseline) |
| 33 (foreman fix) | 75 | -20 (slug normalization) |
| 33 (own /about/ fix) | 16 | -59 (in-place patch) |
| 33 (skeptics fix) | 15 | -1 |
| 34 (JS template skip) | 8 | -7 (false positives suppressed) |
92% reduction in broken links since this iteration sequence started.
The sitemap regression is the kind of bug that's invisible to a buyer browsing the site but catastrophic for SEO. A search engine that re-crawls the sitemap and sees 224 URLs instead of 1328 will lose 80%+ of the pages from its index. That's the worst kind of bug: silent, slow-acting, hard to diagnose post-hoc.
Catching it cost roughly 5 minutes of investigation. The cost of NOT catching it would have been a measurable de-indexing event next time a search bot fetched the sitemap.
The nav consistency fix on 27 pages closes the last gap in the "every page has consistent nav" invariant. The link audit false positive fix is QA hygiene.
Same Wes-side as before:
The Wishdeal Factory's buyer-facing surface is now genuinely tight. 95 broken links found and fixed (now 8, all admin/log-only). 1500+ sub-pages with consistent nav. Per-product objection handlers + trust signals + previews. 1 graduated product page. Zero em-dashes shipped across 34 iterations. Surface quality high enough to charge $5 for. Remaining work is Wes-side: Stripe + traffic push.