# Auditoria de Demos — Resultados (2026-03-29)

> 17 demos auditados contra el estandar definido en `estandar-demo.md`
> Cada demo evaluado en: Header, Footer, Welcome, About, Contact, CSS

---

## Escala de conformidad

```
A  = Conforme al estandar. Listo para produccion.
B  = Funcional con ajustes menores (texto hardcoded, falta helper).
C  = Funcional pero con problemas significativos (nav hardcoded, sin guards).
D  = Broken o project-specific. Requiere rewrite parcial.
```

---

## Matriz de Resultados

| Demo | Header | Footer | Welcome | About | Contact | Global | Cores |
|------|--------|--------|---------|-------|---------|--------|-------|
| demo-real-estate | A | B | B+ | B | B | **B+** | 1 |
| demo-construction-2 | B | B | B+ | B | C | **B** | 0 |
| demo-digital-agency-2 | D | B | A | B | A | **B-** | 5 |
| demo-insurance | B | C | B | B | B | **B-** | 4 |
| demo-accounting-1 | B+ | B | B | B | B | **B** | 2 |
| demo-business-consulting | B | B | C | B | B | **B-** | 2 |
| demo-accounting-2 | B | B | B | C | B | **B-** | 1 |
| demo-architecture-2 | B | B | B | C | B | **B-** | 1 |
| demo-construction | B | B | C | B | B | **B-** | 1 |
| demo-creative-agency-2 | B | B | D | D | D | **C** | 0 |
| demo-law-firm-2 | C | B | C | D | D | **C** | 1 |
| demo-sass | B | C | C | C | C | **C** | 0 |
| demo-photography-3 | B | D | D | B | B | **C** | 1 |
| demo-restaurant | D | C | C | B | D | **C-** | 1 |
| demo-product-landing | D | B | C | B | B | **C** | 0 |
| demo-marketing-1 | D | B | D | D | B | **D** | 1 |
| demo-transportation-logistic | D | C | C | B | D | **D** | 0 |

---

## Hallazgos por componente

### HEADERS — Problemas encontrados

| Problema | Demos afectados | Severidad |
|----------|----------------|-----------|
| Nav completamente hardcoded (no `get_dynamic_navigation`) | digital-agency-2, marketing-1, product-landing, restaurant, transportation-logistic | ALTA |
| CTA no usa `config('site.header.cta_button.*')` | insurance, law-firm-2, creative-agency-2 (hardcoded), 8 demos sin CTA | MEDIA |
| No usa `is_nav_item_active()` helper | accounting-2, architecture-2, digital-agency-2, photography-3, marketing-1, product-landing, restaurant, transportation-logistic | MEDIA |
| Texto hardcoded de industria/proyecto | insurance ("SOLICITAR COTIZACION"), law-firm-2 (WhatsApp+tel), marketing-1 (Distrito), product-landing (Radoc Bikes), transportation-logistic (Technoa) | ALTA |
| DB queries inline en header | business-consulting (PostCategory, Service), digital-agency-2 (Service, ServiceCategory), transportation-logistic (ServiceCategory) | MEDIA |
| BUG: active state cruzado | restaurant (blog↔contact swapped) | CRITICA |

### FOOTERS — Problemas encontrados

| Problema | Demos afectados | Severidad |
|----------|----------------|-----------|
| No usa `site_asset_url('footer_logo')` | 14 de 17 | BAJA |
| Nav hardcoded (no `get_dynamic_navigation`) | accounting-1, photography-3, restaurant, transportation-logistic | MEDIA |
| Sin newsletter | 10 de 17 | BAJA |
| Newsletter sin AJAX | accounting-2, business-consulting, insurance | MEDIA |
| Texto hardcoded industria | insurance ("Insurance Products"), digital-agency-2 (ciudades USA), accounting-2 ("Brand Development"), restaurant ("643 NW 20th St Miami") | ALTA |
| Footer minimalista (solo copyright) | photography-3 | MEDIA |
| Branding "COMPANIA DIGITAL" en vez de BewPro | construction-2, photography-3, product-landing, restaurant, real-estate | BAJA |
| console.log en produccion | transportation-logistic | MEDIA |

### WELCOME — Problemas encontrados

| Problema | Demos afectados | Severidad |
|----------|----------------|-----------|
| Sin `is_module_active()` guards | construction, restaurant, law-firm-2, transportation-logistic, marketing-1, creative-agency-2, photography-3, sass | ALTA |
| Sin `config('site.name/tagline/description')` en hero | 13 de 17 | ALTA |
| Sin `@section('title/description')` | 7 de 17 | MEDIA |
| Contenido project-specific | marketing-1 (Distrito), law-firm-2 (ICG Asociados), accounting-1 (BewPro) | ALTA |
| 0 secciones de modulos | photography-3, marketing-1 | CRITICA |

### ABOUT / CONTACT — Problemas encontrados

| Problema | Demos afectados | Severidad |
|----------|----------------|-----------|
| Sin page-header include | 10 de 17 en about/contact | MEDIA |
| Sin `@section('title/description')` | creative-agency-2, law-firm-2, marketing-1, sass | MEDIA |
| Contact sin formulario funcional | restaurant (sin form), transportation-logistic (simulado, nunca envia) | CRITICA |
| Sin `config('site.contact.*')` | creative-agency-2, law-firm-2, marketing-1 | ALTA |

---

## Clasificacion por prioridad de correccion

### GRUPO 1: Prioridad CRITICA (usan cores activos, muchos shop products)

