Authored by: Claude Code (CC) | Date: 2026-04-30 EOD CT | Role: CC = SoT, Desktop translates to fresh-session prompt
| File | Size at last deploy | Last deploy | Notes |
|---|---|---|---|
| style.css | 246,025 bytes (post Open-Now pulse) | 2026-04-29 16:28 | Post-Round A: HIW grey-box + 2-row neighborhoods grid + pulse animation |
| functions.php | 76,828 bytes (post Round A) | 2026-04-29 16:28 | Includes V8/R-7 leak fix, Phase B helpers, Snippet #171 single-source helper |
Live read-child API requires bricks.callbrightside.com auth (different from main-site WP_APP_PASSWORD). Session 8 should fetch live shas via that endpoint to confirm parity with /tmp backups.
| City | PID | Status | Last verified |
|---|---|---|---|
| Lenexa (template OP 258) | 258 | LIVE — 146 elements + op001h | 2026-04-29 |
| Leawood | 285 | cloned, working | 2026-04-29 |
| Olathe, Overland Park, Prairie Village, Mission, Mission Hills, Roeland Park, Merriam, Fairway, Westwood, Westwood Hills, Mission Woods, Lake Quivira | various | cloned via Round B per-city map fix (14/14 native-save HTTP 200, op000s preserved) | 2026-04-29 Round B |
| Shawnee | 305 | Tech Field Note removed via op073r replacement (separate fix from Round C) | 2026-04-29 |
| Round C TFN-removed cities | 293, 294, 295, 296, 305 | OP 258 review verbatim copy applied | 2026-04-29 |
| /plumber-in-test-city/ | 333 | ABANDONED — Phase B TEST 1 + bulletproof test target. Awaiting Robert manual delete via WP admin. | 2026-04-29 |
| Metric | Count |
|---|---|
| Total snippets | 96 |
| Active | 34 |
| Inactive | 62 |
| Apr 30 deactivations (conversion fix) | 2 — snippets 23 (Click-to-Call) + 24 (Booking & Contact Form) |
| Inactive zombies (older versions of 22/23/24) | 3 — snippets 19, 20, 21 |
| LCP duplicates (both active, complementary not identical) | 2 — snippets 6 + 7 — see §H known limitation |
| TEMP/v1/v2/v3 zombies needing archive policy | ~30 (deferred portfolio audit) |
| Cron | Frequency | Path | Purpose |
|---|---|---|---|
| bsp_apr30_snippet_guard | */15 * * * * | /opt/nexus/nexus/scripts/bsp_apr30_snippet_guard.py | Auto-deactivates snippets 19/20/21/23/24 if reactivated; alerts MH |
| bsp_apr30_inline_gtag_detector | 0 * * * * | /opt/nexus/nexus/scripts/bsp_apr30_inline_gtag_detector.py | Hourly scan of 4 pages incl. bricks.callbrightside.com; alerts MH on any new inline gtag conversion fire |
| bsp_audrey_photo_workflow | 11:55 / 16:55 / 21:55 weekdays | existing | Audrey photo intake |
| bsp_photo_consumption_engine | 13:00 weekdays | existing | Photo consumption |
| Date | Event | Source |
|---|---|---|
| Pre-Mar 15 | Russ era — tag UNDER-firing, AIOS reCAPTCHA blocks 88% conversions, 67 fake India conversions from PRESENCE_OR_INTEREST geo, $2.34M est. damage | BSP_Lead_Theft_Investigation.html / Project BRIGHT LIGHT |
| 2026-03-15 07:14:27 | Snippets 19/20/21 added during Robert takeover (post-Russ tracking restoration). Correct work. | Code Snippets REST API modified timestamp |
| 2026-03-23 15:28:07-08 | Snippets 22 + 24 added as v2; v1 (19/20/21) deactivated. Duplication starts here. 22+23+24 + GTM all firing in parallel. | Code Snippets REST API modified timestamp |
| 2026-03-26 | Snippet 25 (EC4L PII Bridge) added — Evelyn project, correctly architected (dataLayer-only, no direct gtag fires) | Code Snippets REST API |
| Mar 23 → Apr 30 (38 days) | 5-7x duplicate fires per form submit. Smart Bidding optimized on phantom signal. | Live verification on Apr 30 Nikhil call |
| 2026-04-30 | Caught + fixed live during Google Ads Tag Implementation call (case 2-5436000040393, Nikhil T) | Today |
Producer-as-verifier collapse at the agency level — same pattern as CLAUDE.md Rule 1 but at vendor scale.
GTM-M3L9374 fires Google Ads Conversion tag on dataLayer generate_lead event.
inline_gtag_detector cron must show 0 violations on the new page before promotion to live.
Continue+fix over pause. Big Sale revenue ($226,703/wk SSoT) reflects real lead-flow → real revenue; only the bid signal was distorted. Pause kills emergency-customer capture (plumbing event-driven, high-LTV, unforgiving). Accept 7-14 day Smart Bidding relearn volatility. Dashboard CPA will appear to spike in next 14 days — that is truth catching up to reality.
| # | Decision | CC Recommendation | Actor on GO |
|---|---|---|---|
| A | Sewer-line Figma — single combined or split PID 9 + PID 10? | Split (different search intent, separate tracking surfaces) | CC creates 2 empty drafts via REST |
| B | PID 13 slug rename water-heater-replacement → water-heater-repair? | Rename (matches Figma file intent + higher-volume search query) | CC patches via REST /wp/v2/pages/13 |
| C | Decision C scope (Robert option iii ACK 2026-04-30 16:57 CT): immediate 3 NEW PIDs (gas-line, sump-pump, water-softeners). Leak Repair = future work, no Audrey design, no PID this session. Existing drafts 15/16/17/18 untouched. | 3 new PIDs by CC via REST (V11-clean) per option iii | CC via REST |
| D | Pipeline V1 ID strategy — keep page-8 op-sci* prefix or prefix-swap per page? | Keep op-sci* for V1 (preserves Phase B mechanism + polish JS gates) | CC just configs native-save calls |
| E | Service-page CSS path — Snippets #75/76/77 (bandaid) or bricks-child/style.css (canonical)? | Canonical bricks-child/style.css (V8/R-7/§28.19 doctrine; bandaid path has Apr 29 wipe regression history) | CC heredoc deploy via install-child both-files contract |
| Service | PID | Audrey assets | Brief | Status |
|---|---|---|---|---|
| Sewer Camera | 8 | (live template) | yes | LIVE 133 els |
| Emergency Plumbing | 12 | (live template) | yes | LIVE 133 els |
| Sewer Line Repair | 9 | 273 files / 55.6 MB (shared with #10) | partial (combined) | blank |
| Sewer Line Replacement | 10 | (shared with #9) | standalone missing | blank |
| Drain Cleaning | 11 | 239 files / 43.4 MB | yes | blank |
| Water Heater Repair | 13 | 211 files / 28.9 MB | yes | blank — pilot target |
| Gas Line Repair/Install | 14 | 295 files / 67.5 MB | standalone missing | blank |
| Sump Pump Emergency | 15 | no Figma yet | missing | blank |
| Leak Repair | (none) | no Audrey design | n/a | future work — not in Session 8 scope |
| Water Softeners | 17 | no Figma yet | missing | blank |
| File | Slug | Files | Size | Path |
|---|---|---|---|---|
| Water-Heater-Repair-Landing-Page | water-heater-repair | 211 | 28.9 MB | /opt/nexus/nexus/scripts/output/audrey_assets/water-heater-repair/ + catalog.json |
| Drain-Cleaning-Landing-Page | drain-cleaning | 239 | 43.4 MB | /opt/nexus/nexus/scripts/output/audrey_assets/drain-cleaning/ |
| Sewer-Line-Repair-Replacement-Landing-Page | sewer-line-repair-replacement | 273 | 55.6 MB | /opt/nexus/nexus/scripts/output/audrey_assets/sewer-line-repair-replacement/ |
| Gas-Line-Repair-And-Installation-Landing-Page | gas-line-repair-installation | 295 | 67.5 MB | /opt/nexus/nexus/scripts/output/audrey_assets/gas-line-repair-installation/ |
| Total | 1,084 | 229 MB | 0 errors during pull |
1. ANSWER A-E (5 sec each) 2. PID 13 slug rename water-heater-replacement → water-heater-repair (B) [30 sec via REST] 3. CC creates blank target drafts via REST: PIDs 9, 10, 14, 15, 16, 17 (C, A) [5 min] 4. native-save PID 13 from PID 12 template (Phase B mechanism) [2 min] 5. Element count verify + op* preservation check [1 min] 6. Apply Audrey water-heater-repair Figma assets (211 files, 28.9 MB mapped) [content pass] 7. CSS lands in bricks-child/style.css (E canonical) — heredoc deploy w/ both-files contract [3 min] 8. inline_gtag_detector pre-promote gate — must show 0 violations on PID 13 page 9. LS+CF purge → Playwright DOM check → Lighthouse → PROMOTE to /water-heater-repair/ live
PUT /wp-json/code-snippets/v1/snippets/<id> returns 200 but does NOT persist for name/code field updates. Confirmed Apr 30. Deactivation persists; rename does not. To rename reliably requires WP admin UI or wp-cli over Hostinger SSH. The reconciliation guard cron substitutes for the rename-as-lock pattern.
Diff analysis Apr 30: snippet 6 has HubSpot defer + lazy-load filter that snippet 7 lacks; snippet 7 has font preload that snippet 6 lacks. Disabling snippet 6 would lose HubSpot defer (LCP regression). Browsers dedupe identical preload URLs. Net call: leave both active, classify as complementary not duplicate. Future cleanup: merge into single snippet with union of features.
Map shortcode register endpoint returns 200 but does not persist. Workaround: DB write fallback needed. Affects Bricks page-id ↔ city mapping for [bsp_loc_map] shortcode. MH §28.1 documents.
main-site WP_APP_PASSWORD does not authenticate against bricks.callbrightside.com /wp-json/bsp/v2/theme/read-child (HTTP 401). Session 8 should fetch live functions.php + style.css sha via bricks-domain auth or fall back to /tmp pre-deploy backups.
bsp-apr30-conversion-tracking-systemic-corruption-and-cleanup (logged today, +6,624 bytes)bsp-apr29-session-7-comprehensive-handoff (yesterday) — supersedes "Service Pages pilot teed up" wording with conversion-tracking discipline gatetail -10 /var/log/bsp_inline_gtag_detector.log + tail -5 /var/log/bsp_snippet_guard.logfunctions.php bsp_location_page_pids() helper — lockedpopulate_location_pages_v2.py — reference only, never run in Session 8Generated by Claude Code 2026-04-30 EOD CT. Canonical handoff per Robert directive (CC = SoT for Session 8). Desktop translates to fresh-session prompt.