# Wishdeal Factory buyer-path - iteration 12 ship log

**Date:** 2026-05-09 (continued autonomous /loop)

## What shipped

### New scripts on `ubuntu@40.160.2.121`

| File | Purpose | Cron |
|---|---|---|
| `patch-intent-telegram.py` | Patches factory-api/server.js to fire a Telegram message when a real (non-test slug) intent capture arrives. Bot token pulled from `/home/ubuntu/proxybox-api/.env`. Channel: chat -1003811437693, thread 1848 (Wes's Ready ping channel). Includes mint-link command + admin URL in message. Skips slugs starting with "test". | one-time |
| `mint-batch-emails.sh` | Reads `~/recipients.csv` (audience,first_name,email per line), emits curated email body for each contact. Wes can paste a 20-row CSV and get 20 ready-to-send emails at once. | manual |
| `regen-submit-idea.py` | `/factory/submit-idea/` - inbound page. Visitors propose B2B AI ideas; submission goes via /api/intent with structured note (buyer/pain/solution/why_now). Director can later score and adopt. | 44 hourly |
| `regen-vs-pages.py 50` | Extended /vs/ comparison coverage to top 50 by Adoptability (was top 20). 30 new pages. | continues 42 hourly |

### Live URLs

- https://wishdeal.com/factory/submit-idea/ - LIVE inbound idea submission form
- 30 new https://wishdeal.com/factory/builds/`<slug>`/vs/ pages (50 total now)
- POST `/api/intent` now fires Telegram alerts (verified end-to-end with one real-slug test capture)
- `mint-batch-emails.sh ~/recipients.csv` - LIVE CLI

### Telegram alert format

When a real visitor captures intent (slug doesn't start with "test"):

```
🔔 Factory: unlock capture for *bookkeeper-ai*
buyer@example.com
_optional note from buyer_

Mint: `./mint-dossier-link.sh bookkeeper-ai`
Admin: https://wishdeal.com/factory/admin/inbox/
```

Lands in Wes's Ready ping Telegram channel (-1003811437693, thread 1848). One-tap to copy the mint command, one tap to open the admin inbox.

**One verification message was sent** during testing (slug `bookkeeper-ai`, email `verify-tg-real@example.com`). If Wes sees this in Telegram, the wiring is confirmed working. That capture is in the JSONL too.

### Hero polish completion

**Top 100 by Adoptability all polished and applied.** All 100 have buyer-named, specific-pain h1 + lede via Claude CLI. The 51-100 batch landed via apply-polished-heroes cron over the last several iterations.

## What's now better for Wes

1. **He knows in real time when a buyer captures intent.** Telegram alert fires within seconds. He can mint the dossier link and email it within minutes of capture - that's the lowest-friction conversion path.
2. **He can curate batches of network outreach.** Drop a CSV of audiences x first_names x emails and get 20 ready-to-send messages.
3. **Inbound idea submission is open.** When traffic shows up, savvy visitors can propose ideas; the Director scores them on the same axes as Reddit/HN finds.
4. **/vs/ pages cover top 50 products.** Buyer evaluating "X-AI vs incumbent" gets a real comparison page rather than a 404.
5. **All 100 top products have polished hero copy.** No more generic SaaS h1s in the top half of the catalog.

## What's now better for buyers

1. **Top-100 product pages have buyer-named hero copy.** "Bookkeepers, end the close report crunch" / "Founders, stop losing three hours a day to support" / "Customer success leaders, catch downgrades before they happen" / "Sales VPs, know your best leads before reps pick".
2. **/vs/ pages on top 50** answer the "how does this compare to QuickBooks/ServiceTitan/Vanta/Clio" question honestly.
3. **Submit-idea form** lets visitors contribute - they become co-creators rather than just buyers.

## What still needs work

- **Stripe wiring** still pending Wes's keys.
- **Email-send integration** - signups go to JSONL; Friday digest still manual until SendGrid/Postmark wired.
- **Hero polish for products 101-176** (next iter could batch top 100-150).
- **/vs/ pages 51-100** (next iter).
- **Telegram alerts could include a "Quick reply" button** that opens the mint command in a terminal app (deep-link to Termius/iSH on iOS).

## Next 5 recommended autonomous tasks

1. **Hero polish 101-150** (next 50 by Adoptability).
2. **Stripe wiring** when keys arrive.
3. **First-customer simulation** - send a real internal capture from a fresh email to validate the alert + mint flow end-to-end.
4. **Newsletter Friday digest** generator that emits a markdown summary of week's events and intent counts (for Wes to paste into his SendGrid blast when ready).
5. **Audio improvements**: add subtitles or transcripts to elevator audio for accessibility + SEO.

## Files changed inventory

- New: 2 Python (1 patcher, 1 page generator) + 1 shell helper
- New: `/srv/sites/factory/submit-idea/index.html`
- New: 30 `/srv/sites/factory/builds/<slug>/vs/index.html` (top 21-50)
- Modified: `/home/ubuntu/factory/api/server.js` (Telegram alert in handleIntent; backup `.bak.before-telegram`)
- Modified: crontab (1 new entry)

## Cumulative iter1-iter12 numbers

- **48+ buyer-facing or admin pages** live
- **5 Node API routes** + Telegram alert hook on /api/intent
- **3 Wes-side CLIs** (`mint-dossier-link.sh`, `mint-network-email.sh`, `mint-batch-emails.sh`)
- **All 176 products** have full buyer-path artifacts
- **159/176** with brand identity
- **100/176** with polished hero copy via Claude CLI (top 100)
- **50/176** with /vs/ comparison pages (top 50)
- **172 OG images** + 1 catalog OG card
- **Repair queue: 96% avg complete, 89/176 fully complete**
- **73 broken internal links**
- **~87 active cron entries**
- **5 real intent captures** (one new from telegram-verification test) + 2 feedback