Estos demos tienen cores asignados y alto impacto de mercado. Corregirlos primero.

| Demo | Cores | Shop Prods | Problema principal | Esfuerzo |
|------|-------|-----------|-------------------|----------|
| **demo-digital-agency-2** | 5 | 61 | Header nav hardcoded, DB queries | Medio |
| **demo-insurance** | 4 | 30 | CTA hardcoded, footer industria, newsletter sin AJAX | Medio |
| **demo-accounting-1** | 2 | 19 | Footer nav config vs dynamic, welcome project-specific | Bajo |
| **demo-business-consulting** | 2 | 19 | Welcome solo 1 modulo, DB queries header | Medio |

### GRUPO 2: Prioridad ALTA (tienen cores, necesitan ajustes)

| Demo | Cores | Shop Prods | Problema principal | Esfuerzo |
|------|-------|-----------|-------------------|----------|
| **demo-accounting-2** | 1 | 50 | About sin page-header, newsletter sin AJAX | Bajo |
| **demo-architecture-2** | 1 | 22 | About sin page-header, social icons hardcoded | Bajo |
| **demo-marketing-1** | 1 | 11 | NAV COMPLETAMENTE PROJECT-SPECIFIC (Distrito) | Alto |
| **demo-construction** | 1 | 9 | Welcome sin guards, newsletter comentado | Bajo |
| **demo-real-estate** | 1 | 9 | Minor issues, el mas limpio | Bajo |
| **demo-restaurant** | 1 | 8 | BUG active state, nav hardcoded, sin form contacto | Alto |
| **demo-photography-3** | 1 | 6 | Welcome sin modulos, footer minimalista | Medio |
| **demo-law-firm-2** | 1 | 6 | CTA hardcoded, cdbase views vacias/project-specific | Alto |

### GRUPO 3: Demos huerfanos (sin core, menor prioridad)

| Demo | Candidato | Problema principal | Esfuerzo |
|------|-----------|-------------------|----------|
| **demo-construction-2** | *(sin candidato)* | Relativamente OK | Bajo |
| **demo-sass** | startup-tech | Footer minimalista, welcome bajo | Medio |
| **demo-creative-agency-2** | *(website-reseller usa digital-agency-2)* | CdBase views D-level | Alto |
| **demo-product-landing** | *(landing pages)* | Nav project-specific (Radoc) | Alto |
| **demo-transportation-logistic** | municipalities | Nav project-specific, contact broken | Alto |

---

## Metodo de correccion por demo

Para cada demo, seguir este orden:

```
PASO 1: HEADER (30 min - 2h)
  [ ] Migrar a get_dynamic_navigation('header')
  [ ] Implementar CTA con config('site.header.cta_button.*')
  [ ] Usar is_nav_item_active() para active state
  [ ] Remover texto hardcoded de industria/proyecto
  [ ] Remover DB queries inline

PASO 2: FOOTER (30 min - 1h)
  [ ] Migrar a get_dynamic_navigation('footer')
  [ ] Contacto con config('site.contact.*')
  [ ] Social con config('site.social_media') + active filter
  [ ] Logo con site_asset_url('footer_logo')
  [ ] Newsletter: agregar si falta, asegurar AJAX
  [ ] Copyright con config('site.name') + date('Y')
  [ ] Remover texto hardcoded

PASO 3: WELCOME (1h - 3h)
  [ ] @section('title') + @section('description') con config()
  [ ] Hero: config('site.name'), config('site.tagline'), config('site.description')
  [ ] Secciones condicionales: @if(is_module_active() && isset() && count())
  [ ] Cubrir todos los modulos del core
  [ ] Imagenes con asset()
  [ ] Remover contenido project-specific

PASO 4: ABOUT (30 min)
  [ ] @section('title') + @section('description')
  [ ] @include page-header con variables canonicas
  [ ] Textos con config() donde aplique

PASO 5: CONTACT (30 min - 1h)
  [ ] @section('title') + @section('description')
  [ ] @include page-header
  [ ] Formulario funcional con @csrf + AJAX
  [ ] Contacto con config('site.contact.*')

PASO 6: VALIDACION (30 min)
  [ ] Desktop: todas las paginas renderizan
  [ ] Mobile: responsive correcto
  [ ] Modulos: paginas de cada modulo usan dynamic-header correcto
  [ ] Newsletter: funciona
  [ ] Form contacto: funciona
```

**Tiempo estimado por demo:**
- Ajuste menor (real-estate, construction-2): ~1-2h
- Ajuste medio (accounting-1, accounting-2, architecture-2, construction): ~2-3h
- Ajuste mayor (digital-agency-2, insurance, business-consulting): ~3-5h
- Rewrite parcial (marketing-1, restaurant, law-firm-2, transportation-logistic): ~4-6h

---

## Tracking en Airtable

Campos en tabla Products para tracking por demo:

| Campo | Tipo | Valores |
|-------|------|---------|
| Template_Level | Select | A / A- / B+ / B / C+ / C / D / N/A |
| Header_Status | Select | Standard / Needs Fix / Broken |
| Footer_Status | Select | Standard / Needs Fix / Broken |
| CdBase_Status | Select | Standard / Needs Fix / Broken |
| Module_Overrides | Text | Que modulos tienen vistas adaptadas |

**Vista: "Template Optimization"**
- Agrupado por Template_Level
- Filtrado: excluir N/A
- Ordenado por Shop Products count desc
