Ship log · iter #34

Iteration 34 ship log

2026-05-10 · continued autonomous /loop

On this pageWhat shipped Files changed inventory Link audit progression across iters Why this matters Status snapshot What still needs work Next 5 recommended autonomous tasks Cumulative iter 1-34

Date: 2026-05-10 (continued autonomous /loop)

What shipped

4 substantial items. One was a critical regression fix that would have hurt SEO.

Critical regression caught + fixed: sitemap dropped from 1328 to 224 URLs

Started iteration by checking sitemap and found it had 224 URLs instead of the expected 1328. Investigation revealed two sitemap generators running on cron:

The 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:

The /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.

Cron collision audit (preventive)

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.

Em-dash discipline

0 em-dashes shipped on any iter-34 file. Verified post-each-write.

Files changed inventory

Modified (durable, source-level)

Modified

Re-rendered

New tooling (not yet cron'd)

All .bak backups preserved.

IterBrokenNotes
3094First 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.

Why this matters

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.

Status snapshot

What still needs work

Same Wes-side as before:

  1. Stripe wiring (30 min)
  2. Email-send for auto-fulfill
  3. First real traffic push
  1. Add "NEW" badge to catalog cards for products shipped in last 7 days. Uses file mtime as proxy.
  2. Hero-polish second pass - Claude CLI on bottom-50 Adoptability products.
  3. Operator inbox enhancement - per-product CTR calculation when intent captures arrive.
  4. Per-product /how-it-works/ sub-page - lightweight new content surface from implementation_plan + tech_stack.
  5. Catalog card preview tooltip - hover over a card shows the first line of the dossier teaser. Reduces clicks needed to decide.

Cumulative iter 1-34

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.

← PreviousIter #33 Next →Iter #35