# Wishdeal Factory buyer-path - iteration 134 ship log

**Date:** 2026-05-15 (push mode, 60 min cadence, link-quality audits iter)

## What shipped (2 substantive ships)

Built 2 new link-quality audits. Both surfaced real systemic drift on first run: 778 placeholder CTAs across 195 pages, and 12 products missing back-links. Audit count: 32 -> 34.

## Ship 1: audit-anchor-jump-noise.py - 33rd audit class

Built audit-anchor-jump-noise.py (~85 lines). For each /builds/<slug>/index.html, flags `<a href="#">` placeholder links - empty-hash CTAs that scroll to top with no useful effect. These are unfinished placeholders from initial page generation (text like "Start free trial", "Route this user", "Learn more" - hand-written CTAs that never got real targets).

**Result: 52/247 clean. 195 pages have placeholder links. 778 total empty-hash links.**

This is the first new FAIL-state card since iter 124's cross-surface-name discovery. It's exactly what the audit suite is for - surfacing real product-quality drift that buyer-facing pages have accumulated.

**Why Wes-task not fixed in this iter**: each empty-hash link's correct target varies by intent ("Start free trial" -> /unlock/ vs "Learn more" -> /faq/ vs "Schedule demo" -> /contact/). Programmatic mapping risks misdirecting buyers. Better as editorial review.

**Cron:** every hour at :51

## Ship 2: audit-cross-surface-back-link.py - 34th audit class

Built audit-cross-surface-back-link.py (~85 lines). Cross-cutting audit. For each product, verifies every sub-surface (pricing/faq/vs/how-it-works/sales-kit/skeptic-memos/case-studies/unlock/adopt/feedback) has at least one link back to /builds/<slug>/. Accepts both /builds/<slug>/ and /builds/<slug> forms.

**Result: 235/247 clean. 12 products missing back-link on some sub-surface.**

Distribution:
- faq: 9 (catering-ai, coach-ai, contract-ai, lead-router, pharmacy-ai, press-ai, rekinder-score, restaurant-ai, sc-warm-signal-enrichment)
- case-studies: 2 (after-hours-voice-intake-ai-for-law-firms-that-qua, creator-revenue-ai)
- skeptic-memos: 1 (law-firm-ai)

All 12 misses are on hand-written content (Wes-task).

**Cron:** every hour at :53

## /quality-report/ wired - 2 new cards + invariants #41-42

Patched regen-quality-report.py:
- New helpers `latest_anchor_jump_noise()` + `latest_back_link()`
- New cards: "Placeholder CTA cleanup 52/247 FAIL (778 placeholder links across 195 pages)" + "Back-link coverage 235/247 WARN (12 products missing back-link)"
- 2 new audit-table rows + invariants #41-42

**Live-check card count: 34 -> 36.** Total content invariants: 40 -> 42.

**Card state shift**: 0 FAIL -> 1 FAIL (Placeholder CTAs). First fail-state card since iter 124's discovery (then fixed in iters 125-126). The audit suite continues to surface real drift as new cross-cutting audits are added.

## The 34 audit suites at iter 134

Class breakdown:
- Catalog-wide: 1 (fakeproof)
- Per-surface content: 17 (unchanged from iter 132)
- Cross-cutting: 15 (cross-surface-name, jsonld, meta-tags, internal-links, twitter-card, emoji-presence, cross-surface-tagline, page-load-size, html-validity-basic, html-lang-attr, favicon-coverage, form-labels, cross-surface-utility-bar, **anchor-jump-noise**, **cross-surface-back-link**)
- Lint: 1 (em-dash-sweep)

## Health hygiene

- audit-anchor-jump-noise: NEW, 52/247 clean (195 pages flagged - Wes-task)
- audit-cross-surface-back-link: NEW, 235/247 clean (12 hand-written content - Wes-task)
- Other audits unchanged

## Status snapshot

- 246 scored products + 2 partial builds
- 34 audit systems (17 per-surface + 15 cross-cutting + 1 catalog-wide + 1 lint)
- 0 fake-proof findings; 252 in warn/fail (195 placeholder-CTA + 12 back-link + 19 emoji + 4 thin descriptions + 16 pricing + 8 case-studies; some pages overlap multiple audits)
- 247 brand briefs with valid archetype
- brand_name_helper.py honored by 10 generators + 1 injector
- 42 content invariants defended
- /quality-report/ surfaces **36 live-check cards** (1 FAIL, 5 warn, 30 ok)
- 77/77 health endpoints, 166+ cron jobs
- 60 min cadence active

## Iter 134 throughput note

2 substantive ships at 60-min cadence. Both surfaced significant systemic drift on first run - reverse-pattern from iter 132/133 where each audit either passed cleanly or got fixed in the same iter. The 195-page anchor-jump-noise finding is the largest single audit hit in this run. It accumulates from hand-crafted product pages that never had their placeholder CTAs replaced.

## Running queue (top 5 for iter 135)

1. **Wes-task: 195 build pages with empty-hash placeholder CTAs (778 links total)**
2. **audit-script-coverage** - verify expected JS analytics + intent-handler are loaded on relevant surfaces
3. **audit-published-date-coverage** - ship-log + essays declare timestamps?
4. **audit-cross-surface-stylesheet-uniformity** - identifies legacy template variants
5. **Wes-task: 12 missing back-links + 19 emoji + 4 thin descriptions + 16 pricing + 8 case-studies**

## Cumulative iter 1-134

- **Catalog**: 246 scored + 2 partial, 246 with index.html
- **Content library**: 12 essays + Read-next + 273 OG PNGs + 134 styled ship-log pages
- **High-trust pages**: 8 foundational + 5 transparency surfaces + 1 split-brain detail
- **Audit infrastructure**: **34 audit systems** organized into 4 classes (15 cross-cutting now)
- **Source durability**: 32+ generators + 11 read brand brief via helper + 30 JSON snapshots + 166+ cron jobs
- **Content invariants**: **42 defended** at surface+source AND publicly surfaced

Audit detection rate is now high enough that not every iter can fix what it finds in the same loop. The 778 placeholder-CTA drift is the largest accumulated buyer-quality debt the audit suite has surfaced - worth Wes's attention.
