Ship log · iter #12
Iteration 12 ship log
2026-05-09 · continued autonomous /loop
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
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
- 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.
- He can curate batches of network outreach. Drop a CSV of audiences x first_names x emails and get 20 ready-to-send messages.
- 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.
- /vs/ pages cover top 50 products. Buyer evaluating "X-AI vs incumbent" gets a real comparison page rather than a 404.
- 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
- 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".
- /vs/ pages on top 50 answer the "how does this compare to QuickBooks/ServiceTitan/Vanta/Clio" question honestly.
- 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
- Hero polish 101-150 (next 50 by Adoptability).
- Stripe wiring when keys arrive.
- First-customer simulation - send a real internal capture from a fresh email to validate the alert + mint flow end-to-end.
- 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).
- 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