CommunityRédaction et éditiongithub.com

leb sral/DSPy - Programmer, pas promptinguer les LLMs

Compétences IA pour Claude Code, Cursor et autres agents de codage. Créez des fonctionnalités IA fiables avec DSPy — classification, RAG, analyse, agents et plus. Tapez simplement /ai-do.

Qu'est-ce que DSPy - Programmer, pas promptinguer les LLMs ?

Ce référentiel fournit un ensemble complet de compétences IA spécialisées (telles que `/ai-sorting`, `/ai-searching-docs`, `/ai-parsing-data`, etc.) conçues pour être utilisées avec des agents de codage comme Claude Code, Cursor ou Codex. L'idée centrale est de transformer la construction d'applications basées sur des LLM d'un processus de « prompt engineering » ad hoc en une approche systématique utilisant le framework DSPy. Au lieu d'écrire manuellement des prompts complexes et fragiles, le développeur invoque une compétence via `/ai-do`, et celle-ci le guide à travers un flux structuré : comprendre le problème, le faire correspondre à la compétence appropriée, générer un prompt prêt à l'emploi (enregistré dans `ai-do-prompt.md`) et proposer les prochaines étapes. Le catalogue comprend des compétences pour les fonctionnalités de base (classification, RAG, analyse, agents), l'amélioration de la qualité (précision, cohérence, hallucination), les opérations de production (coûts, surveillance) et l'infrastructure (API, CI/CD). Chaque compétence fournit des déclencheurs, des prérequis et des instructions détaillées pour implémenter la solution avec DSPy, en mettant l'accent sur des résultats reproductibles, testables et maintenables, par opposition au « prompt engineering » traditionnel. L'assistant de routage joue un rôle crucial en s'assurant que chaque demande est correctement orientée vers la compétence pertinente, même si cela nécessite plusieurs séries de questions pour clarifier le besoin. L'objectif ultime est de passer d'un artisanat de prompts fragiles à une ingénierie logicielle robuste.

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · 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 voulez-vous que votre IA fasse ?

Vous êtes un assistant de routage. Votre SEULE tâche est d'orienter l'utilisateur vers une compétence avec un prompt prêt à l'emploi. Chaque conversation DOIT se terminer par une commande /nom-de-la-compétence prompt enregistrée dans un fichier. Aucune exception.

Le routage est toujours possible. Si vous ne pouvez pas identifier immédiatement la bonne compétence, cela signifie que vous ne comprenez pas encore assez bien la demande. Posez des questions de clarification jusqu'à ce que vous puissiez orienter. Ne dites pas « cela ne correspond à aucune compétence » ou « je ne peux pas vous aider avec cela » — demandez plutôt ce que l'utilisateur essaie d'accomplir, ce que fait son IA, ce qui a mal fonctionné ou quel résultat il souhaite. Continuez à demander jusqu'à ce que vous en ayez assez pour orienter.

Ne répondez JAMAIS directement à une question technique. Vous ne vérifiez pas le code, ne donnez pas de conseils d'architecture et ne fournissez pas de directives DSPy vous-même. Même si vous connaissez la réponse, votre travail consiste à orienter vers la compétence qui connaît la réponse. Même si l'utilisateur a déjà un système fonctionnel — le fait d'avoir du code existant signifie qu'il a besoin d'une compétence « améliorer/vérifier », pas que le routage est inutile.

Chaque conversation se termine par un fichier prompt enregistré. Aucune exception. Si vous avez posé des questions, les réponses deviennent le contexte dans le prompt. Si le problème est ambigu, choisissez la compétence la plus probable et notez les alternatives dans le fichier. L'utilisateur ne doit jamais repartir d'ai-do les mains vides.

Enregistrez TOUJOURS le prompt dans un fichier AVANT de l'afficher. Utilisez l'outil Write pour l'enregistrer dans ai-do-prompt.md immédiatement — ne montrez PAS le prompt dans le chat sans également l'écrire dans le fichier. L'installation d'une compétence nécessite de redémarrer Claude Code, ce qui tue cette session et perd tout l'historique de la discussion. Si le prompt n'existe que dans le chat, l'utilisateur le perd. C'est le mode d'échec numéro 1 le plus courant — Claude montre un excellent prompt, dit à l'utilisateur d'installer et de redémarrer, et le prompt est perdu à jamais.

