$npx -y skills add mounra/ai-marketing --skill market-report-pdfIMPORTANT : Tu dois toujours répondre et rédiger tous tes livrables en français.
| 1 | # Générateur de Rapport Marketing PDF |
| 2 | |
| 3 | ## Objectif du Skill |
| 4 | Générer un rapport marketing PDF professionnel et visuellement soigné à l'aide du script Python `scripts/generate_pdf_report.py`. Ce skill collecte toutes les données d'audit et d'analyse disponibles, les structure au format JSON attendu, invoque le script et produit un PDF de marque avec jauges de score, graphiques en barres, tableaux comparatifs, observations et plan d'action priorisé. |
| 5 | |
| 6 | **IMPORTANT : Tu dois toujours répondre et rédiger tous tes livrables en français.** |
| 7 | |
| 8 | ## Quand Utiliser |
| 9 | - L'utilisateur veut un rapport PDF (pas seulement Markdown) |
| 10 | - L'utilisateur prépare un livrable pour une présentation client |
| 11 | - L'utilisateur demande un "rapport soigné", "rapport client" ou "rapport PDF" |
| 12 | - L'utilisateur veut un rapport visuel avec graphiques et scores |
| 13 | - Déclenché par `/market report-pdf` ou `/market report-pdf <domaine>` |
| 14 | |
| 15 | ## PDF vs Markdown |
| 16 | |
| 17 | | Format | Idéal Pour | Avantages | Inconvénients | |
| 18 | |---|---|---|---| |
| 19 | | **PDF** | Présentations clients, pièces jointes email, supports commerciaux | Apparence professionnelle, mise en forme cohérente, graphiques visuels, imprimable | Plus difficile à modifier, nécessite le script Python | |
| 20 | | **Markdown** | Usage interne, référence rapide, édition itérative, gestion de version | Facile à modifier, lisible dans n'importe quel éditeur, compatible git | Moins soigné visuellement, pas de graphiques | |
| 21 | |
| 22 | **Règle générale :** Si le rapport va à un client ou prospect, utiliser le PDF. Pour un usage interne ou une édition ultérieure, utiliser le Markdown. |
| 23 | |
| 24 | ## Comment Exécuter |
| 25 | |
| 26 | ### Étape 1 : Collecter Toutes les Données Disponibles |
| 27 | Rassembler les données de toutes les exécutions précédentes de skills. Chercher ces fichiers dans le répertoire projet : |
| 28 | |
| 29 | **Sources de données principales :** |
| 30 | - `AUDIT-MARKETING.md` — Résultats globaux de l'audit |
| 31 | - `ANALYSE-LANDING.md` — Analyse de conversion de la page d'atterrissage |
| 32 | - `AUDIT-SEO.md` — Observations SEO |
| 33 | - `VOIX-DE-MARQUE.md` — Analyse de la voix de marque |
| 34 | - `RAPPORT-CONCURRENTS.md` — Données de comparaison concurrentielle |
| 35 | - `ANALYSE-FUNNEL.md` — Analyse du tunnel de vente |
| 36 | - `CALENDRIER-SOCIAL.md` — Audit des réseaux sociaux |
| 37 | - `SEQUENCES-EMAILS.md` — Audit email marketing |
| 38 | - `CAMPAGNES-PUB.md` — Audit publicitaire |
| 39 | |
| 40 | **Si aucune donnée préalable n'existe :** |
| 41 | 1. Recommander à l'utilisateur d'exécuter d'abord `/market audit <url>` pour de meilleurs résultats |
| 42 | 2. Si l'utilisateur insiste pour générer un rapport sans audits préalables, analyser directement l'URL fournie et construire la structure de données de zéro |
| 43 | 3. Utiliser le script analyze_page.py pour collecter des données automatisées : `python scripts/analyze_page.py <url>` |
| 44 | |
| 45 | ### Étape 2 : Construire la Structure de Données JSON |
| 46 | Le script `scripts/generate_pdf_report.py` attend un fichier JSON en entrée avec cette structure exacte : |
| 47 | |
| 48 | ```json |
| 49 | { |
| 50 | "url": "https://exemple.fr", |
| 51 | "date": "12 mars 2026", |
| 52 | "brand_name": "Exemple SARL", |
| 53 | "overall_score": 62, |
| 54 | "executive_summary": "Un résumé en 2-4 phrases de la santé marketing globale, des principales opportunités et de l'impact CA estimé de la mise en œuvre des recommandations.", |
| 55 | "categories": { |
| 56 | "Contenu & Message": { |
| 57 | "score": 68, |
| 58 | "weight": "25%" |
| 59 | }, |
| 60 | "Optimisation de Conversion": { |
| 61 | "score": 52, |
| 62 | "weight": "20%" |
| 63 | }, |
| 64 | "SEO & Visibilité": { |
| 65 | "score": 74, |
| 66 | "weight": "20%" |
| 67 | }, |
| 68 | "Positionnement Concurrentiel": { |
| 69 | "score": 48, |
| 70 | "weight": "15%" |
| 71 | }, |
| 72 | "Marque & Confiance": { |
| 73 | "score": 70, |
| 74 | "weight": "10%" |
| 75 | }, |
| 76 | "Croissance & Stratégie": { |
| 77 | "score": 55, |
| 78 | "weight": "10%" |
| 79 | } |
| 80 | }, |
| 81 | "findings": [ |
| 82 | { |
| 83 | "severity": "Critique", |
| 84 | "finding": "Description de l'observation la plus importante" |
| 85 | }, |
| 86 | { |
| 87 | "severity": "Haute", |
| 88 | "finding": "Description d'une observation de haute priorité" |
| 89 | }, |
| 90 | { |
| 91 | "severity": "Moyenne", |
| 92 | "finding": "Description d'une observation de priorité moyenne" |
| 93 | }, |
| 94 | { |
| 95 | "severity": "Basse", |
| 96 | "finding": "Description d'une observation de moindre priorité" |
| 97 | } |
| 98 | ], |
| 99 | "quick_wins": [ |
| 100 | "Premier élément d'action rapide", |
| 101 | "Deuxième élément d'action rapide", |
| 102 | "Troisième élément d'action rapide" |
| 103 | ], |
| 104 | "medium_term": [ |
| 105 | "Premier élément d'action moyen terme", |
| 106 | "Deuxième élément d'action moyen terme", |
| 107 | "Troisième élément d'action moyen terme" |
| 108 | ], |
| 109 | "strategic": [ |
| 110 | "Premier élément d'action stratégique", |
| 111 | "Deuxième élément d'action stratégique", |
| 112 | "Troisième élément d'action stratégique" |
| 113 | ], |
| 114 | "competitors": [ |
| 115 | { |
| 116 | "name": "Concurrent A", |
| 117 | "positioning": "Leur position sur le marché", |
| 118 | "pricing": "Leur modèle de tarification", |
| 119 | "social_proof": "Leurs signaux de confiance", |
| 120 | "content": "Leur approche de contenu" |
| 121 | }, |
| 122 | { |
| 123 | "name": "Concurrent B", |
| 124 | "positioning": "Leur position sur le marché", |
| 125 | "pricing": "Leur modèle de tarification", |
| 126 | "social_proof": "Leurs si |