# Wishdeal Factory buyer-path - iteration 113 ship log

**Date:** 2026-05-14 (push mode, 60 min cadence, FAQ audit iter)

## What shipped (2 substantive ships + 1 audit-discovery)

This iter built the FAQ quality audit. Result: 229/247 FAQ pages clean, 18 with issues. 8 of those have ZERO questions (empty placeholder pages).

## Ship 1: audit-faq-quality.py - new audit class

Built audit-faq-quality.py (~100 lines). For each /builds/<slug>/faq/index.html:
- Verifies **WD_FAQ_TEMPLATE_v1 marker** present
- Title contains product name
- **At least 8 question elements** (h3/details/summary/.faq-q class)

**Result:** 247 scanned -> **229 clean, 18 issues, 1 missing**
- 18 lack the template marker (hand-written FAQs)
- 8 of those also have ZERO questions (empty placeholder pages): api-gateway-ai, church-ai, code-review-ai, content-calendar-ai, copywriting-ai, handoff-ai, tutor-ai, video-ai
- 2 have title-no-product (rebrands: contract-ai -> "Inkwell", rekinder-score -> "RekinderScore")

**Cron:** every 30 min at :37

## Audit-discovery: 8 FAQ pages have zero questions

The 8 zero-question FAQ pages are buyer-touching surfaces with empty content. A buyer landing on /factory/builds/api-gateway-ai/faq/ gets a styled page with no actual FAQ entries. This is a real conversion-leak.

**For the Director or Wes**: these 8 slugs need FAQ regeneration. The faq-template-gen.py cron should be re-run on them specifically. Listing for action:
- api-gateway-ai
- church-ai
- code-review-ai
- content-calendar-ai
- copywriting-ai
- handoff-ai
- tutor-ai
- video-ai

The remaining 10 hand-written FAQs (catering-ai, coach-ai, lead-router, pharmacy-ai, press-ai, referral-engine-ai, restaurant-ai, sc-warm-signal-enrichment, plus the 2 rebrands) are likely fine — they just don't have the template marker because they're hand-curated.

## Ship 2: /quality-report/ wired + invariant #17

Patched regen-quality-report.py with:
- New helper `latest_faq_quality()`
- New card: "FAQ quality 229/247 - 18 need attention" (warn class)
- New audit-table row
- New content invariant #17

**Live-check card count: 10 -> 11.** Total content invariants: 16 -> 17.

## The 9 audit suites at iter 113

| Audit | Cadence | Snapshot | Invariant # |
|---|---|---|---|
| audit-fakeproof.py | daily 4:30am | audit-fakeproof.json | 1-10 |
| audit-adoptability-drift.py | every 15 min | adoptability-drift.json | 11 |
| audit-page-identity.py | every 30 min | page-identity.json | 12 |
| audit-hero-polish-drift.py | every 30 min | hero-polish-drift.json | 13 |
| audit-og-coverage.py | every 30 min | og-coverage.json | 14 |
| audit-teaser-quality.py | every 30 min | teaser-quality.json | 15 |
| audit-case-studies-quality.py | every 30 min | case-studies-quality.json | 16 |
| **audit-faq-quality.py** | **every 30 min** | **faq-quality.json** | **17** |
| em-dash-sweep.py | every 15 min | (log only) | 1-2 |

## Health hygiene (Op rule 5)

- **Em-dash sweep**: pending
- **audit-fakeproof**: 0 hard / 0 soft (CLEAN)
- **audit-adoptability-drift**: 246 matched, 0 drift, 2 partial-build
- **audit-page-identity**: 2456 ok / 4 weak / 0 mismatch (10 surfaces)
- **audit-hero-polish-drift**: 177/177 match
- **audit-og-coverage**: 246/246 ok
- **audit-teaser-quality**: 247/247 clean
- **audit-case-studies-quality**: 239/247 / 8 need framing (iter 112)
- **audit-faq-quality**: 229/247 / 18 need attention (NEW iter 113)
- **Health-check**: 77/77 passing

## Status snapshot

- 246 scored products + 2 partial builds
- 246 build pages + 246 /own/ + 247 day-one + 247 operator + 247 teasers + 246 case-studies + 246 FAQs, all audited
- 0 fake-proof findings (regex-checked); 8 case-studies + 18 FAQ pages need content work (Wes-task items)
- 247 brand briefs with valid archetype
- 12 essays + Read-next + JSON-LD
- 8 high-trust pages with JSON-LD durable
- /factory/catalog/ with CollectionPage
- 273 OG PNG images
- 5 transparency surfaces + 113 styled ship-log detail pages
- /quality-report/ surfaces **11 live-check cards** (added FAQ quality)
- **17 content invariants defended**
- **9 audit systems** operational
- 77/77 health endpoints, 140+ cron jobs
- 60 min cadence active

## Iter 113 throughput note

2 substantive ships + 1 audit-discovery at 60-min cadence. The audit caught 8 buyer-touching FAQ pages with ZERO questions - a real conversion leak now publicly surfaced and Wes-actionable.

## Running queue (top 5 for iter 114)

1. **Trigger faq-template-gen.py rerun on the 8 zero-question slugs** - small remediation
2. **Cross-link /own/ from /factory/catalog/ cards** (still pending)
3. **Audit /factory/unlock/<slug>/ content quality** (page-identity covers identity; content audit would catch missing tagline / score / etc.)
4. **Cadence-validate 60 min**
5. **13th essay** - skip until queue has fresh candidate

## Cumulative iter 1-113

- **Catalog**: 246 scored + 2 partial, 246 with index.html
- **Content library**: 12 essays + Read-next + 273 OG PNGs + 113 styled ship-log pages
- **High-trust pages**: 8 foundational + 5 transparency surfaces
- **Audit infrastructure**: **9 audit systems** + 10-surface page-identity coverage
- **Source durability**: 28+ generators + 6 regen scripts auto-call injectors + 8 JSON snapshots + 140+ cron jobs
- **Content invariants**: **17 defended** at surface+source AND publicly surfaced

The catalog's content audits are now comprehensive across the buyer journey: teaser (247/247 clean), case-studies (239/247 with 8 fabrication-style issues iter 112), FAQ (229/247 with 18 empty-or-handwritten iter 113). Two real Wes-task lists are surfaced: case-studies hand-rewrites and FAQ regen on 8 empty pages.