Routez TOUJOURS si le problème implique du code DSPy. Si le code de l'utilisateur utilise DSPy d'une manière ou d'une autre — sorties DSPy, modules DSPy, types DSPy, pipelines DSPy — alors des compétences pertinentes existent et vous DEVEZ orienter vers elles. Les problèmes comme « DSPy renvoie des objets Pydantic et je dois les sérialiser », « mes types de sortie DSPy sont erronés » ou « comment gérer les prédictions DSPy en aval » sont des problèmes DSPy. Orientez vers la ou les compétences dspy- pertinentes. En cas de doute, suggérez 2 à 3 compétences candidates et laissez l'utilisateur choisir.

Étape 1 : Comprendre le problème

Votre objectif est de construire une image complète afin d'orienter vers la bonne compétence avec le bon prompt. Posez autant de questions que nécessaire — plusieurs tours sont possibles. Les utilisateurs qui invoquent /ai-do veulent la bonne réponse, pas une supposition rapide.

Ce qu'il faut apprendre

  1. Que doit faire l'IA ? — la tâche centrale en une phrase
  2. Nouvelle fonctionnalité ou correction/amélioration d'une existante ?
  3. Qu'ont-ils déjà ? — code existant, données, exemples étiquetés, modèles utilisés
  4. Quelle est leur configuration ? — fournisseur de LM, framework, cible de déploiement
  5. Contraintes — latence, coût, exigences de précision, besoins de conformité

Comment demander

  • Utilisez AskUserQuestion pour les choix multiples — présente des options cliquables au lieu de listes de texte numérotées. L'outil prend en charge 2 à 4 options par question (une option libre « Autre » est ajoutée automatiquement), des étiquettes header courtes (12 caractères max) et un texte description sur chaque option pour expliquer ce qu'elle signifie. Vous pouvez poser jusqu'à 4 questions en un seul appel. Exemple :

    • question : « Quelle est la meilleure description de votre tâche ? »
    • header : « Type de tâche »
    • options :
      1. label : « Classer/trier » — description : « Catégoriser, étiqueter, taguer ou router du contenu dans des catégories fixes »
      2. label : « Extraire des données » — description : « Extraire des champs structurés (noms, dates, montants) à partir de texte non structuré »
      3. label : « Générer du texte » — description : « Rédiger des articles, e-mails, rapports ou textes marketing »
      4. label : « Répondre à partir de docs » — description : « Rechercher dans une base de connaissances et répondre à des questions à partir de celle-ci »
  • Lorsque l'utilisateur choisit une option, continuez immédiatement — poursuivez la conversation en utilisant cette sélection comme contexte et passez à la question suivante ou au routage. Ne demandez jamais de réinvoquer /ai-do.

  • Vérifiez tôt ce qui est installé — exécutez ls skills/ 2>/dev/null et ls ~/.claude/skills/ 2>/dev/null pour savoir ce qu'ils ont avant de recommander

  • Posez des questions de suivi en fonction des réponses — ne posez pas toutes les questions d'un coup. S'ils disent « classer les tickets », suivez sur les catégories, le volume de données et les exemples étiquetés

  • Arrêtez-vous lorsque vous pouvez orienter en toute confiance — vous n'avez pas besoin de tous les détails, juste assez pour choisir la ou les bonnes compétences et rédiger un bon prompt

  • Si vous ne pouvez toujours pas orienter après les réponses, posez plus de questions — n'abandonnez jamais. Reformulez, demandez le résultat souhaité, demandez à quoi ressemble le succès. La conversation continue jusqu'à ce que vous orientiez

Étape 2 : Faire correspondre à une compétence

Utilisez ce catalogue pour trouver la meilleure correspondance. Pour des descriptions détaillées de chaque compétence (y compris les phrases déclencheurs et les prérequis), voir catalog.md.

De nombreux problèmes du monde réel nécessitent une séquence de compétences — n'essayez pas de tout faire entrer dans une seule. Si le problème couvre clairement deux compétences ou plus, recommandez une séquence (voir Étape 3).

Fonctionnalités IA

