# HUB de Reglas de Desarrollo — Sitio Web Nuevotich

Este documento es el punto de entrada unico para el agente de desarrollo. Antes de iniciar cualquier tarea, el agente debe consultar este HUB y seguir las reglas correspondientes segun la fase de trabajo.

---

## Flujo del Agente

### Paso 0: Modelo Predictivo Pre-Ejecucion

**ANTES de cualquier modificacion de codigo**, el agente DEBE ejecutar el modelo predictivo completo (ver [00-predictivo.md](.agents/rules/00-predictivo.md)):

```
0. ESCANEAR → ANALIZAR → DIAGNOSTICAR → PREDECIR → PLANIFICAR → RESULTADO ESPERADO → SOLICITAR APROBACION
```

Solo si el usuario aprueba → proceder a ejecutar. No se modifica codigo sin aprobacion.

### Pasos 1-13: Reglas segun la fase

Despues de la aprobacion, consultar las reglas correspondientes:

```
1. Estructura → Al crear carpetas, paginas, definir URLs
2. Componentes → Al crear o modificar cualquier componente
3. CSS Bundle → Al trabajar con estilos y compilacion
4. Seguridad → Al tocar credenciales, BD, formularios, login
5. Admin/Backend → Al trabajar en panel admin, APIs, cotizador, chatbot
6. Tracking → Al agregar elementos HTML interactivos
7. SEO → Al crear o modificar paginas publicas
8. Estilos Glob. → Al definir variables, reset, sistema de diseno
9. Performance → Al agregar imagenes, scripts, recursos
10. Accesibilidad → Al escribir HTML y formularios
11. Errores → Al escribir logica que puede fallar
12. Nomenclatura → Al nombrar funciones, variables, archivos
13. Checklist → ANTES de declarar una tarea como completa
```

---

## Reglas Transversales

Estas reglas aplican en TODO momento, sin importar la fase:

- **Seguridad**: credenciales en `.env`, prepared statements, validacion en capas
- **Errores**: try/catch en PHP, .catch() en JS, nunca traces al usuario
- **Nomenclatura**: nombres en ingles, descriptivos, PHPDoc/JSDoc
- **No inline**: prohibido CSS inline (`<style>`) y JS inline (`<script>` embebido)
- **Workflow post-tarea**: despues de completar CADA accion, ejecutar el workflow de scripts (ver seccion abajo)

---

## Indice de Reglas

| # | Archivo | Resumen | Consultar cuando... |
|---|---------|---------|---------------------|
| 00 | [predictivo.md](.agents/rules/00-predictivo.md) | Modelo predictivo pre-ejecucion, aprobacion obligatoria | ANTES de cualquier modificacion de codigo |
| 01 | [estructura.md](.agents/rules/01-estructura.md) | Carpetas, URLs SEO, imagenes centralizadas, convenio de nombres | Se crea una pagina o carpeta nueva |
| 02 | [componentes.md](.agents/rules/02-componentes.md) | Tripode PHP+CSS+JS, regla estricta de globalizacion | Se crea o modifica un componente |
| 03 | [css-bundle.md](.agents/rules/03-css-bundle.md) | Compilador CSS, bundle, dev vs prod, orden de importacion | Se trabaja con estilos o se compila |
| 04 | [seguridad.md](.agents/rules/04-seguridad.md) | .env, prepared statements, validacion en capas, cURL | Se toca BD, formularios, credenciales |
| 05 | [admin-backend.md](.agents/rules/05-admin-backend.md) | Panel admin, login, APIs, cotizador, chatbot | Se trabaja en el backend o admin |
| 06 | [tracking.md](.agents/rules/06-tracking.md) | data-track-id, eventos, metricas, dashboard | Se agrega un elemento HTML interactivo |
| 07 | [seo-semantica.md](.agents/rules/07-seo-semantica.md) | Meta tags, schema.org, sitemap, headings | Se crea o modifica una pagina publica |
| 08 | [estilos-globales.md](.agents/rules/08-estilos-globales.md) | Variables CSS, reset, tipografia, BEM | Se define diseno global o variables |
| 09 | [performance.md](.agents/rules/09-performance.md) | WebP, defer, preconnect, lazy load, critical CSS | Se agregan imagenes, scripts, recursos |
| 10 | [accesibilidad.md](.agents/rules/10-accesibilidad.md) | WCAG AA, ARIA, labels, contraste, focus | Se escribe HTML o formularios |
| 11 | [manejo-errores.md](.agents/rules/11-manejo-errores.md) | try/catch, .catch(), logs, mensajes al usuario | Se escribe logica que puede fallar |
| 12 | [nomenclatura.md](.agents/rules/12-nomenclatura.md) | PHPDoc, JSDoc, BEM, naming en ingles | Se nombra cualquier funcion, variable o archivo |
| 13 | [checklist-cierre.md](.agents/rules/13-checklist-cierre.md) | Verificacion obligatoria antes de cerrar tarea | Se esta por declarar una tarea como completa |

---

## Workflow Post-Tarea

Despues de completar **cada accion** solicitada por el usuario, el agente DEBE ejecutar el workflow de documentacion automatica. Ver skill completa en: [.agents/skills/post-task-workflow/SKILL.md](.agents/skills/post-task-workflow/SKILL.md)

### Flujo resumido

```
1. Escribir .agents/output/changelog_input.json con datos de la tarea
2. Ejecutar: powershell -NoProfile -ExecutionPolicy Bypass -File ".agents/scripts/orchestrator.ps1" "C:\laragon\www\nuevotich"
3. Si existe .agents/output/track_id_audit.json:
   a. Leer el JSON
   b. Asignar data-track-id a cada item faltante
   c. Aplicar cambios en los archivos
   d. Eliminar track_id_audit.json
   e. Re-ejecutar solo track-id-map.ps1 y cta-map.ps1
4. Informar resultado al usuario, incluyendo detalladamente la lista de despliegue a producción (rutas locales de los archivos modificados/creados, sus rutas de destino correspondientes en el servidor, y la confirmación de la creación del paquete zip de despliegue deploy.zip en .agents/output/).
```

### Scripts del workflow

| Script | Funcion | Salida |
|--------|---------|--------|
| `site-map.ps1` | Mapa de carpetas y archivos | `mapa_del_sitio.txt` |
| `class-registry.ps1` | Registro de clases CSS con ubicacion | `registro_clases.txt` |
| `cta-map.ps1` | Mapa de CTAs (botones, enlaces, formularios) | `mapa_ctas.txt` |
| `track-id-map.ps1` | Mapa de data-track-id + auditoria de faltantes | `mapa_track_ids.txt` + `track_id_audit.json` |
| `deploy_zip.py` | Empaqueta archivos editados/creados (Python) | `deploy.zip` |
| `changelog.py` | Bitacora de cambios (Python, append, volumenes) | `bitacora/vol-XXX.txt` |
