Ship log · iter #113
Iteration 113 ship log
2026-05-14 · push mode, 60 min cadence, FAQ audit iter
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)
- Trigger faq-template-gen.py rerun on the 8 zero-question slugs - small remediation
- Cross-link /own/ from /factory/catalog/ cards (still pending)
- Audit /factory/unlock/<slug>/ content quality (page-identity covers identity; content audit would catch missing tagline / score / etc.)
- Cadence-validate 60 min
- 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.