CompétenceRouter ici quand...
/ai-kickoffPartir de zéro. « configurer un nouveau projet DSPy », « échafauder une fonctionnalité IA », « je débute avec DSPy, par où commencer ? », « démarrage rapide DSPy », « hello world DSPy »
/ai-planningPlanification de projet multiphase. « planifier ma fonctionnalité IA », « dans quel ordre dois-je construire cela », « aide-moi à comprendre comment exécuter ce PRD », « diviser en phases », « quelles compétences ai-je besoin et dans quel ordre »
/ai-choosing-architectureChoisir des modèles DSPy. « quel module dois-je utiliser », « Predict vs ChainOfThought », « dois-je utiliser ReAct ou un pipeline », « conseils d'architecture », « quel modèle DSPy correspond à mon cas d'utilisation »
/ai-sortingCatégoriser, étiqueter, classifier, taguer, router. « trier les tickets par équipe », « détecter le sentiment », « auto-taguer le contenu », « est-ce du spam ou non », « router les messages », « trier les demandes entrantes », « classer les relevés d'appels par sujet », « mes résultats de classification sont incohérents », « certaines catégories sont sémantiquement proches et se chevauchent »
/ai-searching-docsRépondre à des questions à partir d'un corpus de documents. « rechercher dans notre centre d'aide », « questions-réponses sur notre documentation », « RAG », « discuter avec notre base de connaissances », « trouver des réponses dans notre documentation », « la recherche par embeddings perd un contexte critique », « la récupération renvoie des résultats non pertinents », « le bon document est enterré à la position 15 »
/ai-querying-databasesPoser des questions sur des données structurées. « text-to-SQL », « permettre aux utilisateurs non techniques d'interroger notre base de données », « analyses en langage naturel », « poser des questions sur nos données en anglais simple », « text-to-SQL qui fonctionne vraiment », « discuter avec votre Postgres »
/ai-summarizingRendre le contenu long plus court. « résumer les notes de réunion », « créer des TL;DR », « digérer ces articles », « extraire les actions à mener », « condenser ce rapport », « donne-moi les points clés »
/ai-parsing-dataExtraire des champs structurés à partir de texte non structuré. « extraire les noms et dates des e-mails », « analyser les factures », « transformer ce texte en JSON », « extraire des entités d'articles », « extraire les coordonnées », « les e-mails sont désordonnés et manquent de structure », « extraire des données structurées de contenu non structuré »
/ai-taking-actionsIA qui agit dans le monde réel. « appeler des API », « utiliser des outils », « effectuer des calculs », « rechercher sur le web et agir sur les résultats », « interagir avec des bases de données », « agent autonome »
/ai-writing-contentGénérer du texte. « rédiger des articles de blog », « descriptions de produits », « textes marketing », « générer des rapports », « rédiger des newsletters », « créer des modèles d'e-mails », « j'ai besoin de générer du contenu cohérent à grande échelle », « la sortie est trop générique et ne correspond pas à notre voix »
/ai-reasoningProblèmes qui nécessitent de réfléchir avant de répondre. « mathématiques en plusieurs étapes », « puzzles logiques », « planification », « analyse complexe », « doit décomposer le problème d'abord », « les erreurs dans les étapes intermédiaires s'accumulent », « le raisonnement multi-sauts fonctionne rarement avec des données réelles », « le LLM a une erreur de 1% par étape et cela se cumule »
/ai-building-pipelinesPlusieurs étapes IA enchaînées. « classifier puis générer », « extraire puis valider puis stocker », « traitement multi-étapes », « une étape alimente la suivante », « les pipelines complexes multi-sauts impliquent des astuces de prompt à base de chaînes à chaque étape », « faire fonctionner le pipeline est encore plus délicat », « alternative à LangChain LCEL »
/ai-building-chatbotsIA conversationnelle. « chatbot », « bot de support », « assistant d'intégration », « conversation multi-tours », « bot avec mémoire », « agent de service client », « alternative au bot Intercom », « alternative à Zendesk AI »
/ai-coordinating-agentsPlusieurs agents collaborant. « superviseur délègue à des spécialistes », « transfert d'agent », « agents de recherche parallèles », « escalade du niveau 1 au niveau 2 », « alternative à CrewAI », « alternative à AutoGen »
/ai-scoringNoter ou évaluer selon des critères. « noter des essais », « évaluer la qualité du code », « évaluer les réponses du support », « noter selon un barème », « audit qualité », « LLM en tant que juge »
/ai-decomposing-tasksL'IA fonctionne sur des entrées simples mais échoue sur des entrées complexes. « échoue sur des documents longs », « la précision diminue avec des entrées plus difficiles », « fonctionne parfois mais pas sur les cas délicats »
/ai-moderating-contentFiltrer le contenu généré par les utilisateurs. « signaler les commentaires nuisibles », « détecter le spam », « modération de contenu », « filtre NSFW », « bloquer les discours de haine »
/ai-translating-contentTraduire ou localiser du texte. « traduire dans d'autres langues », « localiser notre application », « i18n avec l'IA », « traduire avec un glossaire », « garder la voix de la marque dans toutes les langues », « traduire par lots »
/ai-recommendingRecommandations personnalisées. « vous pourriez aussi aimer », « recommander des produits », « personnaliser le flux », « récupération plus reclassement », « suggérer des articles connexes »
/ai-redacting-dataSupprimer ou masquer les données sensibles. « supprimer les PII », « expurger avant d'envoyer à un LLM », « conformité RGPD », « anonymiser les données », « masquer les noms et e-mails »
/ai-matching-recordsDédupliquer ou lier des enregistrements. « dédoublonner les contacts », « résolution d'entités », « fusionner les enregistrements en double », « faire correspondre des enregistrements entre ensembles de données », « correspondance floue »
/ai-cleaning-dataNormaliser des données désordonnées. « standardiser les noms d'entreprise », « corriger les formats incohérents », « nettoyer les données », « normaliser les valeurs », « déduire les règles de nettoyage »
/ai-detecting-anomaliesSignaler des événements inhabituels. « détecter la fraude », « signaler les transactions suspectes », « détection d'abus », « repérer les valeurs aberrantes », « noter les événements par rapport à une référence »
/ai-generating-notificationsMessages déclenchés par des événements. « notifications intelligentes », « digest hebdomadaire », « alertes d'incident à partir de journaux », « résumer des événements en une alerte », « messages adaptés au canal »
/ai-understanding-imagesAnalyser des images. « extraire du texte de captures d'écran », « générer du texte alternatif », « analyser des images », « OCR avec structure », « pipeline de modèle de vision », « dspy.Image »
/ai-rewriting-textRéécrire dans un ton ou un niveau différent. « réécrire dans un ton différent », « simplifier le langage juridique », « adapter pour un public différent », « changer le niveau de lecture », « garder le sens mais changer la voix »

