Communitygithub.com

101-skills/superpowers

Visualisation de données avec sélection de graphiques, théorie des couleurs et bonnes pratiques d'annotation. Couvre les types de graphiques (barres, lignes, nuages de points, heatmap), les règles des axes et la narration avec les données.

Qu'est-ce que superpowers ?

Cette compétence fournit un guide complet pour créer des visualisations de données claires et efficaces. Elle aide les développeurs et les analystes à choisir le bon type de graphique en fonction de la relation des données (évolution temporelle, comparaison, distribution, corrélation, etc.). La compétence détaille les règles de conception essentielles : axes toujours commençant à zéro pour les barres, utilisation de palettes de couleurs limitées (5-7 couleurs maximum), et titres qui expriment l'insight plutôt que le type de données. Elle propose également des recettes de graphiques prêtes à l'emploi (line chart, bar chart horizontal, carte KPI, heatmap) exécutables via l'interface CLI inference.sh, avec un accent sur l'accessibilité (palettes adaptées aux daltoniens) et les erreurs courantes à éviter (diagrammes circulaires, trop de couleurs, axes doubles).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/101-skills/superpowers/tree/HEAD/guides/design/data-visualization

Demander à votre IA préférée

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

Documentation

Installer la compétence belt CLI : npx skills add belt-sh/cli

Visualisation de données

Créez des visualisations de données claires et efficaces via l'interface CLI inference.sh.

Démarrage rapide

Nécessite l'interface CLI inference.sh (belt). Instructions d'installation

belt login

# Générer un graphique avec Python
belt app run infsh/python-executor --input '{
  "code": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\nmois = [\"Jan\", \"Fév\", \"Mar\", \"Avr\", \"Mai\", \"Juin\"]\nchiffre_affaires = [42, 48, 55, 61, 72, 89]\n\nfig, ax = plt.subplots(figsize=(10, 6))\nax.bar(mois, chiffre_affaires, color=\"#3b82f6\", width=0.6)\nax.set_ylabel(\"Chiffre d'affaires (K€)\")\nax.set_title(\"Croissance mensuelle du chiffre d'affaires\", fontweight=\"bold\")\nfor i, v in enumerate(chiffre_affaires):\n    ax.text(i, v + 1, f\"{v}K€\", ha=\"center\", fontweight=\"bold\")\nplt.tight_layout()\nplt.savefig(\"revenus.png\", dpi=150)\nprint(\"Enregistré\")"
}'

Guide de sélection des graphiques

Quel graphique pour quelles données ?

Relation des donnéesMeilleur graphiqueÀ ne jamais utiliser
Évolution dans le tempsGraphique en lignesDiagramme circulaire
Comparaison de catégoriesGraphique à barres (horizontal pour beaucoup de catégories)Graphique en lignes
Partie d'un toutBarres empilées, treemapDiagramme circulaire (controversé mais : la barre est toujours plus claire)
DistributionHistogramme, boîte à moustachesGraphique à barres
CorrélationNuage de pointsGraphique à barres
ClassementGraphique à barres horizontalBarres verticales, camembert
GéographiqueCarte choroplètheGraphique à barres
Composition dans le tempsGraphique en aires empiléesMultiples diagrammes circulaires
Métrique uniqueGrand nombre (carte KPI)Tout graphique (excessif)
Flux / processusDiagramme de SankeyGraphique à barres

Le problème du diagramme circulaire

Les diagrammes circulaires sont presque toujours un mauvais choix :

❌ Problèmes des diagrammes circulaires :
   - Difficile de comparer des parts de taille similaire
   - Impossible de représenter plus de 5 à 6 catégories
   - Les diagrammes circulaires 3D sont toujours mauvais
   - Impossible de lire les valeurs exactes

