← all branches

feat/energia-ux

needs attentionviewing older commit
661a293 · incrementalPR #301reviewed 2026-07-16 13:30 UTC1H · 2M · 4L · 2I
The branch
Purpose
Document the Energía product UX vision — a 7-screen minimal-decision-first platform prototype for multi-site enterprise energy consumers
Goal
Deliver design principles, JTBD map, detector ledger, and a working HTML prototype (7 screens + shared shell + assembler) that shows 'one question per screen, one action' as the north star for the Energía product
Sub-goals
  • SG-1: Design principles doc — psychology-of-design applied, critique of feature-maximalist approach
  • SG-2: JTBD map — jobs-to-be-done for enterprise energy managers
  • SG-3: Detector ledger — tracking which findings Batu surfaces
  • SG-4: 7-screen HTML prototype (portfolio, budget, sites, payments, carbon, findings, site-detail) with shared shell + CSS design system
  • SG-5: Assembler (assemble.mjs) to combine screen fragments into a single navigable HTML
  • SG-6: CONTRACT.md for screen-builder constraints
The changes (whole branch)
What
Client anonymization pass: replaced 'Grupo Axo' → 'Cliente Demo' throughout design docs and prototype HTML, scaled site counts (266→250) and financial figures ($45.26M→$40.0M) proportionally
Why
Previous review flagged customer-identifying information committed to the public repo (Grupo Axo name, exact site count, spend figures)
Areas
docs/design+41300
Blast
15 files, +4130 lines; all in docs/design/ — zero production code impact
design-only no-tests no-migrations anonymization-incomplete
ci· CI status not accessible (token scope)coderabbit· No .coderabbit.yaml present

Findings · 9

correctness1

high

Missed 'Axo' reference — anonymization incomplete

docs/design/energia-prototype/screens/findings.html:9

Line 9 still reads "Dinero en juego en la facturación CFE de Axo: $53K ya recuperado y verificado, $57K en aclaración activa con CFE". The pass replaced 'Grupo Axo' everywhere but missed this shorter 'Axo' variant. The same string propagates to energia-platform-full.html ~line 369 (the assembled output). Both files need the fix.

security2

medium

Real venue names fingerprint the original client

docs/design/energia-prototype/screens/payments.html

The payments/portfolio screens list real Mexican retail venues: Antara, Plaza Satélite, Perisur, Toreo, Interlomas, Andares GDL, Mitikah, Puebla Angelópolis, Galerías Monterrey. This combination uniquely identifies Grupo Axo's store footprint even without the org name. Replace with generic names (e.g. 'Tienda Norte 01', 'CEDIS Zona Centro') to sever the re-identification path.

medium

Git history preserves customer data from prior commits

docs/design/energia-prototype/

If the original prototype with 'Grupo Axo', 266 sites, and $45.26M MXN was pushed to origin before this anonymization, those commit objects remain reachable in the remote reflog/network graph. Confirm with GitHub whether any prior objects were purged; if the repo is private with no forks, risk is contained. BFG Repo-Cleaner or git filter-repo would guarantee removal.

conventions2

low

ROI multiplier 3.7× stale after site-count scale-down

docs/design/energia-prototype/energia-platform-full.html

The copy reads 'Vas 3.7× tu inversión anual en Batu' but after scaling from 266 → 250 sites the implied annual fee drops, making the value story $1.55M / lower-fee ~4.0×, not 3.7×. Minor for a prototype but a prospect who runs the math will notice.

low

Budget screen KPI rounding inconsistency ($19.4 M vs $19.44 M)

docs/design/energia-prototype/screens/budget.html

The KPI card shows '$19.4 M' while the waterfall SVG label shows '$19.44 M' — a visible discrepancy introduced by this diff. Gastado YTD is consistently '$20.2 M' / '$20.24 M'. Align to one precision level.

improvement3

low

'Cliente Demo' is a weak placeholder — consider a fictional company name

docs/design/energia-prototype/CONTRACT.md

"Cliente Demo" signals 'we replaced a real name' to any informed reader. A plausible fictional Mexican conglomerate name (e.g. 'Grupo Meridiano', 'RetailMX S.A.') would make the prototype more convincing in prospect presentations and remove the implicit acknowledgment.

low

Prototype data hardcoded across 7 files — parameterization would prevent future anonymization drift

docs/design/energia-prototype/assemble.mjs

Client name, site count, spend totals, and segment labels are duplicated across all screen HTML files. This commit missed one instance ('Axo' in findings.html) because there was no single source of truth. A lightweight client.json fixture + template-substitution pass in assemble.mjs would make future persona-switching a one-file change.

info

Per-segment site counts are suspiciously precise for a demo (73/51/57/37/32)

docs/design/energia-prototype/screens/portfolio.html

These uneven non-round numbers look like scaled-down real data rather than invented values. Rounder numbers (e.g. 80/60/55/35/20) would be less identifiable and more clearly illustrative.

seo1

info

SEO lens self-skipped — no apps/web/** files in diff

No marketing website files were modified in this incremental window.

History · 4 commits

  1. 58f9af0safeincremental0H · 0M · 0L2026-07-16 13:48
  2. 661a293needs attentionincremental1H · 2M · 4L2026-07-16 13:30current
  3. 935ca3dneeds attentionincremental5H · 7M · 4L2026-07-11 13:00
  4. bf33cdfneeds attentionfull2H · 6M · 6L2026-07-11 06:02