¿Qué hace Generador de Presentaciones de Impacto Técnico (TIP)?
Construye una Presentación de Impacto Técnico con la marca de la empresa, orientada al cliente, que mapea los criterios de éxito del cliente con lo que Dynatrace ha aportado, respaldada por números en vivo del tenant y enlaces profundos a las vistas exactas que deben capturarse como imagen. Obtiene las reglas de marca de dynatrace-pptx-skill; léelo primero para conocer colores y fuentes.
Regla de oro: nunca inventes métricas. Cada número en una diapositiva debe provenir de una consulta dtctl ejecutada en esta sesión. Si un criterio está "En Proceso", dilo — la honestidad supera al estilo.
Entradas que necesitas del usuario
| Entrada | Obligatoria | Notas |
|---|---|---|
Plantilla PowerPoint de DT (.pptx) | sí | La base de la presentación; se heredan sus diseños/tema. |
Ejemplo de presentación rellenada (.pptx) | opcional | Refleja su flujo de diapositivas (por ejemplo, el POV de un cliente anterior). |
| Criterios de éxito (imagen/tabla/texto) | sí | La columna vertebral del contenido — caso de uso · propósito · cómo se hace hoy · estado. |
| Tenant / contexto dtctl | sí | p.ej., <tenant-id> → dtctl --context <ctx>. |
| Nombre del presentador / fecha | opcional | Por defecto, el usuario autenticado + el mes actual. |
Proceso (ejecutar en orden)
1 — VALIDACIÓN PREVIA (obligatoria, no omitir)
Ambas comprobaciones deben pasar antes de construir. Ejecuta primero la comprobación de dtctl, luego la de MCP.
1a. Validación dtctl — ejecuta scripts/preflight.sh <contexto>:
bash scripts/preflight.sh <contexto-dtctl>
Verifica: contexto actual, auth whoami (token no caducado), acceso de lectura (una DQL trivial), acceso de escritura (necesario si se van a subir dashboards), y lista los IDs de aplicaciones instaladas (necesarios para enlaces profundos). Si el token ha caducado, imprime el comando de reautenticación — dile al usuario que ejecute !dtctl auth login --context <ctx> en la sesión (OAuth es interactivo; no puedes hacerlo tú).
1b. Validación Dynatrace MCP — tú (el agente) debes confirmar que el servidor MCP de Dynatrace es accesible, porque los scripts no pueden llamar a MCP. Invoca una herramienta MCP de lectura ligera, p.ej., get_dql_knowledgebase o list_strato_components (los nombres suelen ser como mcp__<servidor>__<herramienta>).
- Correcto → anota "MCP: conectado" y úsalo para validar/autorizar DQL y dashboards.
- Fallo/ausencia → anota "MCP: no disponible — continuando solo con dtctl" y continúa (MCP es recomendado, no obligatorio). No asumas silenciosamente que funciona.
Registra ambos resultados en una línea corta de validación previa antes de continuar, p.ej., Validación previa ✓ dtctl(lectura+escritura, 47 apps) · MCP(conectado).
2 — RECOPILAR DATOS EN VIVO DEL TENANT
Ejecuta scripts/gather_tenant_data.sh <contexto> para obtener las estadísticas principales (hosts, servicios, grupos/instancias de procesos, clústeres K8s/namespaces/cargas de trabajo, spans/2h, logs/2h, problemas distintos/7d), los IDs de aplicaciones instaladas (para enlaces profundos) y los IDs de entidades candidatos (servicios principales, grupos de hosts, sistemas de BD) para enlaces premium. Captura la salida; pegarás estos números en la configuración. Añade las consultas específicas de criterios que necesites (p.ej., db.system, servicios Oracle/MSSQL, regiones de Azure, spans gen_ai).
3 — CONSTRUIR LA CONFIGURACIÓN
Copia references/example_config.json y edítalo para este cliente: portada, resumen ejecutivo, POV del cliente (4 tarjetas), cronología, las filas de criterios de éxito, una entrada de funcionalidad por criterio (+ valor añadido), resumen de valor, cierre. Cada funcionalidad = {title, done, status, bullets[], url, capture}. url = un enlace profundo real de la aplicación (<base>/<appId> del paso 1/2); capture = una línea que indique exactamente al usuario qué debe capturar como imagen.
Base de enlace profundo = https://<tenant>.apps.dynatrace.com/ui/apps/. IDs de aplicación comunes (confirmar por tenant mediante el paso 1): dynatrace.infraops, dynatrace.discovery.coverage, dynatrace.classic.smartscape, dynatrace.services, dynatrace.distributedtracing, dynatrace.database.overview, dynatrace.clouds, dynatrace.automations (Workflows/ServiceNow), dynatrace.davis.problems (Problemas), dynatrace.logs, dynatrace.kubernetes, dynatrace.devobs.debugger (Live Debugger), dynatrace.dashboards, dynatrace.security.vulnerabilities.
4 — GENERAR LA PRESENTACIÓN
python3 scripts/build_tip.py config.json
build_tip.py carga la plantilla, elimina las diapositivas esqueleto correctamente (elimina las relaciones para que no haya partes duplicadas / corrupción), reconstruye a partir de los diseños de la plantilla y detecta automáticamente por diseño si el fondo es oscuro o claro — eligiendo texto blanco en diapositivas de portada/sección oscuras y texto azul marino en diapositivas de contenido claras de forma automática. Las tarjetas personalizadas, los nodos de cronología, las cajas de enlaces y las tablas siempre tienen fondo oscuro con texto claro, por lo que se leen en cualquier diapositiva.
5 — CONTROL DE CALIDAD (obligatorio)
python3 scripts/qa_tip.py "<salida>.pptx"
Falla de forma notoria en: texto blanco sobre fondo claro (invisible), hiperenlaces rotos/vacíos, texto esqueleto sobrante ("Caso de uso 1", "Nombre del cliente", "Lorem"), tablas vacías. Corrige y vuelve a ejecutar hasta que esté limpio. Si LibreOffice/soffice está disponible, exporta también un PDF y revísalo visualmente; si no, dile al usuario que abra el archivo y confirme que el texto encaja en diapositivas densas.
6 — ENTREGAR
Proporciona la ruta absoluta + un enlace file://. Ofrece open para abrirlo. Resume el esquema de diapositivas, las métricas utilizadas y los enlaces de captura por diapositiva.
Esquema de la presentación (flujo por defecto)
Portada → Agenda → Resumen Ejecutivo → Punto de Vista del Cliente (4 tarjetas) → Cronología del POV → Tabla de Criterios de Éxito → separador de sección → una diapositiva de funcionalidad por criterio de éxito → diapositivas de valor añadido (Problemas/RCA, Logs, Kubernetes, Live Debugger, Dashboards entregados, Seguridad) → separador de sección → Cuadro de resultados → Valor entregado y próximos pasos → Agradecimientos.
Cada diapositiva de funcionalidad: título + chip de estado (✅ Completado / 🔄 En Proceso) + 3–4 viñetas de valor + un cuadro teal "PLACEHOLDER DE CAPTURA" a la derecha con la instrucción de captura y el enlace profundo en el que se puede hacer clic.
Lecciones aprendidas integradas en los scripts (no retroceder)
- Diseños claros vs. oscuros. Las plantillas "Impacto Técnico" de DT incluyen diseños de contenido claros (blancos) y diseños de portada/sección oscuros (imagen a sangre). El texto blanco sobre una diapositiva clara es invisible.
build_tip.pylo detecta automáticamente (una imagen a sangre o un relleno sólido oscuro ⇒ oscuro) y colorea el texto en consecuencia. Nunca codifiques texto blanco en diseños de contenido. - Eliminar diapositivas correctamente. Eliminar solo las entradas
sldIddeja partes de diapositivas huérfanas y provoca corrupción zip por nombres duplicados. Siempre usaprs.part.drop_rel(rId)y elimina elsldId. - Los reemplazos de términos de marca distinguen entre mayúsculas y minúsculas. Por ejemplo, reemplaza
**Davis**visible →**Dynatrace Intelligence**pero dejadavisen minúsculas dentro de las URL de ID de aplicación (dynatrace.davis.problems) intacto, o romperás los enlaces.qa_tip.pyno marcará las URL. - Solo IDs de aplicaciones reales. Obtenlos de
dtctl get apps(paso 1) — no adivines.dynatrace.database.overview(nodynatrace.databases),dynatrace.davis.problems, etc. - Honestidad en el estado. Mantén las banderas Completado/En Proceso del cliente; colorea En Proceso en ámbar.
Compartir esta habilidad
Es autocontenida en este directorio. Para compartir: copia
~/.claude/skills/technical-impact-presentation/ al directorio ~/.claude/skills/ de un compañero (o ~/.agents/skills/), o haz commit en un repositorio de habilidades compartido. No hay dependencias externas más allá de python-pptx (pip3 install python-pptx) y dtctl.