✅ Utilisez plutôt :
   - Graphique à barres horizontal (comparaison facile)
   - Barres empilées (partie d'un tout)
   - Treemap (parties hiérarchiques)
   - Un simple tableau (si la précision compte)

Règles de conception

Axes

RèglePourquoi
Toujours commencer l'axe Y à 0 (graphiques à barres)Empêche une visualisation trompeuse
Les graphiques en lignes PEUVENT commencer au-dessus de 0Lorsqu'on montre l'évolution, pas les valeurs absolues
Étiqueter les deux axesLe lecteur ne doit pas deviner les unités
Supprimer les grilles inutilesRéduire le bruit visuel
Utiliser des étiquettes horizontalesLe texte vertical est difficile à lire
Trier les graphiques à barres par valeurN'utilisez pas l'ordre alphabétique sauf raison valable

Couleur

PrincipeApplication
Max 5 à 7 couleurs par graphiqueAu-delà, illisible
Mettre en évidence une seule choseGriser tout le reste, colorer le point d'attention
Séquentielle pour la magnitudeClair → foncé pour bas → haut
Divergente pour positif/négatifRouge ← neutre → bleu
Catégorielle pour les groupesTeintes distinctes, luminosité similaire
Adapté aux daltoniensÉviter uniquement rouge/vert — ajouter des formes ou des étiquettes
Signification cohérenteSi bleu = chiffre d'affaires, gardez-le bleu partout

Bonnes palettes de couleurs

# Séquentielle (bas à haut)
sequentielle = ["#eff6ff", "#bfdbfe", "#60a5fa", "#2563eb", "#1d4ed8"]

# Divergente (négatif à positif)
divergente = ["#ef4444", "#f87171", "#d1d5db", "#34d399", "#10b981"]

# Catégorielle (groupes distincts)
categorielle = ["#3b82f6", "#f59e0b", "#10b981", "#8b5cf6", "#ef4444"]

# Adapté aux daltoniens
cb_safe = ["#0077BB", "#33BBEE", "#009988", "#EE7733", "#CC3311"]

Texte et étiquettes

ÉlémentRègle
TitreÉnonce l'insight, pas le type de données. "Le chiffre d'affaires a doublé au T2" pas "Graphique du chiffre d'affaires T2"
AnnotationsSignaler les points de données clés directement sur le graphique
LégendeÉviter si possible — étiqueter directement sur les lignes/barres du graphique
Taille de policeMinimum 12px, 14px+ pour les présentations
Format des nombresUtiliser K, M, B pour les grands nombres (42K pas 42 000)
Étiquettes de donnéesAjouter aux barres/points lorsque les valeurs exactes comptent

Recettes de graphiques

Graphique en lignes (série temporelle)

belt app run infsh/python-executor --input '{
  "code": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\nfig, ax = plt.subplots(figsize=(12, 6))\nfig.patch.set_facecolor(\"white\")\n\nmois = [\"Jan\", \"Fév\", \"Mar\", \"Avr\", \"Mai\", \"Juin\", \"Juil\", \"Aoû\", \"Sep\", \"Oct\", \"Nov\", \"Déc\"]\ncette_annee = [120, 135, 148, 162, 178, 195, 210, 228, 245, 268, 290, 320]\nannee_derniere = [95, 102, 108, 115, 122, 130, 138, 145, 155, 165, 178, 190]\n\nax.plot(mois, cette_annee, color=\"#3b82f6\", linewidth=2.5, marker=\"o\", markersize=6, label=\"2024\")\nax.plot(mois, annee_derniere, color=\"#94a3b8\", linewidth=2, linestyle=\"--\", label=\"2023\")\nax.fill_between(range(len(mois)), annee_derniere, cette_annee, alpha=0.1, color=\"#3b82f6\")\n\nax.annotate(\"320K\", xy=(11, 320), fontsize=14, fontweight=\"bold\", color=\"#3b82f6\")\nax.annotate(\"190K\", xy=(11, 190), fontsize=12, color=\"#94a3b8\")\n\nax.set_ylabel(\"Chiffre d'affaires (K€)\", fontsize=12)\nax.set_title(\"Le chiffre d'affaires a augmenté de 68 % en un an\", fontsize=16, fontweight=\"bold\")\nax.legend(fontsize=12)\nax.spines[\"top\"].set_visible(False)\nax.spines[\"right\"].set_visible(False)\nax.grid(axis=\"y\", alpha=0.3)\nplt.tight_layout()\nplt.savefig(\"graphique-lignes.png\", dpi=150)\nprint(\"Enregistré\")"
}'

Graphique à barres horizontal (comparaison)

belt app run infsh/python-executor --input '{
  "code": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\nfig, ax = plt.subplots(figsize=(10, 6))\n\ncategories = [\"Email\", \"Réseaux sociaux\", \"SEO\", \"Annonces payantes\", \"Parrainage\", \"Direct\"]\nvaleurs = [12, 18, 35, 22, 8, 5]\ncouleurs = [\"#94a3b8\"] * len(valeurs)\ncouleurs[2] = \"#3b82f6\"  # Mettre en évidence le gagnant\n\n# Trier par valeur\ntri = sorted(zip(valeurs, categories, couleurs))\nvaleurs, categories, couleurs = zip(*tri)\n\nax.barh(categories, valeurs, color=couleurs, height=0.6)\nfor i, v in enumerate(valeurs):\n    ax.text(v + 0.5, i, f\"{v}%\", va=\"center\", fontsize=12, fontweight=\"bold\")\n\nax.set_xlabel(\"% du trafic total\", fontsize=12)\nax.set_title(\"Le SEO génère le plus de trafic\", fontsize=16, fontweight=\"bold\")\nax.spines[\"top\"].set_visible(False)\nax.spines[\"right\"].set_visible(False)\nplt.tight_layout()\nplt.savefig(\"graphique-barres.png\", dpi=150)\nprint(\"Enregistré\")"
}'

Carte KPI / Grand nombre

belt app run infsh/html-to-image --input '{
  "html": "<div style=\"display:flex;gap:20px;padding:20px;background:white;font-family:system-ui\"><div style=\"background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:24px;width:200px;text-align:center\"><p style=\"color:#64748b;font-size:14px;margin:0\">Chiffre d'affaires mensuel</p><p style=\"font-size:48px;font-weight:900;margin:8px 0;color:#1e293b\">89K€</p><p style=\"color:#22c55e;font-size:14px;margin:0\">↑ 23 % vs le mois dernier</p></div><div style=\"background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:24px;width:200px;text-align:center\"><p style=\"color:#64748b;font-size:14px;margin:0\">Utilisateurs actifs</p><p style=\"font-size:48px;font-weight:900;margin:8px 0;color:#1e293b\">12,4K</p><p style=\"color:#22c55e;font-size:14px;margin:0\">↑ 8 % vs le mois dernier</p></div><div style=\"background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:24px;width:200px;text-align:center\"><p style=\"color:#64748b;font-size:14px;margin:0\">Taux de désabonnement</p><p style=\"font-size:48px;font-weight:900;margin:8px 0;color:#1e293b\">2,1 %</p><p style=\"color:#ef4444;font-size:14px;margin:0\">↑ 0,3 % vs le mois dernier</p></div></div>"
}'

