Ship log · iter #130

Iteration 130 ship log

2026-05-15 · push mode, 60 min cadence, brand-voice audits iter

On this pageWhat shipped (2 substantive ships) Ship 1: audit-emoji-presence.py - 25th audit class Ship 2: audit-cross-surface-tagline.py - 26th audit class /quality-report/ wired - 2 new cards + invariants #33-34 The 26 audit suites at iter 130 Health hygiene Status snapshot Iter 130 throughput note Running queue (top 5 for iter 131) Cumulative iter 1-130

Date: 2026-05-15 (push mode, 60 min cadence, brand-voice audits iter)

What shipped (2 substantive ships)

Two cross-cutting audits that catch brand-voice and content-consistency drift: emoji presence (Wes's "no emojis" feedback) + cross-surface tagline consistency. Audit count: 24 -> 26.

Ship 1: audit-emoji-presence.py - 25th audit class

Built audit-emoji-presence.py (~115 lines). Scans 2,738 user-facing files across 14 surface types for emoji glyphs, including:

Detection: Unicode emoji ranges (Misc Symbols, Pictographs, Dingbats, Faces, Transport) PLUS HTML-entity emojis (💡 etc). Strips style + script + JSON-LD blocks before scanning (those legitimately may contain symbol references).

Result: 2719/2738 clean. 19 build pages have rogue emojis.

Offenders (build/<slug>): brief-ai, childcare-ai, documentation-ai, fleet-ai (12 emojis), hr-operations-ai, integration-marketplace-ai, landscape-ai, msp-ai, nda-ai, pharmacy-ai, podcast-ai, prospect-enrichment-ai, quote-ai, seller-ai, solo-analytics, student-loan-advisor-ai, team-analytics, warehouse-ai (10 emojis), warm-intro-network-ai.

Mix of literal Unicode glyphs and HTML-entity-encoded ones. Common offenders: 📊 📈 📞 🔧 ✓ 💰. These are mostly hand-crafted product pages from before the "no emojis" rule was added to brand guidance.

Wes-task: programmatic emoji-strip is risky (could leave empty bullets/headers). Better as editorial review.

Cron: every hour at :35

Ship 2: audit-cross-surface-tagline.py - 26th audit class

Built audit-cross-surface-tagline.py (~110 lines). For each product with a canonical tagline in adoptability.json, verifies the SAME tagline appears on /pricing/, /vs/, /how-it-works/, /sales-kit/ surfaces. Skips /faq/, /case-studies/, /feedback/ which use generic surface-specific lede copy.

HTML-entity aware: uses html.unescape() before comparison so Know who's leaving (canonical) matches Know who&#x27;s leaving (rendered).

Initial false positive: 7 products flagged for "drift" until I added html-unescape. After fix: 246/246 clean.

This validates that the surface generators (pricing, vs, how-it-works, sales-kit) all consistently pull the tagline from adoptability.json. Combined with iter 124-126 brand-name consistency work, the product's core text identity is durable across all 4 sales-flow surfaces.

Cron: every hour at :37

/quality-report/ wired - 2 new cards + invariants #33-34

Patched regen-quality-report.py:

Live-check card count: 26 -> 28. Total content invariants: 32 -> 34.

The 26 audit suites at iter 130

AuditCadenceStatus
audit-fakeproof.pydailyok
audit-adoptability-drift.pyevery 15 minok
audit-page-identity.pyevery 30 minok
audit-hero-polish-drift.pyevery 30 minok
audit-og-coverage.pyevery 30 minok
audit-teaser-quality.pyevery 30 min247/247
audit-case-studies-quality.pyevery 30 min239/247
audit-faq-quality.pyevery 30 min247/247
audit-unlock-content.pyevery 30 min247/247
audit-adopt-content.pyevery 30 min247/247
audit-feedback-content.pyevery 30 min247/247
audit-pricing-content.pyevery 30 min232/248
audit-vs-content.pyevery 30 min246/246
audit-how-it-works-content.pyevery 30 min246/246
audit-sales-kit-content.pyevery 30 min246/246
audit-skeptic-memos-content.pyevery 30 min246/246
audit-cross-surface-name.pyevery 30 min29/29
audit-jsonld-coverage.pyevery 30 min246/246
audit-meta-tags-coverage.pyevery 30 min243/247
audit-internal-links.pyevery 30 min246/246
audit-image-alt.pyevery hour247/247
audit-image-src-exists.pyevery hour247/247
audit-twitter-card.pyevery hour247/247
audit-emoji-presence.pyevery hour2719/2738 (NEW)
audit-cross-surface-tagline.pyevery hour246/246 (NEW)
em-dash-sweep.pyevery 15 minrunning

Health hygiene

Status snapshot

Iter 130 throughput note

2 substantive ships at 60-min cadence. Emoji audit caught real brand-voice drift (19 pages predating the no-emojis rule). Tagline audit confirms generators are consistent - together they verify the catalog's text identity (name, tagline, voice) is durable across all sales-flow surfaces.

Running queue (top 5 for iter 131)

  1. Wes-task: 19 emoji-bearing build pages + 16 pricing + 4 thin descriptions + 8 case-studies fabrications
  2. audit-link-rot - check that all link rel=preconnect/stylesheet endpoints respond (font CDNs, etc)
  3. audit-html-validity - basic well-formedness check (unclosed tags, mismatched quotes)
  4. audit-page-load-size - flag /builds/<slug>/ pages > some KB threshold
  5. audit-aria-roles - accessibility role coverage

Cumulative iter 1-130

After 130 iters, the audit suite covers: per-product content (17 surfaces), structured data (JSON-LD), SEO meta (canonical + 5 og + 4 twitter + meta description), navigation (internal links), embedded assets (img alt + img src), brand identity (name + tagline across surfaces), and now brand voice (no emojis). The buyer's structural experience is verifiably consistent on 9 distinct dimensions.

← PreviousIter #129 Next →Iter #131