# Plan de Accion: Provisionado Production-Ready

> Ultima actualizacion: 2026-03-30
> **STATUS: COMPLETADO** — Los 21 cores estan PRODUCTION READY.

---

## Objetivo — CUMPLIDO

Llevar los 21 core presets a estado PRODUCTION READY para habilitar provisionado automatico con contenido de calidad para los 145 shop products del catalogo.

---

## Fase A: Seeds de contenido — COMPLETADA (2026-03-30)

**Meta:** Crear faqs + services + blog seeds para los 20 cores restantes.
**Resultado:** 51 archivos seed creados. 21/21 cores con seeds completos.
**Impacto:** Sitios provisionados llegan con contenido demo relevante en vez de vacio.

### Prioridad por volumen de mercado

| Ola | Cores | Shop Products | Seeds a crear |
|-----|-------|---------------|---------------|
| A1 | art-design, business-catalogue, financial-wealth | 35 | 8 archivos |
| A2 | standard-website, construction, nutritionist, catalogue-ai | 33 | 10 archivos |
| A3 | real-estate, restaurant-bar, concierge, foundations-ong | 29 | 11 archivos |
| A4 | insurance-advisor, law-firm-digital, bp-dinamic, petite-website | 22 | 8 archivos |
| A5 | photography, corporative, sitio-web-profesional | 9 | 4 archivos |
| A6 | personal-brand (completar), website-reseller (completar) | 7 | 3 archivos |

### Estructura de cada seed

**faqs-{core}.json:**
```json
{
  "faqs_categories": [
    { "name": "Categoria 1", "slug": "categoria-1", "order": 1 }
  ],
  "faqs": [
    {
      "question": "Pregunta relevante a la industria?",
      "answer": "Respuesta clara y profesional.",
      "category_slug": "categoria-1",
      "order": 1,
      "is_active": true
    }
  ]
}
```

**services-{core}.json:**
```json
{
  "services": [
    {
      "title": "Nombre del servicio",
      "slug": "nombre-del-servicio",
      "description": "Descripcion breve del servicio.",
      "icon": "icon-class",
      "order": 1,
      "is_active": true
    }
  ]
}
```

**blog-{core}.json:**
```json
{
  "categories": [
    { "name": "Categoria", "slug": "categoria" }
  ],
  "posts": [
    {
      "title": "Titulo del articulo",
      "slug": "titulo-del-articulo",
      "excerpt": "Extracto breve...",
      "content": "Contenido completo del post...",
      "category_slug": "categoria",
      "is_published": true
    }
  ]
}
```

---

## Fase B: Validacion automatizada

**Meta:** Comando que verifica los 8 criterios del checklist sin tocar la DB.

### Comando propuesto

```bash
php artisan bewpro:validate-core {slug}        # Valida un core
php artisan bewpro:validate-core --all          # Valida todos
```

### Que valida

```
[x] Core JSON existe y parsea
[x] Demo tiene header + footer + CSS + page-header
[x] Demo tiene vistas cd-base (welcome, about, contact)
[x] Modulos activos tienen dynamic-header para este demo
[x] Seeds existen (faqs, services, blog segun modulos del core)
[x] Shop products en catalog.json resuelven a este core
```

### Output esperado

```
Validating core: agency
  [PASS] Core JSON valid (6 modules, demo-accounting-1)
  [PASS] Demo assets complete (header, footer, CSS, page-header)
  [PASS] CdBase views (welcome, about, contact)
  [PASS] Dynamic headers (6/6 modules covered)
  [PASS] Seeds present (faqs, services, blog)
  [PASS] Catalog: 11 shop products mapped

  Result: PRODUCTION READY (6/6 checks passed)
```

---

## Fase C: Test de provision end-to-end

**Meta:** Comando que provisiona en DB temporal, verifica y limpia.

### Comando propuesto

```bash
php artisan bewpro:test-provision {slug} [--cleanup] [--keep-db]
```

