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
dtctlexé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ée | Obligatoire | Notes |
|---|---|---|
Modèle PowerPoint Dynatrace (.pptx) | oui | Le modèle de base ; ses mises en page et son thème sont hérités. |
Exemple de présentation complète (.pptx) | optionnel | Miroir de l’enchaînement des diapos (ex. POV d’un autre client). |
| Critères de succès (image/tableau/texte) | oui | La colonne vertébrale du contenu — cas d’usage · objectif · méthode actuelle · statut. |
| Tenant / contexte dtctl | oui | ex. <tenant-id> → dtctl --context <ctx>. |
| Nom du présentateur / date | optionnel | Par 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)
- 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.pydé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. - Suppression propre des diapositives. Supprimer uniquement les entrées
sldIdcrée des parties de diapositives orphelines et provoque une corruption par noms en double. Supprimez toujoursprs.part.drop_rel(rId)et retirez lesldId. - Les remplacements de termes de marque sont sensibles à la casse. Par exemple, remplacez le visible
Davis→Dynatrace Intelligencemais laissezdavisen minuscules intact dans les URLs d’IDs d’applications (dynatrace.davis.problems), sinon vous cassez les liens.qa_tip.pyne signalera pas les URLs. - IDs d’applications réelles uniquement. Récupérez-les depuis
dtctl get apps(étape 1) — ne devinez pas.dynatrace.database.overview(pasdynatrace.databases),dynatrace.davis.problems, etc. - 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.