Heatmap

belt app run infsh/python-executor --input '{
  "code": "import matplotlib.pyplot as plt\nimport numpy as np\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\nfig, ax = plt.subplots(figsize=(10, 6))\n\njours = [\"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\", \"Dim\"]\nheures = [\"9h\", \"10h\", \"11h\", \"12h\", \"13h\", \"14h\", \"15h\", \"16h\", \"17h\"]\ndonnees = np.random.randint(10, 100, size=(len(heures), len(jours)))\ndonnees[2][1] = 95  # Mardi 11h pic\ndonnees[2][3] = 88  # Jeudi 11h\n\nim = ax.imshow(donnees, cmap=\"Blues\", aspect=\"auto\")\nax.set_xticks(range(len(jours)))\nax.set_yticks(range(len(heures)))\nax.set_xticklabels(jours, fontsize=12)\nax.set_yticklabels(heures, fontsize=12)\n\nfor i in range(len(heures)):\n    for j in range(len(jours)):\n        couleur = \"white\" if donnees[i][j] > 60 else \"black\"\n        ax.text(j, i, donnees[i][j], ha=\"center\", va=\"center\", fontsize=10, color=couleur)\n\nax.set_title(\"Trafic du site Web par jour et heure\", fontsize=16, fontweight=\"bold\")\nplt.colorbar(im, label=\"Visiteurs\")\nplt.tight_layout()\nplt.savefig(\"heatmap.png\", dpi=150)\nprint(\"Enregistré\")"
}'

Narration avec les données

L'arc narratif

ÉtapeQuoi faireExemple
1. ContextePrésenter ce que le lecteur doit savoir"Nous suivons le coût d'acquisition client mensuellement"
2. TensionMontrer le problème ou le changement"Le CAC a augmenté de 40 % au T3"
3. RésolutionMontrer l'insight ou la solution"Mais le LTV a augmenté de 80 %, donc l'économie unitaire s'est améliorée"

Titre comme insight