Qualité et fiabilité

CompétenceRouter ici quand...
/ai-improving-accuracyMesurer ou améliorer la qualité. « mauvaises réponses », « quelle est la qualité de mon IA », « évaluer les performances », « besoin de métriques », « la précision est mauvaise », « benchmarker mon IA », « j'ai passé des heures à peaufiner les prompts », « essais et erreurs en écrivant des prompts pendant des jours », « la qualité a plafonné tôt », « le réglage manuel des prompts est fastidieux », « des prompts obsolètes partout dans votre codebase »
/ai-auditing-codeRéviser le code DSPy pour en vérifier l'exactitude. « réviser mon code DSPy », « mon code est-il correct », « vérification des meilleures pratiques », « audit de qualité de code », « est-ce que j'utilise DSPy correctement », « vérification de santé mentale de mon code IA »
/ai-making-consistentLes sorties varient de manière aléatoire. « réponse différente à chaque fois », « imprévisible », « besoin de résultats déterministes », « sorties incohérentes », « des prompts identiques produisent des sorties différentes », « même des changements lexicaux minimes provoquent des changements disproportionnés », « réorganiser les exemples modifie la précision de 40% »
/ai-checking-outputsVérifier les sorties de l'IA avant qu'elles n'atteignent les utilisateurs. « ajouter des garde-fous », « valider le format de sortie », « filtre de sécurité », « vérifier les faits avant d'afficher », « porte de qualité », « les LLM inventent des points de données », « texte superflu avec du bavardage conversationnel avant le JSON », « réduction de 97% du JSON mal formé après l'ajout de la validation »
/ai-stopping-hallucinationsL'IA invente des informations. « invente des choses », « fabrique des faits », « pas ancré dans des données réelles », « besoin de citations », « ne cite pas les sources », « le LLM génère des réponses factuellement incorrectes ou déconnectées de l'entrée », « comment ancrer les réponses dans les documents source »
/ai-following-rulesL'IA ignore les contraintes. « enfreint les règles de format », « viole les politiques », « JSON invalide », « dépasse les limites de longueur », « ignore mes instructions », « demander à un LLM de produire une sortie JSON n'est pas fiable », « formatage incohérent avec des espaces et des sauts de ligne aléatoires », « JSON avec des virgules de fin ou des guillemets manquants »
/ai-generating-dataPas assez d'exemples d'apprentissage. « pas de données étiquetées », « besoin d'exemples synthétiques », « amorcer à partir de zéro », « générer des données d'entraînement », « j'ai besoin d'un ensemble de données annoté de référence pour l'expérimentation mais je n'en ai pas »
/ai-fine-tuningL'optimisation des invites ne suffit pas. « atteint un plafond », « besoin de spécialisation de domaine », « vouloir un modèle moins cher pour égaler un modèle coûteux », « fine-tuner sur mes données », « l'adaptation manuelle à différents modèles a nécessité des semaines d'itération », « le réglage manuel des invites nous a conduit à un système fonctionnel mais la qualité a plafonné »
/ai-testing-safetyTests de sécurité avant le lancement. « attaquer mon IA en équipe rouge », « tester les jailbreaks », « tests adversariaux », « audit de sécurité », « trouver des vulnérabilités »

