Générateur de Présentation d'Impact Technique (TIP)

Génère une « Présentation d'Impact Technique » (TIP / POV / résumé de POV) à partir d'un modèle PowerPoint Dynatrace, d'un exemple optionnel et d'un tableau de critères de succès, alimenté par des données live du tenant via dtctl, avec des liens profonds vers les vues à capturer.

Qu'est-ce que Générateur de Présentation d'Impact Technique (TIP) ?

Cette compétence (« skill ») permet de construire automatiquement une Présentation d'Impact Technique (TIP) pour un client, en liant les critères de succès du client aux données live de son tenant Dynatrace. Elle utilise `dtctl` pour récolter des métriques réelles (hôtes, services, problèmes, logs, etc.) et le serveur MCP Dynatrace (optionnel) pour valider les accès. Le pipeline comprend une validation préalable obligatoire, la collecte de données live, la construction d'un fichier de configuration JSON (avec liens profonds vers les applications Dynatrace), la génération du diaporama via un script Python, une QA automatisée (vérification du contraste texte/fond, des liens, etc.) et la livraison du fichier final. Elle est conçue pour les agents AI comme Claude Code, Cursor ou Codex, et requiert un `dtctl` authentifié sur le tenant client, avec le modèle PowerPoint Dynatrace et les critères de succès fournis par l'utilisateur.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/srijithsunil/technical-impact-presentation-skill/tree/main

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Générateur de Présentation d'Impact Technique (TIP) ?

Construit une Présentation d'Impact Technique (TIP / POV) personnalisée, professionnelle et orientée client, qui relie les critères de succès du client à ce que Dynatrace a livré, en s'appuyant sur des chiffres live du tenant et des liens profonds vers les vues exactes à capturer. Les règles de marque sont dérivées du dynatrace-pptx-skill — lisez-le d'abord pour les couleurs et polices.

Règle d’or : ne jamais inventer de métriques. Chaque chiffre sur une diapositive doit provenir d’une requête dtctl exécutée dans cette session. Si un critère est « En cours », dites-le — l’honnêteté prime sur le vernis.

Données d’entrée nécessaires

EntréeObligatoireNotes
Modèle PowerPoint Dynatrace (.pptx)ouiLe modèle de base ; ses mises en page et son thème sont hérités.
Exemple de présentation complète (.pptx)optionnelMiroir de l’enchaînement des diapos (ex. POV d’un autre client).
Critères de succès (image/tableau/texte)ouiLa colonne vertébrale du contenu — cas d’usage · objectif · méthode actuelle · statut.
Tenant / contexte dtctlouiex. <tenant-id> → dtctl --context <ctx>.
Nom du présentateur / dateoptionnelPar défaut : utilisateur authentifié + mois en cours.

Pipeline (à exécuter dans l’ordre)

1 — VALIDATION PRÉALABLE (obligatoire, ne pas sauter)

Les deux vérifications doivent réussir avant de construire. Exécutez d’abord la vérification dtctl, puis la vérification MCP.

1a. Validation dtctl — exécutez scripts/preflight.sh <contexte> :

bash scripts/preflight.sh <contexte-dtctl>

Ce script vérifie : le contexte courant, auth whoami (jeton non expiré), l’accès en lecture (une requête DQL simple), l’accès en écriture (nécessaire si vous téléchargez des tableaux de bord), et liste les IDs d’applications installées (nécessaires pour les liens profonds). Si le jeton est expiré, il affiche la commande de ré-authentification — demandez à l’utilisateur d’exécuter !dtctl auth login --context <ctx> dans la session (OAuth est interactif ; vous ne pouvez pas le faire).

1b. Validation du serveur MCP Dynatrace — vous (l’agent) devez confirmer que le serveur MCP Dynatrace est accessible, car les scripts ne peuvent pas appeler MCP. Invoquez un outil MCP léger en lecture, par ex. get_dql_knowledgebase ou list_strato_components (les noms ressemblent à mcp__<serveur>__<outil>).

  • Succès → notez « MCP : connecté » et utilisez-le pour valider/autoriser DQL et les tableaux de bord.
  • Échec/absent → notez « MCP : indisponible — poursuite avec dtctl uniquement » et continuez (MCP est recommandé, pas obligatoire). Ne supposez pas silencieusement que ça fonctionne.

Enregistrez les deux résultats sur une courte ligne de pré-vérification avant de continuer, par ex. Prévol ✓ dtctl(lect+écriture, 47 apps) · MCP(connecté).

2 — RASSEMBLER LES DONNÉES LIVE DU TENANT

Exécutez scripts/gather_tenant_data.sh <contexte> pour récupérer les statistiques principales (hôtes, services, groupes/instances de processus, clusters K8s/namespaces/charges de travail, spans/2h, logs/2h, problèmes distincts/7j), les IDs d’applications installées (pour les liens profonds) et les IDs d’entités candidates (top services, groupes d’hôtes, systèmes de base de données) pour des liens premium. Capturez la sortie ; vous collerez ces chiffres dans la configuration. Ajoutez les requêtes spécifiques aux critères si nécessaire (ex. db.system, services Oracle/MSSQL, régions Azure, spans gen_ai).

