Ship log · iter #126

Iteration 126 ship log

2026-05-15 · push mode, 60 min cadence, full-rename-closure iter

On this pageWhat shipped (3 substantive ships) Ship 1: audit-jsonld-coverage.py - 19th audit class Ship 2: jsonld-injector.py patched + 48 JSON-LD blocks refreshed Ship 3: 5 hand-written split-brain titles fixed (targeted swap) End-state: 29 split-brain → 0 split-brain (100% audit-pass) /quality-report/ wired + invariant #27 The 19 audit suites at iter 126 Health hygiene (Op rule 5) Status snapshot Iter 126 throughput note Running queue (top 5 for iter 127) Cumulative iter 1-126

Date: 2026-05-15 (push mode, 60 min cadence, full-rename-closure iter)

What shipped (3 substantive ships)

This iter closed the split-brain rename loop entirely: cross-surface card went from WARN 24/29 to OK 29/29. Built JSON-LD audit (which discovered AND fixed a second-order brand-rename split-brain), then targeted title swaps eliminated the last 5 hand-written holdouts.

Ship 1: audit-jsonld-coverage.py - 19th audit class

Built audit-jsonld-coverage.py (~140 lines). For each /builds/<slug>/index.html, verifies:

First run discovered second-order brand-rename split-brain: 45 products had JSON-LD names that didn't match their brand brief (overlapped with the 29 title-split-brain + ~16 brand briefs where H1 is the slug). After refining the audit to skip trivial renames AND patching the JSON-LD generator, all 246 build pages cleared.

Ship 2: jsonld-injector.py patched + 48 JSON-LD blocks refreshed

Patched /home/ubuntu/factory/director/jsonld-injector.py line 24 to use brand_brief_name(slug) or p.get("name", slug) - same pattern as the 8 surface generators from iter 125. The shared brand_name_helper.py module from iter 125 made this a 5-line patch.

Re-ran the injector: 48 pages refreshed. Contract-ai JSON-LD now says "Inkwell". audit-ai now "Ledgerline". All 29 brand-renamed products' Product JSON-LD now names match their brand briefs.

Ship 3: 5 hand-written split-brain titles fixed (targeted swap)

The 5 remaining split-brain products had hand-written content the generators don't regenerate (brief-ai/cashflow-ai/handoff-ai/lawfirm-ai case-studies + coach-ai faq). Built fix-handwritten-titles.py to do targeted <title> and first <h1> rewrites, replacing canonical name with brand brief name. Body content untouched (editorial work for Wes).

Results:

Caveat (transparent): this is a title-only fix. The case-studies body content for 4 products still mentions canonical names many times. Buyers see the brand on the title bar / browser tab / SEO snippet, but the prose reads as the canonical name. Wes can decide later whether to rewrite body prose to fully align.

End-state: 29 split-brain → 0 split-brain (100% audit-pass)

Audit runIter 124After iter 125After iter 126
audit-cross-surface-name0/29 (FAIL)24/29 (WARN)29/29 (OK)
audit-jsonld-coverageNEW (n/a)NEW (n/a)246/246 (OK)

This is the most substantial multi-iter operational improvement since the audit-perimeter close at iter 123.

/quality-report/ wired + invariant #27

Patched regen-quality-report.py:

Live-check card count: 20 -> 21. Total content invariants: 26 -> 27.

The 19 audit suites at iter 126

AuditCadenceStatus
audit-fakeproof.pydaily0/0 ok
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 (Wes-task)
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 (Wes-task)
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 (was 0/29)
audit-jsonld-coverage.pyevery 30 min246/246 (NEW)
em-dash-sweep.pyevery 15 minrunning

Health hygiene (Op rule 5)

Status snapshot

Iter 126 throughput note

3 substantive ships at 60-min cadence. The brand-rename pipeline is now consistent end-to-end (build page, all 9 surface pages, JSON-LD). Multi-iter operational fix complete: 124 (discover) -> 125 (pipeline fix, 24/29) -> 126 (JSON-LD + titles, 29/29).

The remaining body-content rename for 4 case-studies (Brief AI -> Foreword etc.) is editorial work tagged for Wes review.

Running queue (top 5 for iter 127)

  1. Audit-meta-tags-coverage - verify every /builds/<slug>/ has title, meta description, canonical, og:title, og:image, og:description. 20th audit + invariant #28.
  2. Audit-internal-link-integrity - sample-walk /factory/ links to verify they resolve. 21st audit + invariant #29.
  3. Wes-task: 16 pricing issues + 8 case-studies fabrications + 4 case-studies body-content (Foreword/Riverine/Relay/Counsel)
  4. Restore 4 custom sales-kit index.htmls with brand-rename support
  5. Cadence-validate report - throughput stats

Cumulative iter 1-126

The factory's rename pipeline is now consistent from brand brief through to the HTML head, body, and structured data. Zero split-brain.

← PreviousIter #125 Next →Iter #127