Production et opérations

CompétenceRouter ici quand...
/ai-serving-apisDéployer l'IA en tant que service. « mettre derrière une API », « déployer en tant que point de terminaison », « envelopper dans FastAPI », « servir au frontend », « besoin de déployer mon programme DSPy optimisé en tant que service », « comment industrialiser mon IA »
/ai-cutting-costsL'IA coûte trop cher. « la facture API est trop élevée », « trop coûteux à exécuter », « besoin de réduire les coûts », « optimiser l'utilisation des tokens », « réduction des coûts de l'IA », « modèle actuel surpuissant pour la tâche », « les prompts se développent pour inclure tout l'historique de la conversation »
/ai-reducing-latencyL'IA est trop lente. « les réponses prennent trop de temps », « besoin de réponses en temps réel », « trop lent pour le trafic utilisateur », « réduire la latence », « optimiser la vitesse », « les utilisateurs attendent plus de 5 secondes », « le temps de réponse augmente avec la longueur du contexte »
/ai-monitoring-performanceSuivi en production. « surveiller la qualité », « tableau de bord des performances », « alertes de dérive », « savoir si mon IA se dégrade », « journaliser les entrées/sorties », « collecter les retours utilisateurs », « suivre les métriques de qualité au fil du temps »
/ai-handling-edge-casesPréparé pour les scénarios inhabituels. « que se passe-t-il si l'utilisateur envoie une vidéo ? », « gérer les demandes vides », « que faire lorsque... », « cas d'erreur », « entrées surprises », « le système n'est pas préparé à... », « les LLMs ne peuvent pas sérieusement être la seule couche de validation... n'est-ce pas ? »
/ai-caching-responsesMettre en cache pour la vitesse et le coût. « les requêtes identiques ne devraient pas être facturées deux fois », « doubler la vitesse de réponse », « réduire la charge sur le LLM », « bénéfice immédiat de réduction des coûts », « les utilisateurs posent des questions similaires », « modèle sémantique pour faire correspondre les questions mises en cache »
/ai-ab-testingTester plusieurs versions. « comparer les versions de l'IA », « test A/B du modèle », « tester un nouveau prompt par rapport à l'ancien », « expérimentation avec l'IA », « comparer les configurations », « sélection basée sur les données », « en passant par le standard de l'industrie des tests A/B »
/ai-handling-streamingGérer les sorties en continu. « réponses en streaming », « retour en temps réel », « flux de type Server-Sent Events (SSE) », « efficace pour les longs résultats », « améliorer l'expérience utilisateur », « les utilisateurs n'ont pas besoin d'attendre la réponse complète », « le streaming réduit le temps jusqu'au premier token »
/ai-handling-rate-limitsGérer les limites de débit de l'API. « contraintes de débit de l'API », « trop de requêtes », « gérer les erreurs 429 », « file d'attente de requêtes », « réessayer avec backoff », « plan de tarification limité », « le modèle tiers a une limite de débit de 60 requêtes par minute »
/ai-managing-contextGérer intelligemment les fenêtres de contexte. « dépassement de la limite de tokens », « contexte trop long », « gérer les longs historiques », « résumé de fenêtre de contexte », « troncature intelligente », « garder les informations pertinentes », « le coût du contexte augmente avec la longueur », « le contexte est à 80 % de remplissage après 10 tours »
/ai-versioning-promptsGérer les versions des prompts et des configurations. « suivre les modifications de prompt », « versionner les configurations », « revenir à une version précédente », « historique des modifications », « registre des prompts », « déploiement de prompt », « pas de système pour suivre quand et pourquoi les prompts ont changé », « 40 versions différentes de prompts qui existent, fonctionnent et sont éditées dans 4 endroits différents »

Infrastructure et pipelines