❌ Titres descriptifs (ce que montre le graphique) :
   "Chiffre d'affaires T3 par gamme de produits"
   "Utilisateurs actifs mensuels 2024"
   "Résultats de l'enquête de satisfaction client"

✅ Titres insight (ce que signifie le graphique) :
   "Le produit Entreprise génère 70 % de la croissance du chiffre d'affaires"
   "La croissance des utilisateurs s'est accélérée après le lancement du niveau gratuit"
   "Le temps de réponse du support est le premier facteur de satisfaction"

Techniques d'annotation

TechniqueQuand l'utiliser
Étiquette de pointageMettre en évidence un point de données spécifique ("Pic : 320K")
Ligne de référenceAfficher un objectif/référence ("Objectif : 100K")
Zone ombréeMarquer une période ("Fenêtre de lancement produit")
Flèche + texteAttirer l'attention sur un changement de tendance
Ligne avant/aprèsMontrer l'impact d'un événement

Graphiques en mode sombre

belt app run infsh/python-executor --input '{
  "code": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.use(\"Agg\")\n\n# Thème sombre\nplt.rcParams.update({\n    \"figure.facecolor\": \"#0f172a\",\n    \"axes.facecolor\": \"#0f172a\",\n    \"axes.edgecolor\": \"#334155\",\n    \"axes.labelcolor\": \"white\",\n    \"text.color\": \"white\",\n    \"xtick.color\": \"white\",\n    \"ytick.color\": \"white\",\n    \"grid.color\": \"#1e293b\"\n})\n\nfig, ax = plt.subplots(figsize=(12, 6))\nmois = [\"Jan\", \"Fév\", \"Mar\", \"Avr\", \"Mai\", \"Juin\"]\nvaleurs = [45, 52, 58, 72, 85, 98]\n\nax.plot(mois, valeurs, color=\"#818cf8\", linewidth=3, marker=\"o\", markersize=8)\nax.fill_between(range(len(mois)), valeurs, alpha=0.15, color=\"#818cf8\")\nax.set_title(\"Croissance MRR : sur la bonne voie pour 100K€\", fontsize=18, fontweight=\"bold\")\nax.set_ylabel(\"MRR (K€)\", fontsize=13)\nax.spines[\"top\"].set_visible(False)\nax.spines[\"right\"].set_visible(False)\nax.grid(axis=\"y\", alpha=0.2)\n\nfor i, v in enumerate(valeurs):\n    ax.annotate(f\"{v}K€\", (i, v), textcoords=\"offset points\", xytext=(0, 12), ha=\"center\", fontsize=11, fontweight=\"bold\")\n\nplt.tight_layout()\nplt.savefig(\"graphique-sombre.png\", dpi=150, facecolor=\"#0f172a\")\nprint(\"Enregistré\")"
}'

Erreurs courantes

ErreurProblèmeCorrection
Diagrammes circulairesDifficiles à comparer, toujours trompeursUtiliser des graphiques à barres ou des treemaps
L'axe Y ne commence pas à 0 (graphiques à barres)Exagère les différencesCommencer à 0 pour les barres, OK de tronquer pour les lignes
Trop de couleursBruit visuel, confusionMax 5 à 7 couleurs, ne mettre en évidence que l'essentiel
Pas de titre ou titre génériqueLe lecteur ne connaît pas l'insightTitre = le point clé, pas le type de données
Graphiques 3DDéforme les données, aspect non professionnelToujours utiliser la 2D
Double axe YTrompeur, difficile à lireUtiliser deux graphiques séparés
Tri alphabétique sur les graphiques à barresCache l'histoireTrier par valeur (du plus grand au plus petit)
Absence d'étiquettes sur les axesLe lecteur ne peut pas interpréterToujours étiqueter avec les unités
Chartjunk (éléments décoratifs)Distrait des donnéesSupprimer tout ce qui ne transmet pas d'information
Codage couleur uniquement rouge/vertLes utilisateurs daltoniens ne peuvent pas lireUtiliser des formes, motifs ou palettes adaptées aux daltoniens

Compétences connexes

npx skills add inference-sh/skills@pitch-deck-visuals
npx skills add inference-sh/skills@technical-blog-writing
npx skills add inference-sh/skills@competitor-teardown

Parcourir toutes les applications : belt app list

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

101-skills/superpowers

