# Diary — 2026-06-12 (Adi)

User: adi (Adi Pramono), lead developer.

**Note for Rian: all of my work happens in `/srv/apps/brentwooddev/` (the WordPress
migration target), not in this Laravel project. Today's full work log lives at
`/srv/apps/brentwooddev/ADI-UPDATES-2026-06-12.md` — that's the file to read.**

## Today in one paragraph

Big day on brentwooddev: switched the content schema off the brentwood-migration
plugin onto ACF Pro Local JSON (plugin deactivated, all migrated data intact —
docs in `kadence-child/acf-json/README.md`); built the template-driven hero
system covering all six live-site hero layouts (Home Video / Image / Gallery /
Carousel / Video / Dual Image, plus an Off switch and a card-less mode) with the
white card as an editable Gutenberg block; rebuilt the single blog post layout
to the live 33/67 split; shipped the "Brentwood Blog" grid block with AJAX
search/pagination and taxonomy/sticky/offset query controls; plus smaller fixes
(breadcrumb sub nav for Athletics, 200MB upload limit workaround, editor meta
box reordering). Met with Rian today re: deleting the migration plugin, moving
the Laravel titles into Yoast, and the H1 question — execution pending.

## Pages already converted to the new hero system

- Home (859) — full-width video hero, card as block
- Why Brentwood (905) — featured image + card, like live
- Arts/Facilities (927) — carousel, no card, like live

## Next steps

- Relay Rian's meeting decisions to Claude and execute (plugin file deletion,
  title→Yoast copy + Title Override module off, H1 approach).
- Continue rolling hero types out across pages; keep human-verifying layouts
  against the live mirror.

---

## Addendum (later) — Page hero media migration (automated)

Built an **adi-accessible** automation to bring page title-area media from the
Laravel live site into brentwooddev as Page Hero fields (no docker/DB needed —
that path is owner-only). Pipeline:

1. `migration/importers/build-page-heroes.py` — reads the sheet's "Title Area
   Type", fetches each live page (cookie gate), parses the embedded component
   JSON for the title-area media + type. Writes a manifest.
2. `stage-page-heroes.py` — resolves media URLs to files on disk
   (`laravel/storage/app/public`, readable by group) and copies them into a
   staging dir.
3. `import-page-heroes.php` (via `srv-gw wp eval-file`) — sideloads + sets the
   Page Hero ACF fields (image→featured image, slider→carousel gallery,
   dual→gallery, mp4→hero_video). Idempotent (`_bw_hero_src` / `_bw_src_page_hero`).

**Result: 137 pages imported** (82 image, 30 video, 24 carousel, 1 dual), 0
failures, all verified rendering. Image heroes set the WP featured image (SEO).

- **YouTube title areas NOT auto-imported** (cosmetic) → listed for manual
  handling in `notes/PAGE-HEROES-youtube-manual.md`. Where a YouTube-flagged
  page also had a still image, the image was imported (SEO) — e.g.
  /why-brentwood/university-placement.
- Full per-page review: `notes/PAGE-HEROES-review.md`.
- ~14 landing/app pages had no real title-area media → skipped.
- Re-runnable: re-run the 3 scripts; idempotent.