### Que hace

1. Crea DB temporal `bp-test-{slug}-{timestamp}`
2. Ejecuta `bewpro:new` con --no-email --skip-assets
3. Verifica:
   - Tablas creadas (62+)
   - Settings con demo correcto
   - Modulos activos coinciden
   - User admin existe
   - Contenido seed presente
4. Reporta resultado
5. `--cleanup`: DROP DATABASE al final
6. `--keep-db`: Mantiene DB para inspeccion manual

---

## Fase D: Contenido enriquecido (modulos secundarios)

**Meta:** Seeds para modulos que no son faqs/services/blog.

| Modulo | Cores que lo usan | Seed necesario |
|--------|------------------|----------------|
| menu | restaurant-bar | `menu-restaurant-bar.json` (carta ejemplo) |
| team | agency, financial-wealth, law-firm-digital | `team-{core}.json` (3-4 miembros) |
| references | agency, financial-wealth, law-firm-digital | `references-{core}.json` (4-6 testimonios) |
| products | business-catalogue, catalogue-ai, concierge, standard-website | `products-{core}.json` (6-8 productos demo) |
| gallery | Varios (10+ cores) | Requiere imagenes, mas complejo. Fase posterior. |
| projects | Varios (8+ cores) | Requiere imagenes. Fase posterior. |

**Nota:** gallery y projects requieren assets (imagenes), lo que los hace mas complejos. Priorizar seeds basados en texto primero.

---

## Fase E: Seguimiento en Airtable

**Meta:** Dashboard operacional en Airtable para tracking de estado.

### Propuesta de estructura

**Tabla: Core Presets (nueva o enriquecer existente)**

| Campo | Tipo | Descripcion |
|-------|------|-------------|
| Core Slug | Text (PK) | Identificador unico |
| Demo | Text | Template visual |
| Modules | Multi-select | Modulos activos |
| Schema Type | Text | Tipo de schema.org |
| Shop Products Count | Number (computed) | Cantidad de variantes |
| Status | Select | READY / CASI / INFRA OK / EN PROGRESO |
| Seeds FAQs | Checkbox | Tiene faqs seed |
| Seeds Services | Checkbox | Tiene services seed |
| Seeds Blog | Checkbox | Tiene blog seed |
| Seeds Other | Text | Otros seeds (menu, team, etc.) |
| Last Validated | Date | Ultima validacion |
| Notes | Long text | Observaciones |

**Vista: Dashboard**
- Agrupado por Status
- Ordenado por Shop Products Count (desc)
- Colores: READY=verde, CASI=amarillo, INFRA OK=gris, EN PROGRESO=azul

---

## Timeline sugerido

```
Fase A (Seeds de contenido)
├── Ola A1: art-design, business-catalogue, financial-wealth
├── Ola A2: standard-website, construction, nutritionist, catalogue-ai
├── Ola A3: real-estate, restaurant-bar, concierge, foundations-ong
├── Ola A4: insurance-advisor, law-firm-digital, bp-dinamic, petite-website
├── Ola A5: photography, corporative, sitio-web-profesional
└── Ola A6: completar personal-brand + website-reseller

Fase B (Validacion automatizada)
└── bewpro:validate-core command

Fase C (Test provision)
└── bewpro:test-provision command

Fase D (Contenido enriquecido)
├── menu seeds
├── team seeds
├── references seeds
└── products seeds

Fase E (Airtable dashboard)
└── Tabla + vistas de seguimiento
```

---

## Metricas de progreso

| Metrica | Actual | Meta |
|---------|--------|------|
| Cores READY | 1/21 (5%) | 21/21 (100%) |
| Seeds creados | 5/~50 (10%) | ~50/~50 (100%) |
| Shop products cubiertos | 11/145 (8%) | 145/145 (100%) |
| Validacion automatizada | No existe | Comando funcional |
| Test provision | Manual | Automatizado |