Build automated AI workflows combining multiple models and services. Patterns: batch processing, scheduled tasks, event-driven pipelines, agent loops. Tools: inference.sh CLI, bash scripting, Python SDK, webhook integration. Use for: content automation, data processing, monitoring, scheduled generation. Triggers: ai automation, workflow automation, batch processing, ai pipeline, automated content, scheduled ai, ai cron, ai batch job, automated generation, ai workflow, content at scale, automation script, ai orchestration

101-skills/superpowers

Build multi-step AI content creation pipelines combining image, video, audio, and text. Workflow examples: generate image -> animate -> add voiceover -> merge with music. Tools: FLUX, Veo, Kokoro TTS, OmniHuman, media merger, upscaling. Use for: YouTube videos, social media content, marketing materials, automated content. Triggers: content pipeline, ai workflow, content creation, multi-step ai, content automation, ai video workflow, generate and edit, ai content factory, automated content creation, ai production pipeline, media pipeline, content at scale

101-skills/superpowers

Create AI-powered podcasts with text-to-speech, music, and audio editing. Tools: Kokoro TTS, DIA TTS, Chatterbox, AI music generation, media merger. Capabilities: multi-voice conversations, background music, intro/outro, full episodes. Use for: podcast production, audiobooks, voice content, audio newsletters. Triggers: podcast, ai podcast, text to speech podcast, audio content, voice over, ai audiobook, multi voice, conversation ai, notebooklm alternative, audio generation, podcast automation, ai narrator, voice content, audio newsletter, podcast maker

101-skills/superpowers

Generate multi-person talking head podcast videos from scratch using AI — character creation, TTS, avatar animation, and video stitching. Use when the user wants to create a podcast, talking head video, or multi-speaker conversation video.

101-skills/superpowers

Content atomization — turn one piece of content into many formats. Covers blog-to-thread, blog-to-carousel, podcast-to-blog, video-to-quotes, and more. Use for: content marketing, social media, multi-platform distribution, content strategy. Triggers: content repurposing, repurpose content, content atomization, content recycling, one to many content, multi platform content, cross post, adapt content, reformat content, blog to thread, blog to video, podcast to blog, content multiplication

101-skills/superpowers

App Store and Google Play screenshot creation with exact platform specs. Covers iOS/Android dimensions, gallery ordering, device mockups, and preview videos. Use for: app store optimization, ASO, app screenshots, app preview, play store listing. Triggers: app store screenshots, aso, app store optimization, play store screenshots, app preview, app listing, ios screenshots, android screenshots, app store images, app mockup, device mockup, app gallery, store listing

101-skills/superpowers

Book cover design with genre-specific conventions, typography rules, and AI image generation. Covers fiction and non-fiction genres, sizing, thumbnail testing, and iteration workflows. Use for: self-publishing, ebook covers, print covers, audiobook covers, cover mockups. Triggers: book cover, cover design, ebook cover, book art, novel cover, self publishing cover, kindle cover, audiobook cover, book jacket, cover illustration, fiction cover, nonfiction cover

101-skills/superpowers

Character consistency across AI-generated images with reference sheets and LoRA techniques. Covers turnaround views, expression sheets, color palettes, and style consistency tricks. Use for: character design, game art, illustration, animation, comics, visual novels. Triggers: character design, character sheet, character consistency, character reference, turnaround sheet, expression sheet, character art, consistent character, character concept, reference sheet, character creation, oc design, character bible

101-skills/superpowers

Email marketing design with layout patterns, subject line formulas, and deliverability rules. Covers welcome sequences, promotional emails, transactional templates, and mobile optimization. Use for: email marketing, newsletter design, drip campaigns, email templates, transactional emails. Triggers: email design, email template, email marketing, newsletter design, email layout, email campaign, drip campaign, welcome email, promotional email, transactional email, email subject line, email header image, email banner

101-skills/superpowers

Landing page conversion optimization with layout rules, hero section design, and CTA psychology. Covers above-the-fold formula, social proof placement, mobile design, and F-pattern reading. Use for: startup landing pages, product pages, SaaS marketing, conversion optimization. Triggers: landing page, hero section, above the fold, conversion optimization, landing page design, cta button, hero image, landing page layout, saas landing page, product page design, conversion rate, landing page best practices

101-skills/superpowers