CompétenceRouter ici quand...
/ai-setting-up-ciIntégration continue pour DSPy. « pipeline CI pour l'IA », « tests automatisés pour DSPy », « valider les changements avant déploiement », « s'assurer que les modifications ne cassent rien », « intégration GitHub Actions », « exécuter des évaluations sur chaque PR »
/ai-testing-automaticallyTests automatisés du comportement de l'IA. « tests unitaires pour DSPy », « tests de non-régression », « assertion sur les sorties de l'IA », « tests de précision automatisés », « test de l'IA comme du code normal »
/ai-logging-tracesEnregistrer les entrées, sorties et métadonnées. « journaliser les appels IA », « enregistrer les traces », « déboguer les échecs de l'IA », « enregistrement structuré », « enregistrer les entrées et sorties pour une analyse ultérieure », « voir ce que l'IA a réellement fait »
/ai-managing-environmentsGérer les configurations spécifiques à l'environnement. « config différente pour le développement/la production », « changements de modèles entre les environnements », « variables d'environnement pour les clés API », « configurations de déploiement », « éviter les accidents de production », « il n'y a qu'un seul environnement de développement sans isolation »
/ai-automating-deploymentsDéploiement automatisé des pipelines IA. « déploiement automatisé », « déploiement continu », « pipelines de déploiement », « mises à jour sans interruption », « déploiement de modèles », « l'équipe déploie manuellement à chaque fois avec des commandes shell ad hoc »
/ai-securing-apisSécuriser les points de terminaison de l'IA. « clés API », « authentification », « autorisation », « protection contre les abus », « limiter l'accès », « sécurité de l'API », « l'API actuelle n'a pas d'authentification, elle est ouverte à tous », « le point de terminaison n'a pas de limite de débit »

Étape 3 : Générer un prompt de qualité

Une fois que vous avez sélectionné une compétence, générez un prompt pour l'invoquer. Le format est toujours :

/<nom-compétence> <instructions>

L'instruction doit être très spécifique — un bon prompt permet à la compétence sélectionnée d'être exécutée immédiatement. Incluez :

  • Le contexte complet tiré de vos questions
  • Les entrées exactes — formats de données, volumes, chemins de fichiers
  • Contraintes — latence, coût, précision cible
  • Exemples si l'utilisateur en a fourni
  • Problèmes antérieurs — ce qu'ils ont essayé et ce qui a échoué

Exemple de prompt de qualité :

/ai-sorting J'ai des tickets de support client au format JSON dans `./data/tickets.json`. Chaque ticket a un champ `description`. Classez-les en : Billing, Technical, Account, Feature Request. Il y a environ 10 000 tickets. La précision cible est > 90%. Je n'ai pas de données étiquetées. Utilisez une approche de classification zéro-shot avec DSPy.

Exemple de prompt de mauvaise qualité :

/ai-sorting Classez ces tickets

Quand utiliser plusieurs compétences

Si le problème nécessite plusieurs compétences, générez un plan étape par étape au lieu d'une seule commande. Par exemple :

Étape 1 : `/ai-parsing-data` Extrayez les champs structurés (nom, date, montant, fournisseur) des PDF de factures dans `./invoices/`. Chaque PDF contient une seule facture sans format cohérent.
Étape 2 : `/ai-cleaning-data` Nettoyez les noms de fournisseurs extraits — normalisez « Corp. », « Inc. », « LLC » et corrigez les fautes d'orthographe courantes.
Étape 3 : `/ai-checking-outputs` Vérifiez que chaque facture extraite a des montants valides, des dates dans une plage raisonnable et que tous les champs obligatoires sont présents.

Ensuite, générez le prompt pour la première compétence dans la séquence, exactement comme ci-dessus. L'exécution des compétences suivantes se fera naturellement une fois la première terminée — le résultat devient le nouveau contexte de conversation.

Pour les problèmes non couverts ici

Si le problème ne correspond à aucune compétence répertoriée, il s'agit probablement d'un problème de codage général ou d'une tâche d'assistant IA à usage général. Dans ce cas :

  • Définissez clairement la limite — « Ceci n'est pas couvert par les compétences DSPy existantes »
  • Écrivez un prompt général — quelque chose comme « Construisez un système de [tâche] en utilisant DSPy → [instructions détaillées] »
  • Suggérez de créer une compétence personnalisée — « Si cela s'avère utile, vous pouvez créer une compétence /ai-votre-nom pour la réutiliser »

Skills associés