3 — CONSTRUIRE LE FICHIER DE CONFIGURATION

Copiez references/example_config.json et modifiez-le pour ce client : page de couverture, résumé exécutif, point de vue client (4 fiches), chronologie, les lignes de critères de succès, une entrée feature par critère (+ valeur ajoutée), résumé de la valeur, conclusion. Chaque fonctionnalité = {titre, fait, statut, puces[], url, capture}. url = un lien profond réel (<base>/<appId> de l’étape 1/2) ; capture = une ligne indiquant exactement à l’utilisateur quoi capturer.

Base des liens profonds = https://<tenant>.apps.dynatrace.com/ui/apps/. IDs d’applications courants (confirmez par tenant via l’étape 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 (Problèmes), dynatrace.logs, dynatrace.kubernetes, dynatrace.devobs.debugger (Live Debugger), dynatrace.dashboards, dynatrace.security.vulnerabilities.

4 — GÉNÉRER LE DIAPORAMA

python3 scripts/build_tip.py config.json

build_tip.py charge le modèle, supprime proprement les diapositives du squelette (dissocie les relations pour éviter les doublons et la corruption), reconstruit à partir des mises en page du modèle, et détecte automatiquement par mise en page si le fond est sombre ou clair — choisissant du texte blanc sur les diapos de couverture/section sombres et du texte bleu marine sur les diapos de contenu claires. Les fiches personnalisées, les nœuds de chronologie, les boîtes de liens et les tableaux sont toujours remplis en foncé avec du texte clair, pour une lisibilité sur toutes les diapos.

5 — QA (obligatoire)

python3 scripts/qa_tip.py "<sortie>.pptx"

Échoue bruyamment en cas de : texte blanc sur fond clair (invisible), liens hypertexte cassés/vides, texte résiduel du squelette (« Use Case 1 », « Customer Name », « Lorem »), tableaux vides. Corrigez et relancez jusqu’à propreté. Si LibreOffice/soffice est disponible, exportez aussi un PDF et examinez-le visuellement ; sinon, demandez à l’utilisateur d’ouvrir le fichier et de vérifier que le texte tient dans les diapos denses.

6 — LIVRAISON

Donnez le chemin absolu + un lien file://. Proposez de l’ouvrir avec open. Résumez le plan des diapositives, les métriques utilisées et les liens de capture par diapositive.

Plan type du diaporama (flux par défaut)

Couverture → Ordre du jour → Résumé exécutif → Point de vue client (4 fiches) → Chronologie du POV → Tableau des critères de succès → séparateur de section → une diapositive fonctionnalité par critère de succès → diapositives valeur ajoutée (Problèmes/RCA, Logs, Kubernetes, Live Debugger, Tableaux de bord livrés, Sécurité) → séparateur de section → Tableau de bord des résultats → Valeur livrée & Prochaines étapes → Remerciements.

Chaque diapositive fonctionnalité : titre + badge de statut (✅ Terminé / 🔄 En cours) + 3–4 puces de valeur + un encadré « EMPLACEMENT CAPTURE D’ÉCRAN » en cyan sur la droite avec l’instruction de capture et le lien profond cliquable.

Leçons durement acquises, intégrées dans les scripts (ne pas régresser)

  1. Fonds clairs vs sombres. Les modèles « Technical Impact » de Dynatrace livrent des mises en page de contenu claires (blanches) et des mises en page de couverture/section sombres (image en fond perdu). Le texte blanc sur une diapositive claire est invisible. build_tip.py détecte automatiquement (une image en fond perdu ou un remplissage sombre uni ⇒ sombre) et colore le texte en conséquence. Ne codez jamais du texte blanc en dur sur des mises en page de contenu.
  2. Suppression propre des diapositives. Supprimer uniquement les entrées sldId crée des parties de diapositives orphelines et provoque une corruption par noms en double. Supprimez toujours prs.part.drop_rel(rId) et retirez le sldId.
  3. Les remplacements de termes de marque sont sensibles à la casse. Par exemple, remplacez le visible Davis → Dynatrace Intelligence mais laissez davis en minuscules intact dans les URLs d’IDs d’applications (dynatrace.davis.problems), sinon vous cassez les liens. qa_tip.py ne signalera pas les URLs.
  4. IDs d’applications réelles uniquement. Récupérez-les depuis dtctl get apps (étape 1) — ne devinez pas. dynatrace.database.overview (pas dynatrace.databases), dynatrace.davis.problems, etc.
  5. Honnêteté sur le statut. Conservez les indicateurs Terminé/En cours du client ; colorez « En cours » en ambre.

Partage de cette compétence

Elle est autonome dans ce répertoire. Pour partager : copiez ~/.claude/skills/technical-impact-presentation/ dans le répertoire ~/.claude/skills/ (ou ~/.agents/skills/) d’un collègue, ou engagez-la dans un dépôt de compétences partagé. Aucune dépendance externe au-delà de python-pptx (pip3 install python-pptx) et dtctl.

Skills associés