================================================================================ PROMPT 01 - NIVEL AVANZADO: AGENTIC IDE (Claude Code / Cursor / Codex) ================================================================================ Nombre del prompt : Dashboard ejecutivo sectorial - 40 empresas - HTML portable + Chart.js Herramientas : Claude Code (CLI), Cursor, Codex, Windsurf u otro IDE con agente de codigo. Requiere Python 3.10+ instalado. Tiempo estimado : 18-22 min (12 build + 6-10 iterar visual) Resultado esperado: Un solo archivo dashboard.html standalone (sin server, abre con doble click) con 5 vistas: 1) Percentiles por puesto (p25/p50/p75/p90) 2) Brechas por sector (boxplot horizontal) 3) Top 10 / Bottom 10 empresas por mediana sectorial 4) Heatmap sector x municipio 5) Resumen ejecutivo de 5 vinetas + filtros globales (sector, municipio, n minimo). DISCLAIMER: La matriz consumida es resultado de extraccion automatica sobre 40 empresas publicas del repositorio CFCRL. Uso educativo en sesion ERIAC. No constituye benchmark formal de mercado. Esta herramienta complementa el trabajo de las consultoras especializadas en compensaciones, no lo reemplaza. -------------------------------------------------------------------------------- PASO 0 - Antes de pegar el prompt -------------------------------------------------------------------------------- - Confirma que ya corriste el prompt 06_Prompts_Analisis_Tabuladores/ 01_avanzado_claude_code.txt y tienes generado: matriz_consolidada.csv (input principal) actas_resumen.csv (input opcional para enriquecer narrativa) En la carpeta: C:\Users\Gerardo Ayala\Desktop\Webinar_IA_HR_Comite\04_Datos_Demo\ originales\..\analisis\ - Si NO corriste la fase 06 todavia, hay un fallback: usar el CSV educativo C:\Users\Gerardo Ayala\Desktop\Webinar_IA_HR_Comite\04_Datos_Demo\ datos_salariales_nl_muestra.csv El prompt incluye la rama de fallback automatica. - Abre Claude Code (o Cursor) en una carpeta de trabajo limpia. -------------------------------------------------------------------------------- PROMPT (copiar/pegar tal cual en el chat del agente) -------------------------------------------------------------------------------- Eres un ingeniero de datos senior con experiencia en analitica de compensaciones para HR. Vas a construir un dashboard ejecutivo sectorial en un solo archivo HTML portable, basado en la matriz consolidada de 40 empresas mexicanas extraidas del repositorio publico CFCRL. CONTEXTO - Input principal: ../analisis/matriz_consolidada.csv Schema fijo (viene del prompt 06_Prompts_Analisis_Tabuladores): empresa, sector, municipio, puesto_normalizado, categoria, sueldo_diario_mxn, sueldo_mensual_mxn, n_trabajadores, fuente_archivo - Input opcional: ../analisis/actas_resumen.csv Schema: empresa, sindicato, pct_aprobacion, n_trabajadores_cubiertos, fecha_revision, incremento_pct Si existe, usalo solo para enriquecer la narrativa (% aprobacion promedio del sector, # sindicatos firmantes, etc). No es bloqueante. - Fallback: si matriz_consolidada.csv no existe, usar C:\Users\Gerardo Ayala\Desktop\Webinar_IA_HR_Comite\04_Datos_Demo\ datos_salariales_nl_muestra.csv y mapear sus columnas (municipio, sector, puesto, sbc_promedio_diario, n_registros) al schema canonico (empresa = 'muestra', categoria = vacio, sueldo_diario_mxn = sbc_promedio_diario, n_trabajadores = n_registros). Avisar en el header del dashboard que estamos en modo fallback educativo. - Audiencia: profesionales de Compensaciones (HRBP a Director). Quieren ver tendencias y brechas, no leer codigo. Audiencia ERIAC tolera lenguaje tecnico ("heatmap", "percentil", "boxplot") por su background en consultoria. TAREA 1. Crea el proyecto en la carpeta actual: build_dashboard.py # script Python que lee CSVs + genera HTML templates/dashboard.html.j2 # plantilla Jinja2 (opcional) requirements.txt README.md El stack es deliberadamente ligero: Python solo procesa los CSVs y emite UN archivo dashboard.html con datos embebidos como JSON y graficas Chart.js cargadas por CDN. Nada de Streamlit ni server, nada de instalar dependencias extra para el participante final. 2. Stack: - Python: pandas, jinja2. - HTML: Chart.js v4 por CDN, CSS minimo embebido, sin frameworks. - El HTML resultante debe abrir con doble click (file://). 3. Las 5 vistas obligatorias (en una sola pagina con scroll, en este orden): V1 - HEADER + RESUMEN EJECUTIVO (5 vinetas) - Titulo: "Dashboard ejecutivo sectorial - 40 empresas CFCRL". - Subtitulo: fecha de generacion + N empresas + N puestos normalizados + N filas en matriz. - Disclaimer permanente. - 5 vinetas generadas a partir de los datos reales: 1. Sector mejor pagado vs peor pagado (mediana del sueldo diario). 2. Municipio con mayor concentracion de salarios altos. 3. Puesto con mayor dispersion entre empresas (brecha p90/p10). 4. % aprobacion promedio en actas (si actas_resumen.csv existe; si no, omitir esta vineta). 5. Una observacion contraintuitiva detectada en los datos (ej. brecha intra-sector mayor que inter-sector). - Cada vineta empieza con un dato cuantitativo concreto. V2 - PERCENTILES POR PUESTO - Tabla + grafica de barras apiladas (p25, p50, p75, p90) para los 20 puestos con mas empresas reportando. - Selector dropdown para filtrar por puesto especifico. - Solo incluir puestos con n_empresas >= 3. V3 - BRECHAS POR SECTOR - Boxplot horizontal con la distribucion de sueldo_diario_mxn por sector. Los sectores ordenados por mediana descendente. - Mostrar n empresas a la derecha de cada caja. V4 - TOP 10 Y BOTTOM 10 EMPRESAS POR MEDIANA SECTORIAL - Dos paneles lado a lado. - Para cada empresa: barra horizontal con su mediana de sueldo diario relativa al sector al que pertenece (delta % vs mediana del sector). - Top 10: mejor pagadas relativas a su sector (delta positivo). - Bottom 10: peor pagadas relativas a su sector (delta negativo). V5 - HEATMAP SECTOR x MUNICIPIO - Eje Y: sectores (orden por mediana descendente). - Eje X: municipios (orden alfabetico o por concentracion). - Celda: sueldo_diario_mxn promedio ponderado por n_trabajadores (o conteo de filas si n_trabajadores esta vacio). - Escala secuencial accesible (azules o viridis-friendly). - Tooltip al hacer hover: sector, municipio, mediana, # empresas. - Implementacion: usar el plugin chartjs-chart-matrix por CDN. Si no hay conexion a internet en el breakout, fallback a una tabla HTML con celdas coloreadas via background-color calculado en Python. 4. Filtros globales en barra superior sticky: - Multiselect de sector - Multiselect de municipio - Slider de n_trabajadores minimo (default 5; si la columna esta vacia para todas las filas, oculta este filtro y avisa). Los filtros deben re-renderizar las 5 vistas via JS sin recargar. 5. Manejo de errores: - Si matriz_consolidada.csv no existe Y tampoco existe el fallback, el dashboard debe abrir con un mensaje claro: "No se encontro ningun input. Corre primero el prompt 06_Prompts_Analisis_ Tabuladores o coloca matriz_consolidada.csv en ../analisis/". - Si una columna esta totalmente vacia (ej. municipio = 'n/d' en todas las filas), oculta el heatmap y avisa en el header. VALIDACION ANTES DE ENTREGARME EL BUILD - Abre el dashboard.html en navegador y confirma que las 5 vistas renderizan con datos reales. - Confirma que los filtros aplican simultaneamente a las 5 vistas. - Verifica que se ve decente en pantalla 1366x768 (laptop estandar HR). - Sin errores en consola del navegador. ENTREGABLES - build_dashboard.py funcional. - dashboard.html generado con datos embebidos. - requirements.txt fijado a versiones estables. - README con: prerequisitos, instalacion, comando para regenerar el dashboard, troubleshooting basico. - Reporte final breve: que vistas construiste, decisiones de diseno (paleta, ponderacion, manejo de outliers), y 2 ideas de extension. Trabaja autonomo. Si necesitas decidir algo menor (paleta, layout), decide y avisa en el reporte. Solo preguntame si encuentras un problema bloqueante con los CSVs. REGLAS - Sin emojis. - Comentarios en espanol, breves. - Tono complementario a las consultoras: el dashboard se presenta como herramienta de exploracion rapida que aporta agilidad, no como reemplazo de un estudio formal. - HTML standalone: nada de servidores, nada de instalar Streamlit. - Antes de codear, lista los archivos que vas a crear y espera mi "ok". Despues procede sin mas preguntas. -------------------------------------------------------------------------------- SI ALGO SALE MAL -------------------------------------------------------------------------------- 1. matriz_consolidada.csv no existe El script debe detectarlo y caer al fallback automatico (datos_salariales_nl_muestra.csv) marcandolo en el header. Si tampoco existe el fallback, mensaje claro y exit con codigo 0. 2. El heatmap se ve roto Pega: "El heatmap no renderiza. Probablemente chartjs-chart-matrix no carga por la red. Implementa fallback puro HTML/CSS: tabla con celdas coloreadas via background-color generado en Python con escala secuencial. Mantener tooltips via title." 3. Algunas vistas salen vacias Pega: "La vista X sale vacia. Imprime en consola del browser el JSON con el que se intento renderizar y dime que ves. Si el problema es columna vacia (n_trabajadores), oculta esa vista en lugar de mostrar caja en blanco." 4. El dashboard pesa demasiado Si matriz_consolidada tiene mas de 50K filas, pre-agrega antes de embeber: en lugar de embeber filas crudas, embeber pivot por sector x municipio x puesto con n_empresas, mediana, p25, p75, p90. Reduce el peso a < 1MB. -------------------------------------------------------------------------------- ALINEACION CON LA EXTRACCION (carpeta 06_Prompts_Analisis_Tabuladores) -------------------------------------------------------------------------------- Este prompt consume directamente: matriz_consolidada.csv (output de 06) actas_resumen.csv (output de 06, opcional) El schema esta congelado entre las dos carpetas. Si la fase 06 cambia nombres de columna, actualizar tambien build_dashboard.py. -------------------------------------------------------------------------------- VARIANTES / EXTENSIONES (5 min extra cada una) -------------------------------------------------------------------------------- A. POSICIONAR TU EMPRESA EN EL DASHBOARD "Agrega un input para subir mi_empresa.csv (mismo schema que matriz_consolidada). El dashboard debe sobreponer mis puntos en el boxplot por sector y mostrar para cada puesto interno mi posicion en percentil del segmento." B. EXPORTAR A POWERPOINT "Agrega un boton 'Descargar resumen .pptx' que tome capturas de las 5 vistas y arme un .pptx de 6 slides + las 5 vinetas como notas del presentador." C. INDICADORES DE ACTAS Si actas_resumen.csv existe, agregar una vista V6: top 10 sindicatos por # trabajadores cubiertos, % aprobacion promedio por sector, incremento_pct mediano por sector. -------------------------------------------------------------------------------- DISCLAIMER DE USO RESPONSABLE -------------------------------------------------------------------------------- La matriz consumida proviene de extraccion automatica sobre PDFs/XLSX publicos del CFCRL. Tasa de error inherente al OCR/parsing. Revisa manualmente los datos criticos antes de tomar decisiones de compensacion. Esta herramienta complementa el trabajo de las consultoras especializadas, no lo reemplaza.