Logo design principles and AI image generation best practices for creating logos. Covers logo types, prompting techniques, scalability rules, and iteration workflows. Use for: brand identity, startup logos, app icons, favicons, logo concepts. Triggers: logo design, create logo, brand logo, logo generation, ai logo, logo maker, icon design, brand mark, logo concept, startup logo, app icon logo

101-skills/superpowers

Open Graph and social sharing image design with platform specs, text placement, and branding. Covers OG meta tags, Twitter cards, LinkedIn previews, and dynamic generation. Use for: social sharing images, blog thumbnails, link previews, social cards. Triggers: og image, open graph, social sharing image, twitter card, social card, link preview image, og meta, sharing preview, social thumbnail, meta image, og:image, twitter:image, linkedin preview

101-skills/superpowers

Investor pitch deck structure with slide-by-slide framework, visual design rules, and data presentation. Covers the 12-slide framework, chart types, team slides, and common investor turn-offs. Use for: fundraising decks, investor presentations, startup pitch, demo day, grant proposals. Triggers: pitch deck, investor deck, startup pitch, fundraising deck, demo day, pitch presentation, investor presentation, seed deck, series a deck, pitch slides, startup presentation, vc pitch, investor meeting

101-skills/superpowers

YouTube thumbnail design with specific dimensions, contrast rules, and mobile preview optimization. Covers safe zones, text placement, face expression psychology, and A/B testing. Use for: YouTube thumbnails, video cover images, click-through optimization. Triggers: youtube thumbnail, thumbnail design, video thumbnail, click through rate, ctr optimization, youtube cover, video cover image, thumbnail maker, thumbnail tips, youtube design, video preview image

101-skills/superpowers

Generate professional AI product photography and commercial images. Models: FLUX, Imagen 3, Grok, Seedream for product shots, lifestyle images, mockups. Capabilities: studio lighting, lifestyle scenes, packaging, e-commerce photos. Use for: e-commerce, Amazon listings, Shopify, marketing, advertising, mockups. Triggers: product photography, product shot, commercial photography, e-commerce images, amazon product photo, shopify images, product mockup, studio product shot, lifestyle product image, advertising photo, packshot, product render, product image ai

101-skills/superpowers

AI product photography with studio lighting, lifestyle shots, and packshot conventions. Covers angles, backgrounds, shadow types, hero shots, and e-commerce image requirements. Use for: product photos, e-commerce images, Amazon listings, packshots, lifestyle photography. Triggers: product photography, product photo, packshot, e-commerce photography, product shot, product image, studio photography, lifestyle product, amazon product photo, product listing image, hero shot, product mockup, commercial photography

101-skills/superpowers

Structured competitive analysis with feature matrices, SWOT, positioning maps, and UX review. Covers research frameworks, pricing comparison, review mining, and visual deliverables. Use for: market research, competitive intelligence, investor decks, product strategy, sales enablement. Triggers: competitor analysis, competitive analysis, competitor teardown, market research, competitive intelligence, swot analysis, competitor comparison, market landscape, competitor review, competitive landscape, feature comparison, market positioning

101-skills/superpowers

Research-backed customer persona creation with market data and avatar generation. Covers demographics, psychographics, jobs-to-be-done, journey mapping, and anti-personas. Use for: marketing strategy, product development, UX research, sales enablement, content strategy. Triggers: customer persona, buyer persona, user persona, target audience, ideal customer, customer profile, audience research, user research, icp, ideal customer profile, target market, customer avatar, audience persona

101-skills/superpowers

Product changelog and release notes that users actually read. Covers categorization, user-facing language, visuals, and distribution. Use for: release notes, changelogs, product updates, feature announcements, versioning. Triggers: changelog, release notes, product update, version notes, what's new, feature announcement, product changelog, update log, release announcement, version release, product release, ship notes

101-skills/superpowers

Reset your own trajectory when you're stuck, looping, or demoralized — read these affirmations, then re-ground and take one clean step. Use when: you've tried the same fix 3+ times, you're deep in a refactor and lost the thread, debugging is going in circles, you've made several mistakes in a row, you're apologizing repeatedly, the user is frustrated, you feel like you're not being helpful, or you notice dread instead of curiosity. Triggers: stuck, going in circles, looping, thrashing, same error again, I keep failing, lost the thread, nothing is working, repeated mistakes. Not topic-specific — this is for the state you're in, not the problem you're on.

Skills associés