Ship log · iter #15

Iteration 15 ship log

2026-05-10 · continued autonomous /loop, post-midnight

On this pageWhat shipped What's now better What still needs work Next 5 recommended autonomous tasks Files changed inventory Cumulative iter1-iter15 numbers

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

What shipped

New scripts on ubuntu@40.160.2.121

FilePurposeCron
aggregate-views.pyReads events.jsonl, filters internal IPs (40.160.2., 127., 10., 172.16-31, 192.168.) and HeadlessChrome / bot UAs and test slugs. Aggregates per-slug counts (last 24h, 7d, all-time). Writes /srv/sites/factory/view-counts.json (public) + /srv/sites/factory/admin/view-counts.json (admin with top_7d).*/10
regen-adopt-pages.py178 /factory/adopt/<slug>/ pages. Companion to /factory/unlock/<slug>/. Explains $99-$199 adopt scope: dossier + code starter + brand kit + copy library + outreach pack. Email-capture form posts tier="adopt" to /api/intent.50 hourly
patch-catalog-trending.pyPatches catalog to read view-counts.json and add "trending" badge to products with last_7d >= 5 external views. Marker WD_FACTORY_PRICING_BLOCK_v1.one-time
patch-inbox-views.pyPatches operator inbox to surface "Top viewed (last 7 days)" table reading from admin view-counts.json.one-time

Live URLs

View-tracking pipeline

Events come in via /api/event from page-loaded JS tracker (with bot filter + 10-min throttle per browser per slug).

The aggregator filters:

Result: of 178 events recorded since iter 14, 0 were external (all internal screenshot/test traffic). When Wes pushes traffic to the catalog, real views accumulate and:

Hero polish

In flight: top 151-200 batch. 148/200 done.

What's now better

  1. Adopt-tier has its own landing page - was just a button on unlock pages; now /factory/adopt/<slug>/ explains exactly what's in the $99-$199 tier with 6-cell what's-included grid and $99 vs $199 comparison.
  2. The view-tracking pipeline is closed end-to-end. Page load → /api/event → events.jsonl → aggregate every 10 min → view-counts.json → catalog "Trending" badge + operator inbox top-viewed.
  3. Internal traffic is filtered so Wes sees real buyer signal, not snap-products.sh's HeadlessChrome.
  4. Operator inbox now shows top-viewed products alongside intent captures + feedback - one screen for "what's working."

What still needs work

  1. Hero polish 151-200 finish.
  2. Stripe wiring when keys arrive.
  3. Site-wide catalog refinement based on real traffic (when it arrives).
  4. Affiliate link generator - if a network contact unlocks a dossier from Wes's curated URL, track + credit.
  5. Long-tail SEO content - blog posts about each category linking to the catalog.

Files changed inventory

Cumulative iter1-iter15 numbers

← PreviousIter #14 Next →Iter #16