# Wishdeal Factory buyer-path - iteration 72 ship log

**Date:** 2026-05-14 (push mode, 30-min cadence, new-feature focus)

## What shipped (4 substantive ships across 3 categories)

The deferred OG image generator (deferred from iters 69-71) finally shipped. Catalog social shares now look proper instead of bare. Plus durable source-side patches so the generators preserve OG tags through future regens.

## Ship 1: NEW Open Graph image generator

Built `/home/ubuntu/factory/director/regen-og-images.py` (~130 lines). Generates 1200×630 PNG OG images using ImageMagick + the brand palette (forest #0e2e23, bone #faf7f0, gold #d6b27a).

**Output:**
- 9 playbook essay images: `og/playbook-<slug>.png`
- 5 foundational page images: `og/page-<slug>.png`
- Total: 14 images, ranging 62-94 KB each
- Layout: gold accent stripe top + bottom, gold eyebrow text top-left, serif title large below it, sans subtitle bottom-left, "Wishdeal Factory" brand mark bottom-right

The generator reads a `PAGES` list of (slug, title, subtitle, eyebrow, kind) tuples and runs an ImageMagick `convert` per image. Idempotent. Re-running regenerates all 14 in about 2 seconds.

## Ship 2: 14 OG meta tags wired into pages

Each essay + foundational page now has 3 new meta tags in `<head>`:

```html
<meta property="og:image" content="https://wishdeal.com/factory/og/playbook-<slug>.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://wishdeal.com/factory/og/playbook-<slug>.png">
```

When someone shares a Wishdeal Factory essay link on LinkedIn, Twitter/X, Slack, etc., the preview now renders the branded OG card instead of falling back to a generic site preview.

**Affected pages:**
- 9 playbook essays (hand-edited, durable since no generator runs on them)
- 2 foundational pages with no generator: /factory/adoptability/, /factory/methodology/
- 3 foundational pages WITH generators (see ship 3)

## Ship 3: 3 generators source-patched to preserve OG tags

The 3 foundational pages produced by cron generators would have lost their OG tags on the next regen. Patched the generators to include the og:image meta tags in their output:

- `regen-honest-page.py` (runs every hour at :15)
- `regen-about-the-builder.py` (manual run, no cron)
- `regen-operator-partnership.py` (manual run, no cron)

Re-ran each generator to verify the tags now appear in output. All 14 pages confirmed to have og:image.

This is the iter 62-pattern applied: surface fix + source fix.

## Ship 4: about-the-builder essay count refresh

The "What the Factory has built so far" section in `regen-about-the-builder.py` claimed "Seven operator essays totaling ~13,000 words." Stale since iters 69 + 71 each added an essay.

**Updated to:** "Nine operator essays totaling ~16,500 words" with the two new essay titles added to the description: "The dossiers we would tell a friend to skip. How we caught 70 fabrications in our own catalog."

Source-fix in the generator. Re-rendered. Live.

## Files changed inventory

### New (durable)
- `/home/ubuntu/factory/director/regen-og-images.py` (130 lines, OG image generator)
- `/srv/sites/factory/og/playbook-*.png` (9 essay images)
- `/srv/sites/factory/og/page-*.png` (5 foundational page images)

### Modified (source-level, durable)
- `/home/ubuntu/factory/director/regen-honest-page.py` (+og:image tag)
- `/home/ubuntu/factory/director/regen-about-the-builder.py` (+og:image tag + essay count refresh)
- `/home/ubuntu/factory/director/regen-operator-partnership.py` (+og:image tag)

### Modified (in-place, generator-less pages)
- 9 essay /index.html files at /srv/sites/factory/playbooks/<slug>/
- /srv/sites/factory/adoptability/index.html
- /srv/sites/factory/methodology/index.html

## Status snapshot

- 238 products, 0 broken pages, ~0 fabrications
- **9 playbook essays (~16,500 words) all with OG images**
- **5 foundational pages all with OG images**
- 60 bulk-repaired + 4 hand-repaired + 9 polished + 2 confirmed-good + 1 audit-fix
- 10 content invariants defended at surface+source
- audit-fakeproof.py runs daily at 4:30am
- 70/70 health endpoints passing
- 2313 sitemap URLs
- 0 em-dashes shipped this iter

## Why OG images matter for the catalog

Until iter 72, sharing any Wishdeal Factory link on LinkedIn or Twitter rendered a bare URL preview. The site now has 14 first-class share cards covering every high-trust surface (every essay + every foundational page). When a buyer shares "this honest essay" with their network, the preview now reads "How we caught 70 fabrications in our own catalog" with the brand mark visible, not just a domain.

This is conversion infrastructure. The marketing-quality cost of NOT having OG images was invisible because we had no shares. As traffic ramps, this becomes the difference between a share that gets clicked and one that gets ignored.

## Running queue (top 5 for iter 73)

1. **/factory/builds/audit-ai/ screenshot repair** (cron failure - low priority but visible)
2. **/factory/cron-status/ public-facing page** transparency about which crons run when
3. **Review remaining 5 audit-fakeproof hard findings** (quick close, likely all false positives)
4. **Per-product polish on remaining 70-tier products** (a few untouched ones)
5. **Catalog navigation improvements** - the /catalog/ page has anchor pills + audience filters but could use search

## Cumulative iter 1-72

- **Catalog**: 238 products, 0 broken, ~0 fabrications
- **Content library**: 9 essays (~16,500 words), 14 OG share cards
- **Foundational pages**: 5 of 5 depth-passed + OG-equipped
- **Hand-polished products**: 9
- **Source durability**: 15+ generators source-fixed + audit-fakeproof.py in cron + OG generator
- **Content invariants**: 10 defended at surface+source
- **Marketing infrastructure**: OG image generator + 14 share cards (new in iter 72)

The factory now ships proper social-share infrastructure on every high-trust surface. Catalog is content-honest AND share-presentable.
