Constructor de Dashboards de Power BI
Convierte una especificación de dashboard (consulta bi-dashboard-design/references/dashboard-spec.md) en un artefacto funcional de Power BI. El conocimiento de dominio proviene de la habilidad de dominio; las reglas de diseño y estilo provienen de bi-dashboard-design. Esta habilidad cubre los aspectos específicos de Power BI.
Elige primero el modo de construcción
Revisa qué está disponible e informa al usuario qué modo estás utilizando:
| Modo | Cuándo | Qué produces |
|---|---|---|
| A. Modelo en vivo vía MCP/CLI | El servidor MCP de Power BI Modeling (@microsoft/powerbi-modeling-mcp) o pbi-cli está conectado y Power BI Desktop tiene el modelo abierto | Tablas, relaciones y medidas creadas directamente en el modelo abierto; reporte construido como archivos PBIR |
| B. Archivos de proyecto PBIP | Puedes escribir archivos pero no tienes conexión en vivo | Una carpeta de proyecto .pbip: <Nombre>.SemanticModel/definition/*.tmdl y <Nombre>.Report/definition/ (PBIR) que el usuario abre en Power BI Desktop |
| C. Kit de construcción | Ni archivos ni herramientas son prácticos (ej. solo chat) | Script de medida DAX, fragmentos TMDL, JSON de tema y una hoja de construcción página por página que un desarrollador sigue |
Prefiere A, luego B. En el modo B, recuerda al usuario que habilite la opción de guardado PBIP y "Almacenar modelo semántico usando formato TMDL" en las características de vista previa de Power BI Desktop si su versión aún las tiene como vista previa.
Flujo de trabajo
- Lee la especificación y el archivo de métricas del dominio. Cada medida que crees debe coincidir con una definición en el archivo
<dominio-habilidad>/references/metrics.mdde la habilidad de dominio. - Modela el esquema en estrella (
references/tmdl-patterns.md):- Una tabla de hechos por granularidad en la especificación; dimensiones conformadas entre hechos.
- Una tabla
Datededicada marcada como tabla de fecha, continua, que cubra todas las fechas de los hechos, con columnas fiscales cuando el dominio use un calendario fiscal. - Relaciones unidireccionales de uno a varios desde la dimensión hacia el hecho. Usa bidireccional solo con una razón escrita. Fechas con roles (factura vs vencimiento vs pago): una relación activa, las demás inactivas y activadas con
USERELATIONSHIPen las medidas. - Oculta claves foráneas y columnas numéricas sin procesar reemplazadas por medidas; establece
summarizeBy: noneen claves, IDs y números de año/mes. - Columnas de ordenación para nombres de mes y etiquetas de cubos (antigüedad, bandas).
- Escribe medidas (
references/dax-patterns.md): una tabla_Measures, carpetas de visualización por tema (ej.01 Ingresos,02 Margen), una cadena de formato y una descripción en cada medida. Construye primero las medidas base, luego los ratios, luego la inteligencia de tiempo, luego los ayudantes de visualización (delta %, flecha, color de estado). - Construye páginas de reporte (
references/report-pbir.md): asigna cada componente de la especificación a un visual, colócalo en el lienzo de 1280×720 usando el mapeo de cuadrícula, aplica el tema debi-dashboard-design/references/theme-tokens.md, agrega páginas de exploración en profundidad y un marcador de restablecimiento. - Seguridad: si la especificación tiene
row_level, crea el rol RLS con un filtro DAX en la dimensión relevante y documenta cómo asignar miembros en el Servicio. - Verifica: ejecuta las comprobaciones DAX en
references/dax-patterns.md#verification(totales coinciden con el origen, inteligencia de tiempo devuelve valores para el período más reciente, sin KPI en blanco), luego ejecuta la lista de verificación de aceptación debi-dashboard-design. Informa lo que no pudiste verificar.
Mapeo de cuadrícula (lienzo de 1280 × 720)
- Márgenes 16 px; ancho utilizable 1248 px; 12 columnas de 88 px con espacios de 16 px.
- Espacio de columna
c→ anchoc*88 + (c-1)*16px; x =16 + col_index*104. - Una unidad de altura = 56 px con espacios de 16 px (fila de encabezado ≈ 64 px).
- Páginas largas: prefiere una segunda página en lugar de desplazamiento vertical para L1/L2; las páginas de detalle L3 pueden usar un lienzo más alto (1280 × 1440) para tablas.
Mapeo visual
| Componente de especificación | Visual de Power BI | Notas |
|---|---|---|
| kpi_card | Tarjeta (nueva) / KPI | Etiqueta de referencia para comparación; color condicional vía medida |
| trend_line | Gráfico de líneas | Objetivo como segunda medida o línea constante; 13 meses vía filtro de fecha relativo o ventana de medida |
| ranked_bar | Barra agrupada | Filtro Top N + "Otros" vía una medida de segmentación dinámica si es necesario |
| variance_bar | Barra agrupada sobre medida de varianza | Color por regla según signo de Var × dirección |
| waterfall | Cascada | Campo de desglose = dimensión de control |
| stacked_bar | Barra 100% apilada | |
| matrix | Matriz | Jerarquía de filas, valores Real/Presupuesto/Var/Var%, elementos de celda en Var% |
| exception_table | Tabla | Filtro de Top N o gravedad, iconos condicionales, exploración en profundidad habilitada |
| aging_buckets | Columna agrupada | Columna de cubo ordenada por columna de orden de cubo |
| funnel | Embudo o barra | Barra ordenada por orden de etapa es más legible |
| map | Mapa de Azure / mapa de relleno | Solo si el inquilino permite mapas |
| slicer | Segmentación (desplegable o mosaico) | Sincroniza segmentaciones entre páginas para Período y Organización |
Barreras de seguridad
- Nunca codifiques fechas como
"2026-10-31"en medidas; deriva el "período completo más reciente" de los datos o de un parámetro. - Usa
DIVIDE()para cada cociente. Nunca promedies un cociente sobre filas. - Prefiere medidas sobre columnas calculadas; prefiere transformaciones de Power Query/almacén sobre tablas calculadas en DAX.
- No importes columnas sensibles (SSN, nombre del paciente, detalle de salario) a menos que la especificación lo solicite y RLS/OLS esté implementado.
- Mantén Auto fecha/hora desactivado; infla el modelo y entra en conflicto con la tabla de fecha.
Archivos de referencia
references/tmdl-patterns.md– Sintaxis TMDL para tablas, columnas, relaciones, tabla de fecha, roles. Leer en modo A/B.references/dax-patterns.md– DAX reutilizable: cocientes, inteligencia de tiempo, instantáneas semi-aditivas, cubos de antigüedad, Top N + Otros, ayudantes de visualización, consultas de verificación.references/report-pbir.md– Diseño de carpeta PBIR, elementos esenciales de JSON visual, exploración en profundidad, marcadores y el formato de hoja de construcción para el modo C.