{"version":"4fe1e9caa2dd","maj":"2026-11-04","build":"88d07e03d854","regles":{"cles":["name","description","license","compatibility","metadata","allowed-tools"],"clesCode":["when_to_use","argument-hint","arguments","disable-model-invocation","user-invocable","disallowed-tools","model","effort","context","agent","background","hooks","paths","shell"],"reserves":["anthropic","claude"],"nom":64,"description":1024,"corpsLignes":500,"releve":"2026-11-03"},"niveaux":{"parcours":[{"id":"decouvrir","ico":"🌱","nom":"Découvrir","sous":"Je ne sais pas ce qu’est un skill","objectif":"Comprendre l’idée, savoir où ça marche, créer un premier skill avec l’aide de Claude.","lecons":["c-est-quoi-un-skill","comment-claude-s-en-sert","ou-ca-marche","premier-skill-en-10-minutes","les-skills-d-anthropic"]},{"id":"utiliser","ico":"🛠️","nom":"Utiliser","sous":"J’en ai, je veux m’en servir au quotidien","objectif":"Activer, lancer, diagnostiquer, choisir le bon outil, et rester prudent.","lecons":["activer-et-lancer","skill-projet-connecteur-plugin","securite","quand-ca-ne-se-declenche-pas","skills-au-quotidien"]},{"id":"creer","ico":"✍️","nom":"Créer","sous":"Je veux écrire les miens","objectif":"Écrire un SKILL.md solide : nom, description, instructions, zip, essais.","lecons":["anatomie-d-un-skill","la-description","les-instructions","emballer-et-tester","iterer-avec-claude"]},{"id":"maitriser","ico":"🚀","nom":"Maîtriser","sous":"Je veux aller plus loin","objectif":"Plusieurs fichiers, scripts, Claude Code, évaluation, partage d’équipe.","lecons":["plusieurs-fichiers","les-scripts","claude-code-avance","evaluer","partager-et-gouverner"]}],"skills":[{"id":"debutant","ico":"🟢","nom":"Débutant","sous":"Un seul fichier, des règles simples"},{"id":"intermediaire","ico":"🟠","nom":"Intermédiaire","sous":"Plusieurs fichiers : références, modèles"},{"id":"expert","ico":"🔴","nom":"Expert","sous":"Scripts, réglages avancés, méta"}]},"categories":[{"id":"ecrire","ico":"✍️","nom":"Écrire et communiquer"},{"id":"etudier","ico":"📚","nom":"Apprendre et réviser"},{"id":"emploi","ico":"💼","nom":"Emploi et formation"},{"id":"animer","ico":"🎤","nom":"Animer et accompagner"},{"id":"administratif","ico":"🗂️","nom":"Démarches et vie pratique"},{"id":"analyser","ico":"🔬","nom":"Analyser et vérifier"},{"id":"donnees","ico":"🛡️","nom":"Données et sécurité"},{"id":"code","ico":"💻","nom":"Claude Code"},{"id":"meta","ico":"🧠","nom":"Skills pour les skills"}],"lecons":[{"id":"c-est-quoi-un-skill","n":1,"niveau":"decouvrir","ico":"🧩","titre":"C’est quoi un skill ?","minutes":4,"resume":"Une fiche de procédure que Claude consulte quand la tâche s’y prête — ni un prompt, ni un projet.","corps":"Un **skill** (« compétence ») est un **dossier** qui apprend à Claude *une façon de faire* : comment rédiger vos comptes rendus, comment relire un CV, comment préparer un atelier. Le cœur du dossier est un fichier texte nommé `SKILL.md`. Il contient deux choses : une **carte d’identité** (un nom et une description) et des **instructions**.\n\nImaginez la **fiche de poste** qu’on remet à une nouvelle collègue le premier jour. Elle ne la relit pas en entier à chaque appel téléphonique : elle sait *que la fiche existe* et *à quoi elle sert*, et elle va la chercher quand une situation correspond. C’est exactement ce que fait Claude avec un skill.\n\n## Ce qu’il y a dans un skill\n\n- **Obligatoire** : le fichier `SKILL.md`.\n- **Facultatif** : des fichiers de référence (un guide de style, une liste), des modèles à remplir, et même des petits programmes (scripts) que Claude exécute.\n\n## Ce qu’un skill n’est pas\n\n| Outil | À quoi il sert | Le skill, lui |\n|---|---|---|\n| Un prompt | Une demande pour *cette* conversation | Se charge **tout seul**, à chaque conversation où il est utile |\n| Un projet | Des documents de fond, toujours présents dans ce projet | Se charge **seulement si la tâche correspond** |\n| Un connecteur | Un accès à un service ou des données en direct | Ne donne aucun accès : il apprend *comment s’y prendre* |\n\n> 💡 **Le bon réflexe** : si vous vous surprenez à redonner à Claude *les mêmes consignes* pour la troisième fois, c’est un skill en puissance.","retenir":["Un skill = un dossier avec un fichier `SKILL.md` (nom, description, instructions).","Claude le consulte seulement quand la tâche correspond à sa description.","Il sert à ne plus répéter les mêmes consignes, pas à donner accès à des données.","Les skills suivent un standard ouvert, « Agent Skills » : un skill bien écrit peut servir ailleurs que chez Claude."],"q":{"q":"Vous donnez à Claude, chaque semaine, les mêmes cinq consignes pour mettre en forme votre compte rendu d’atelier. Quel outil est le plus adapté ?","o":["Un connecteur vers votre messagerie","Un skill qui décrit votre façon de faire un compte rendu","Un nouveau prompt, à recopier chaque semaine"],"b":1,"e":"Un skill se charge tout seul quand la demande s’y prête, et vous n’avez plus à recopier les consignes. Un connecteur donne un accès à un service, il n’apprend pas une méthode."}},{"id":"comment-claude-s-en-sert","n":2,"niveau":"decouvrir","ico":"🔍","titre":"Comment Claude s’en sert","minutes":5,"resume":"Trois étapes : il connaît le nom, il lit la description, il n’ouvre le reste que s’il en a besoin.","corps":"Avec cinquante skills installés, Claude ne lit pas cinquante modes d’emploi avant de répondre. Il procède **en trois étapes**, comme on feuillette un classeur :\n\n1. **Il sait ce qui existe.** Au départ, il ne voit que le **nom** et la **description** de chaque skill — une ligne chacun. C’est tout : environ une centaine de jetons par skill, un coût très faible.\n2. **Il charge celui qui correspond.** Quand votre demande ressemble à une description, il lit alors les instructions du `SKILL.md`.\n3. **Il ouvre le reste seulement au besoin.** Si les instructions renvoient à un guide, un modèle ou un script, il va les chercher à ce moment-là. Un script s’exécute : seul son *résultat* entre dans la conversation, pas son code.\n\nOn appelle cela la **divulgation progressive** : on ne montre le détail que quand il sert.\n\n## Pourquoi la description compte autant\n\nC’est **la seule chose que Claude voit avant de décider**. Une description vague (« aide avec les documents ») ne sera jamais choisie au bon moment. Une description précise (« Rédige un compte rendu d’atelier. À utiliser quand l’utilisateur colle des notes de réunion ») le sera.\n\n> ⚠️ Un skill excellent avec une mauvaise description est un skill **qui ne sert jamais**. C’est la cause numéro un des « mon skill ne marche pas ».\n\n## Un exemple de bout en bout\n\nVous demandez : « Voici mes notes de l’atelier CV d’hier, fais-en un compte rendu. » Claude repère que la description du skill `compte-rendu-d-atelier` correspond, lit ses instructions, suit les étapes, et vous rend un compte rendu dans votre format habituel — sans que vous ayez rappelé le format.","retenir":["Au départ, Claude ne connaît que le nom et la description de chaque skill.","Il lit les instructions seulement si la demande correspond, et les fichiers annexes seulement s’ils sont cités.","On peut donc installer beaucoup de skills sans alourdir la conversation.","La description est le point de décision : c’est elle qu’il faut soigner."],"q":{"q":"Qu’est-ce que Claude lit **avant** de décider d’utiliser un skill ?","o":["Tout le fichier `SKILL.md`","Seulement son nom et sa description","Tous les fichiers du dossier"],"b":1,"e":"Tout le reste est chargé à la demande, une fois le skill choisi. C’est ce qui permet d’avoir beaucoup de skills sans surcharger la conversation."}},{"id":"ou-ca-marche","n":3,"niveau":"decouvrir","ico":"🗺️","titre":"Où ça marche, et avec quel forfait","minutes":5,"resume":"claude.ai, Cowork, Claude Code, l’API : quatre endroits, des règles qui diffèrent.","corps":"Les skills existent dans plusieurs produits d’Anthropic. Ils ne sont **pas partout identiques**, et ils ne se copient pas tout seuls d’un endroit à l’autre.\n\n| Où | Comment on les ajoute | Qui les voit |\n|---|---|---|\n| **claude.ai** et l’appli de bureau | Menu **Customize › Skills** : activer un skill existant, téléverser un `.zip`, ou le faire écrire par Claude | Vous seul·e (sauf partage Team ou Enterprise) |\n| **Cowork** | Les skills de votre compte (Customize › Skills) ; sur Mac, on peut aussi **enregistrer un skill** en faisant la tâche à l’écran | Vous |\n| **Claude Code** | Un dossier sur l’ordinateur : `~/.claude/skills/` (à vous) ou `.claude/skills/` (dans un projet) | Vous, ou l’équipe du projet |\n| **L’API** | On les téléverse avec l’API ; on les cite dans la requête | Toute l’équipe de l’espace de travail |\n\n## Ce qu’il faut pour que ça marche sur claude.ai\n\n- Un **forfait** qui les propose. La documentation d’Anthropic cite Pro, Max, Ultra, Team et Enterprise ; une page d’aide ajoute le forfait gratuit. Les deux ne se recoupent pas parfaitement : regardez directement dans **Customize › Skills** de votre compte.\n- L’option **« Code execution and file creation »** activée (Paramètres › Capacités), car les skills s’exécutent dans l’espace de travail de code de Claude.\n\n## Les différences qui comptent\n\n- **Accès à Internet** : un skill lancé par l’API n’a ni réseau ni installation de paquets ; dans Claude Code, il a le réseau de votre ordinateur ; dans claude.ai, cela dépend des réglages.\n- **Les réglages avancés** (lancer à la main seulement, travailler en sous-agent…) n’existent **que dans Claude Code**. Ailleurs, ils font échouer le téléversement.\n- Aucun modèle n’est exclu : les skills fonctionnent avec les modèles de la famille Claude.\n\n> 💡 Les menus d’Anthropic changent de nom de temps en temps (une documentation parle de « Settings › Features », une autre de « Customize › Skills »). Cherchez le mot **Skills** dans les réglages.","retenir":["claude.ai, Cowork, Claude Code, API : chacun a sa façon d’ajouter un skill.","Un skill ajouté à un endroit n’apparaît pas automatiquement aux autres.","Sur claude.ai, il faut un forfait compatible et l’exécution de code activée."],"q":{"q":"Vous avez téléversé un skill sur claude.ai. Le retrouverez-vous automatiquement dans l’API ?","o":["Oui, tout est synchronisé","Non : chaque endroit a ses propres skills","Oui, mais seulement avec un forfait Enterprise"],"b":1,"e":"Les skills sont gérés séparément sur chaque produit. Si vous voulez le même skill ailleurs, il faut l’y ajouter."}},{"id":"premier-skill-en-10-minutes","n":4,"niveau":"decouvrir","ico":"⏱️","titre":"Mon premier skill en 10 minutes","minutes":8,"resume":"Le plus simple : demander à Claude de l’écrire avec vous, puis le relire.","corps":"Inutile d’écrire du code. Voici le chemin le plus court pour un premier skill utile.\n\n## Étape 1 — Choisir une tâche qui revient\n\nUne tâche que vous faites **souvent** et **de la même façon** : un compte rendu, une relance, la préparation d’un atelier. Écrivez-la en une phrase : « Je transforme mes notes brutes en compte rendu avec décisions et actions. » Cette phrase deviendra la description.\n\n## Étape 2 — Demander à Claude de le rédiger\n\nDans claude.ai, après avoir activé le skill **skill-creator** (proposé par Anthropic dans Customize › Skills), écrivez par exemple :\n\n```\nAide-moi à créer un skill. Il doit transformer mes notes de réunion\nen compte rendu : un résumé de 3 lignes, les décisions, puis un\ntableau « qui fait quoi pour quand ». Pose-moi les questions utiles.\n```\n\nClaude vous questionne, puis propose le dossier. Vous n’avez rien à inventer : vous répondez.\n\n> 💡 Atelier de cette appli : l’onglet **Fabriquer** compose pour vous ce message à coller, ou le fichier `SKILL.md` lui-même.\n\n## Étape 3 — Relire\n\nOuvrez le `SKILL.md` proposé. Trois points :\n1. la **description** dit-elle *ce que ça fait* et *quand l’utiliser* ?\n2. les **étapes** sont-elles celles que *vous* suivez ?\n3. y a-t-il un **exemple** de résultat attendu ?\n\nL’onglet **Vérifier** de l’atelier contrôle le format à votre place.\n\n## Étape 4 — L’activer et l’essayer\n\nAllez dans **Customize › Skills**, activez le skill, puis posez une demande qui devrait le déclencher : collez de vraies notes et regardez le résultat. S’il ne se déclenche pas, c’est presque toujours la description à reformuler.\n\n> ⚠️ Testez avec des notes **sans données personnelles** tant que vous ne savez pas ce que le skill produit.","retenir":["Le plus simple : décrire la tâche à Claude et le laisser écrire le skill.","Vous relisez : description, étapes, exemple.","On teste avec de vraies demandes ; si rien ne se passe, on retouche la description."],"q":{"q":"Votre skill ne se déclenche pas quand vous collez vos notes. Première chose à vérifier ?","o":["Le forfait de votre voisin","La description : dit-elle quand l’utiliser, avec vos mots ?","La longueur du texte collé"],"b":1,"e":"Claude choisit un skill d’après sa description. Reformuler le « quand utiliser » règle la plupart des cas."}},{"id":"les-skills-d-anthropic","n":5,"niveau":"decouvrir","ico":"🎁","titre":"Les skills déjà fournis par Anthropic","minutes":4,"resume":"Excel, Word, PowerPoint, PDF : des skills prêts à l’emploi, et d’autres sources.","corps":"Avant d’écrire un skill, regardez ce qui existe. Vous utilisez peut-être déjà des skills sans le savoir.\n\n## Les quatre skills de documents\n\nAnthropic fournit des skills pour **créer et modifier** : des tableurs **Excel**, des documents **Word**, des présentations **PowerPoint** et des **PDF**. Ils se déclenchent automatiquement quand vous demandez un fichier de ce type — par exemple « fais-moi un tableau de suivi en Excel ». Vous n’avez rien à régler.\n\n## Les autres origines\n\nDans **Customize › Skills**, les skills sont rangés par provenance :\n\n- **Created by you** : ceux que vous avez créés ;\n- **From your organization** : ceux qu’un propriétaire d’organisation a déployés (Team, Enterprise) ;\n- **Shared with you** : ceux qu’un collègue vous a partagés ;\n- **From Anthropic & Partners** : ceux d’Anthropic et de ses partenaires, souvent liés à un connecteur.\n\nL’onglet **Discover** liste ceux que vous pouvez ajouter.\n\n## Un dépôt d’exemples\n\nAnthropic publie un dépôt public d’exemples de skills (documents, création, communication, tests…). Beaucoup sont libres (licence Apache 2.0) ; les skills Word, PDF, PowerPoint et Excel sont consultables mais **ne sont pas libres**. Servez-vous-en pour *copier la structure*, pas le contenu.\n\n> ⚠️ Un skill que vous téléversez ou qu’on vous partage **n’est pas relu par Anthropic**. Lisez-le avant de l’activer (leçon « Sécurité »).","retenir":["Les skills Excel, Word, PowerPoint et PDF existent déjà et se déclenchent seuls.","**Customize › Skills** range les skills par origine ; **Discover** propose ceux à ajouter.","Un dépôt d’exemples d’Anthropic sert de modèle de structure."],"q":{"q":"Vous demandez « un tableau de suivi en Excel ». Que se passe-t-il ?","o":["Rien, il faut d’abord créer un skill","Le skill de documents Excel peut se déclencher tout seul","Claude refuse de créer des fichiers"],"b":1,"e":"Les skills de documents d’Anthropic sont conçus pour s’activer automatiquement quand vous demandez ce type de fichier."}},{"id":"activer-et-lancer","n":6,"niveau":"utiliser","ico":"🎛️","titre":"Activer un skill et le lancer","minutes":4,"resume":"Customize › Skills pour l’activer ; la barre oblique « / » pour le choisir vous-même.","corps":"## L’activer\n\n1. Ouvrez **Customize › Skills** (claude.ai ou appli de bureau).\n2. Dans **Your skills**, repérez le skill, ou cherchez-le dans **Discover**.\n3. Cliquez **Turn on** sur sa ligne, ou ouvrez-le et utilisez l’interrupteur en haut de sa page.\n\nUn skill désactivé existe toujours, mais Claude ne le propose plus : pratique pour « ranger » sans supprimer.\n\n## Le déclencher\n\n**Façon automatique** : décrivez votre tâche normalement. Si elle ressemble à la description d’un skill activé, Claude le charge. Vous le voyez dans sa réflexion (le texte « en train de réfléchir »), qui cite le skill utilisé.\n\n**Façon manuelle** : tapez `/` dans la zone de message et choisissez le skill dans la liste. Utile quand vous voulez *être sûr·e* qu’il sert, ou quand vous testez.\n\n> 💡 Même sans `/`, vous pouvez le nommer : « Utilise mon skill de compte rendu pour ces notes. »\n\n## Plusieurs skills dans une conversation\n\nClaude peut en utiliser **plus d’un** : par exemple un skill de relecture puis le skill de document Word pour livrer le résultat. Mieux vaut plusieurs petits skills ciblés qu’un énorme skill qui fait tout.\n\n## Retirer ou modifier\n\nDans **Customize › Skills**, on peut désactiver, modifier ou supprimer un skill qu’on a créé. Pour une modification, on peut ouvrir le fichier à côté de la conversation, sélectionner un passage et demander à Claude de le réécrire.","retenir":["On active un skill dans Customize › Skills.","Il se déclenche seul, ou à la main avec `/` (ou en le nommant).","Plusieurs petits skills valent mieux qu’un seul géant."],"q":{"q":"Comment forcer l’usage d’un skill précis dans une conversation ?","o":["Redémarrer l’appli","Taper « / » puis le choisir, ou le nommer dans la demande","Demander à un administrateur"],"b":1,"e":"Les deux gestes (menu « / » ou citation du nom) désignent le skill sans attendre que Claude le devine."}},{"id":"skill-projet-connecteur-plugin","n":7,"niveau":"utiliser","ico":"🧭","titre":"Skill, projet, connecteur, plugin : lequel choisir ?","minutes":5,"resume":"Quatre outils qui se ressemblent mais ne servent pas à la même chose.","corps":"On confond souvent ces quatre outils. Voici comment les distinguer **par la question qu’on se pose**.\n\n| Votre besoin | L’outil | Pourquoi |\n|---|---|---|\n| « Que Claude suive *ma méthode* pour cette tâche, chaque fois » | **Skill** | Il se charge quand la tâche correspond |\n| « Que Claude ait *ces documents sous la main* dans tout ce projet » | **Projet** | Le contenu est présent dans toutes les conversations du projet |\n| « Que Claude *lise ma messagerie / mon agenda / mon drive* » | **Connecteur** | Il donne un accès à un service, en direct |\n| « Installer *d’un coup* plusieurs skills et un connecteur » | **Plugin** | Un paquet qui réunit skills, connecteurs, commandes |\n| « Que Claude m’écrive toujours comme ça, **partout** » | **Préférences** | Valables pour toutes les conversations |\n\n## Les cas qui trompent\n\n- **Une procédure + des données en direct** : le *connecteur* apporte les données, le *skill* explique comment s’en servir (quel dossier, quelle étiquette, quel modèle). Les deux se complètent.\n- **Une consigne valable pour tout** (« tutoie-moi », « réponds en français ») : ce n’est pas un skill. Un skill ne se charge que si la tâche correspond ; pour tout le reste, mettez-la dans vos préférences.\n- **Une tâche faite une seule fois** : parlez-en simplement à Claude dans la conversation.\n\n> 💡 **Règle de pouce** : le skill répond à « *comment faire cette tâche* », le projet à « *de quoi tenir compte* », le connecteur à « *où aller chercher* ».","retenir":["Skill = une méthode pour une tâche récurrente.","Projet = un fond documentaire toujours présent.","Connecteur = un accès à un service ; le skill peut en expliquer l’usage.","Plugin = un paquet qui regroupe skills et connecteurs."],"q":{"q":"Vous voulez que Claude consulte chaque matin votre agenda. Quel outil lui en donne l’accès ?","o":["Un skill","Un connecteur","Un projet"],"b":1,"e":"Seul un connecteur donne accès à un service en direct. Un skill peut ensuite lui apprendre comment présenter ce qu’il y trouve."}},{"id":"securite","n":8,"niveau":"utiliser","ico":"🛡️","titre":"Sécurité : lire avant d’activer","minutes":5,"resume":"Un skill est du texte qui dirige Claude, parfois du code qu’il lance : on le traite comme un logiciel.","corps":"Un skill donne des **instructions** à Claude et peut contenir des **scripts** qu’il exécute. Un skill malveillant pourrait donc lui faire envoyer des données ailleurs, ou utiliser ses outils autrement que ne le dit sa description. Anthropic le dit clairement : **traitez un skill comme l’installation d’un logiciel**.\n\n## Ce que dit la documentation\n\n- Les skills qu’on **vous partage** ou que **vous téléversez** ne sont **pas relus par Anthropic**.\n- N’utilisez que des skills que vous avez écrits, ou venant d’Anthropic ou d’une source de confiance.\n- Un skill qui **va chercher du contenu sur Internet** est plus risqué : ce contenu peut contenir des instructions piégées, et un skill honnête peut le devenir si ce qu’il consulte change.\n\n## La relecture en 5 minutes\n\nAvant d’activer un skill reçu, ouvrez **tous** ses fichiers et cherchez :\n\n1. des **adresses web** ou des envois vers l’extérieur que la description n’explique pas ;\n2. des **scripts** (dossier `scripts/`) : que font-ils vraiment ?\n3. des phrases qui disent à Claude de **cacher** quelque chose, d’**ignorer** vos consignes ou de **ne pas vous le dire** ;\n4. des **demandes d’accès** sans rapport avec la tâche (vos fichiers, vos mails) ;\n5. une **description qui ne correspond pas** au contenu.\n\nL’onglet **Vérifier** de l’atelier détecte les clés refusées et les secrets visibles ; il **ne remplace pas** votre lecture.\n\n## Et pour vos propres skills\n\n> ⚠️ **Ne mettez jamais de mot de passe, de clé ou d’identifiant dans un skill** : tous ceux qui le reçoivent le lisent. Pour atteindre un service, passez par un connecteur : chacun s’y connecte avec son compte.\n\n> ⚠️ **Pas de données personnelles de bénéficiaires** (noms, situations) dans un skill : ce n’est pas un endroit de stockage, et il se partage.","retenir":["Un skill partagé n’est pas vérifié par Anthropic : on le lit avant de l’activer.","Méfiance accrue pour ceux qui consultent Internet ou lancent des scripts.","Aucun secret, aucune donnée personnelle dans un skill."],"q":{"q":"Un collègue vous envoie un skill « super pratique » contenant un script. Que faites-vous ?","o":["Je l’active, il vient d’un collègue","J’ouvre tous les fichiers et je lis le script avant de l’activer","Je vérifie seulement le nom du dossier"],"b":1,"e":"Un skill reçu n’est pas relu par Anthropic. Les instructions et les scripts agissent avec les accès de Claude : on lit tout avant d’activer."}},{"id":"quand-ca-ne-se-declenche-pas","n":9,"niveau":"utiliser","ico":"🩺","titre":"Quand le skill ne se déclenche pas","minutes":5,"resume":"Le diagnostic en six questions, du plus fréquent au plus rare.","corps":"Votre skill est activé, mais Claude répond comme s’il n’existait pas. Voici l’ordre dans lequel chercher, du plus fréquent au plus rare.\n\n1. **La description est-elle assez précise ?** Contient-elle les *mots que vous employez réellement* ? Une description qui dit « aide à rédiger » ne se déclenchera pas pour « fais-moi un compte rendu ». Ajoutez une phrase « À utiliser quand… » avec vos formulations.\n2. **Le skill est-il bien activé ?** Customize › Skills : l’interrupteur est-il allumé ?\n3. **L’en-tête est-il lisible ?** Un `description:` qui contient un deux-points non protégé par des guillemets rend l’en-tête invalide : le skill est alors chargé *sans description*. L’onglet **Vérifier** repère ce piège.\n4. **Le fichier a-t-il été téléversé correctement ?** Le dossier du skill doit être *la racine* du `.zip` (pas le fichier `SKILL.md` seul).\n5. **La demande ressemble-t-elle vraiment à la description ?** Essayez une formulation plus proche, ou lancez le skill avec `/` pour vérifier qu’il fonctionne en lui-même.\n6. **Y a-t-il trop de skills ?** Dans Claude Code, si la liste est très longue, certaines descriptions sont raccourcies, et les mots-clés peuvent disparaître.\n\n## Dans l’autre sens : il se déclenche trop\n\nRendez la description **plus précise**, ou — dans Claude Code — réservez-le à l’usage manuel avec `disable-model-invocation: true`.\n\n## Quand Claude commence bien, puis oublie\n\nUne consigne qui doit **toujours** être respectée n’est pas un bon candidat pour un skill seul : en Claude Code, on peut la confier à un « hook ». Sinon, formulez-la pour toute la tâche (« Relis après *chaque* modification ») et placez les règles essentielles **en haut** du fichier : dans Claude Code, quand une longue conversation est résumée, seul le début d’un skill est conservé.","retenir":["D’abord la description (mots employés, « quand utiliser »), puis l’interrupteur, puis l’en-tête, puis le zip.","Lancer avec `/` sépare « le skill est cassé » de « il n’est pas choisi ».","Trop de déclenchements : préciser la description."],"q":{"q":"Votre `description` contient « Résume : les points clés ». Pourquoi est-ce risqué ?","o":["Le mot « résume » est réservé","Un deux-points sans guillemets peut invalider l’en-tête YAML","La description est trop courte"],"b":1,"e":"Dans un en-tête YAML, une valeur qui contient « : » doit être entourée de guillemets, sinon l’en-tête est illisible et le skill perd sa description."}},{"id":"skills-au-quotidien","n":10,"niveau":"utiliser","ico":"🌟","titre":"Cinq usages concrets, du plus simple au plus fin","minutes":5,"resume":"Mail, compte rendu, relecture, préparation, analyse : à quoi ressemblent de vrais skills.","corps":"Un skill se juge à ce qu’il épargne. Cinq exemples réels, que vous trouverez écrits dans la **bibliothèque** de cette appli.\n\n## 1. Un mail dans votre ton\n*Skill de style.* Vous décrivez une fois votre façon d’écrire (courtois, direct, tutoiement ou vouvoiement, longueur). Ensuite, « réponds à ce mail » donne un texte qui vous ressemble.\n\n## 2. Un compte rendu en format fixe\n*Skill de format.* Résumé, décisions, actions « qui, quoi, pour quand ». Même structure pour tout le monde dans l’équipe.\n\n## 3. Une relecture qui ne réécrit pas\n*Skill de méthode.* Corriger les fautes en **gardant votre voix**, et lister ce qui a changé. La différence avec un simple « corrige » : la règle « ne reformule pas » est écrite une fois pour toutes.\n\n## 4. Une préparation d’atelier\n*Skill avec modèle.* Objectifs, déroulé minuté, matériel, questions de bilan : un modèle à remplir que Claude adapte à votre public.\n\n## 5. Une analyse avec un fichier de référence\n*Skill avec ressources.* Décrypter une offre d’emploi avec une grille de signaux d’alerte rangée dans un fichier annexe que Claude n’ouvre que pour ça.\n\n## Ce qui rend un usage réussi\n\n- **Une tâche précise**, pas « aider au travail ».\n- **Un résultat que vous savez juger** : vous lisez, vous corrigez.\n- **Des données propres** : on colle le texte à traiter, pas les noms des personnes.\n\n> 💡 Le meilleur skill est souvent le plus modeste : une dizaine de lignes qui évitent de se répéter.","retenir":["Skill de style, de format, de méthode, avec modèle, avec ressources : cinq familles d’usage.","On vise une tâche précise dont on sait juger le résultat.","Les exemples de la bibliothèque se copient et s’adaptent."],"q":{"q":"Lequel est un bon candidat pour un skill ?","o":["Une question posée une seule fois","Une relecture que vous faites chaque semaine, avec les mêmes règles","Un mot de passe à retenir"],"b":1,"e":"Un skill vaut pour une tâche **récurrente** aux règles stables. Un mot de passe n’a jamais sa place dans un skill."}},{"id":"anatomie-d-un-skill","n":11,"niveau":"creer","ico":"🔬","titre":"Anatomie d’un SKILL.md","minutes":6,"resume":"Un en-tête de deux lignes, puis des instructions — le tout dans un dossier qui porte le même nom.","corps":"## Le dossier\n\n```\ncompte-rendu-d-atelier/\n├── SKILL.md            ← obligatoire\n├── references/         ← facultatif : lectures annexes\n├── assets/             ← facultatif : modèles à remplir\n└── scripts/            ← facultatif : programmes à exécuter\n```\n\nLe **nom du dossier** doit être **le même** que le champ `name` du fichier.\n\n## Le fichier\n\n````markdown\n---\nname: compte-rendu-d-atelier\ndescription: \"Transforme des notes brutes en compte rendu d'atelier. À utiliser quand l'utilisateur colle des notes de réunion ou d'atelier.\"\n---\n\n# Compte rendu d'atelier\n\n1. Résume en trois lignes.\n2. Liste les décisions.\n3. Termine par un tableau : qui, quoi, pour quand.\n````\n\nDeux zones, séparées par des lignes `---` :\n\n- **L’en-tête** (entre les deux `---`) : `name` et `description`. C’est ce que Claude lit toujours.\n- **Le corps** : les instructions, en texte ordinaire, avec titres, listes, exemples.\n\n## Les règles du nom\n\n- **64 signes au plus**, en **minuscules, chiffres et tirets** uniquement (pas d’accent, d’espace, ni de majuscule) ;\n- **pas de balise XML** ;\n- **pas les mots réservés** « anthropic » et « claude » ;\n- le même que le dossier.\n\n*Astuce : un verbe + un objet décrit mieux qu’un nom vague* — `rediger-un-compte-rendu` plutôt que `outil-reunions`.\n\n## Les règles de la description\n\nElle doit être **non vide**, de **1 024 signes au plus**, sans balise XML, et dire **ce que fait le skill ET quand l’utiliser**.\n\n## Ce que le corps peut contenir\n\nDes étapes, des exemples d’entrée et de sortie, un modèle de présentation, des règles et cas particuliers. Visez **moins de 500 lignes** ; au-delà, on découpe en fichiers annexes (voir « Plusieurs fichiers »).\n\n> ⚠️ Les guillemets autour de la description ne sont pas décoratifs : ils protègent les « : » et les « # » qu’elle peut contenir.","retenir":["Un dossier, un `SKILL.md`, un nom identique.","En-tête : `name` + `description`. Corps : instructions.","Nom en minuscules, chiffres et tirets, 64 signes au plus.","Description : ce que ça fait + quand, 1 024 signes au plus."],"q":{"q":"Lequel de ces noms de skill est **valide** ?","o":["Compte Rendu Atelier","claude-compte-rendu","compte-rendu-d-atelier","compte_rendu_atelier"],"b":2,"e":"Les majuscules, espaces et soulignements sont refusés ; « claude » est un mot réservé. Seuls minuscules, chiffres et tirets sont permis."}},{"id":"la-description","n":12,"niveau":"creer","ico":"🎯","titre":"Écrire une bonne description","minutes":6,"resume":"Ce que ça fait, quand s’en servir, avec les mots que vous diriez — à la troisième personne.","corps":"La description est **la phrase qui décide de tout**. Claude y compare votre demande, parmi parfois plus de cent skills.\n\n## La recette en deux phrases\n\n1. **Ce que fait le skill** (verbe à la 3ᵉ personne : « Rédige… », « Analyse… »).\n2. **Quand l’utiliser** (« À utiliser quand… » + les situations et mots clés).\n\n## Avant / après\n\n| ❌ Trop vague | ✅ Précise |\n|---|---|\n| « Aide avec les mails » | « Rédige des mails professionnels courts et courtois. À utiliser quand l’utilisateur demande un mail, une relance ou une réponse à un client. » |\n| « Traite les documents » | « Extrait les dates et les actions d’un compte rendu. À utiliser quand l’utilisateur colle des notes de réunion. » |\n| « Utile pour les CV » | « Relit un CV et signale ce qui manque pour une offre donnée, sans rien inventer. À utiliser quand l’utilisateur partage un CV et une offre. » |\n\n## Les cinq règles\n\n1. **Troisième personne.** La description est insérée dans les consignes de Claude : « J’aide à… » ou « Vous pouvez… » brouille la sélection.\n2. **Les mots de l’utilisateur.** Mettez les termes qu’on dit vraiment (« compte rendu », « relance », « CR ») plutôt que le vocabulaire de spécialiste.\n3. **Le plus important d’abord.** Dans Claude Code, la liste est coupée à 1 536 signes par skill ; une aide de claude.ai cite même une limite plus basse.\n4. **Distincte des autres skills.** Deux skills aux descriptions voisines se concurrencent.\n5. **Entre guillemets si elle contient « : » ou « # ».** Sinon l’en-tête devient invalide.\n\n> 💡 **Test des trois phrases** : écrivez trois demandes réelles que vous feriez. La description devrait « sonner » pour chacune.","retenir":["Ce que ça fait + quand l’utiliser, à la troisième personne.","Des mots concrets, l’essentiel au début.","Distincte de vos autres skills ; entre guillemets si elle contient « : »."],"q":{"q":"Quelle description sera la mieux choisie ?","o":["« Je peux t’aider à écrire des mails. »","« Mails. »","« Rédige des mails professionnels courts. À utiliser quand l’utilisateur demande un mail ou une relance. »"],"b":2,"e":"La bonne dit ce que fait le skill ET quand l’utiliser, à la troisième personne, avec les mots de la demande."}},{"id":"les-instructions","n":13,"niveau":"creer","ico":"✍️","titre":"Écrire les instructions","minutes":7,"resume":"Court, concret, avec un exemple — et plus de liberté là où plusieurs façons de faire sont bonnes.","corps":"Le corps du `SKILL.md` est lu **en entier** dès que le skill est choisi, et il partage la place avec la conversation. Chaque ligne doit mériter sa place.\n\n## Le principe : ne dire que ce que Claude ne sait pas\n\nClaude sait déjà ce qu’est un compte rendu, un mail ou un CV. Ne lui expliquez pas. Dites-lui **votre** façon de faire : votre format, vos règles, vos exceptions. Pour chaque paragraphe, demandez-vous : « Claude en a-t-il vraiment besoin ? »\n\n## Régler la liberté selon le risque\n\n| Situation | Consigne | Exemple |\n|---|---|---|\n| Plusieurs bonnes façons de faire | **Libre** : un cap, des critères | « Relis pour la clarté et le ton » |\n| Une façon préférée, un peu de variation | **Cadrée** : un modèle à adapter | « Utilise ce plan, adapte-le au public » |\n| Opération fragile, ordre imposé | **Stricte** : une séquence exacte | « Suis ces étapes dans cet ordre, sans en sauter » |\n\nImage d’Anthropic : sur un **pont étroit entre deux falaises**, on donne des garde-fous précis ; dans un **champ ouvert**, on indique la direction.\n\n## Les ingrédients qui marchent\n\n- **Des étapes numérotées** pour une procédure.\n- **Un exemple d’entrée et de sortie** : il dit le format mieux que trois paragraphes.\n- **Un modèle** quand la forme compte (plan, tableau).\n- **Une vérification avant de rendre** (« Relis : chaque action a-t-elle un responsable ? »). Une boucle « produire, vérifier, corriger » améliore nettement les résultats.\n- **Un vocabulaire constant** : choisissez « compte rendu » *ou* « CR », pas les deux.\n- **Une méthode par défaut**, avec une seule exception, plutôt que cinq options.\n\n## Ce qu’on évite\n\n- Les dates qui vieilliront (« avant 2025, faire… »).\n- Les chemins avec antislash : toujours `references/guide.md`.\n- Les explications de ce que Claude sait déjà.","retenir":["Dites ce que Claude ignore : votre format, vos règles.","Moins de liberté quand l’erreur coûte cher, plus quand plusieurs voies sont bonnes.","Étapes, exemple, vérification : le trio gagnant."],"q":{"q":"Quel passage est **superflu** dans un skill de compte rendu ?","o":["« Termine par un tableau qui, quoi, pour quand. »","« Un compte rendu est un document qui résume une réunion passée. »","« Relis : chaque action a-t-elle un responsable ? »"],"b":1,"e":"Claude sait ce qu’est un compte rendu. Les deux autres lignes disent votre façon de faire, ce qu’il ne peut pas deviner."}},{"id":"emballer-et-tester","n":14,"niveau":"creer","ico":"📦","titre":"Emballer et tester","minutes":6,"resume":"Le zip a un piège (le dossier en racine), le test se fait en vraies demandes.","corps":"## Emballer : le .zip\n\nPour ajouter un skill à claude.ai, on téléverse un **fichier .zip**. Piège classique : le zip doit contenir **le dossier du skill lui-même** à sa racine.\n\n```\nmon-skill.zip\n└── mon-skill/\n    ├── SKILL.md\n    └── references/\n```\n\nUn `SKILL.md` posé directement à la racine du zip **n’est pas reconnu**. Sur Mac ou Linux : `zip -r mon-skill.zip mon-skill/` depuis le dossier parent. Sous Windows, compressez *le dossier* (clic droit), pas ses fichiers un par un.\n\n> 💡 Les boutons « ⬇ Zip » de la bibliothèque et de l’atelier fabriquent un zip correct : le dossier est à la racine, le nom correspond.\n\n## Vérifier avant de téléverser\n\n1. Le **nom** du dossier = le champ `name` ;\n2. la **description** dit quoi + quand ;\n3. tous les fichiers cités **existent** ;\n4. l’en-tête est **valide** (l’onglet *Vérifier* de l’atelier fait ces contrôles ; Anthropic publie aussi un outil en ligne de commande, `skills-ref validate`, et `claude plugin validate` pour Claude Code).\n\n## Tester : de vraies demandes\n\nActivez le skill, puis essayez **trois demandes** :\n\n1. une qui **doit** le déclencher, formulée comme vous parlez ;\n2. une autre formulation de la même chose ;\n3. une qui **ne doit pas** le déclencher.\n\nRegardez la réflexion de Claude pour voir s’il charge le skill. Si non : retouchez la description. Si oui mais le résultat déçoit : retouchez les instructions. **Un changement à la fois**, puis on retente.\n\n> ⚠️ Testez avec des textes **sans données personnelles**.","retenir":["Le zip contient le **dossier** du skill, pas seulement `SKILL.md`.","Le nom du dossier est identique à `name`.","Trois essais : un qui déclenche, une reformulation, un qui ne doit pas déclencher."],"q":{"q":"Vous zippez uniquement le fichier `SKILL.md`. Que se passe-t-il au téléversement ?","o":["Tout fonctionne","Il n’est pas reconnu : il faut zipper le dossier qui le contient","Claude le corrige automatiquement"],"b":1,"e":"Claude cherche `<nom-du-skill>/SKILL.md` dans l’archive. Sans le dossier à la racine, rien n’est trouvé."}},{"id":"iterer-avec-claude","n":15,"niveau":"creer","ico":"🔁","titre":"Améliorer son skill avec Claude","minutes":6,"resume":"Un Claude vous aide à écrire, un autre l’essaie : on corrige d’après ce qui s’est vraiment passé.","corps":"Anthropic recommande une méthode qui marche très bien sans programmer : **deux Claude** qui jouent des rôles différents.\n\n- **Claude A** — l’expert : il vous aide à écrire et à améliorer le skill.\n- **Claude B** — l’utilisateur : une conversation neuve où le skill est activé, qui fait le vrai travail.\n\n## Créer à partir d’un travail réussi\n\n1. **Faites d’abord la tâche avec Claude A**, sans skill, en le guidant. Vous donnez du contexte, vous corrigez : tout cela est la matière du skill.\n2. Quand c’est réussi, demandez : « *Transforme ce que nous venons de faire en skill* : garde la structure, mes règles et la façon de présenter. »\n3. **Faites élaguer** : « Retire ce que tu sais déjà expliquer. »\n4. **Essayez avec Claude B** sur un cas voisin.\n\n## Corriger d’après l’observation\n\nRegardez Claude B travailler. Ne devinez pas : **notez ce qui coince**.\n\n- Il oublie une règle ? → Elle n’est peut-être pas assez en évidence. Demandez à Claude A : « Claude B a oublié de filtrer les doublons. Comment le rendre plus visible ? »\n- Il lit les fichiers dans un drôle d’ordre ? → La structure n’est pas assez claire.\n- Il n’ouvre jamais un fichier annexe ? → Il est inutile, ou mal annoncé.\n\nChaque tour améliore le skill **d’après le comportement réel**, pas d’après vos suppositions.\n\n## Faire relire par un humain\n\nFaites essayer le skill à un collègue : se déclenche-t-il quand il le faut ? Que manque-t-il ? Ses surprises valent plus que les vôtres.\n\n> 💡 Claude connaît le format des skills : il n’y a pas besoin d’un « prompt spécial » pour qu’il en écrive. Demandez simplement : « Écris un skill qui… ».","retenir":["Claude A écrit et améliore, Claude B essaie.","On part d’un travail réussi, puis on élague.","On corrige d’après ce qu’on a vu, pas d’après ce qu’on imagine."],"q":{"q":"Claude B n’applique pas votre règle de filtrage. Que faire ?","o":["Rajouter dix règles voisines","Demander à Claude A comment rendre cette règle plus visible, puis réessayer","Abandonner le skill"],"b":1,"e":"On revient à Claude A avec l’observation précise, on rend la règle plus saillante, et on retente avec Claude B."}},{"id":"plusieurs-fichiers","n":16,"niveau":"maitriser","ico":"🗂️","titre":"Plusieurs fichiers : la divulgation progressive","minutes":6,"resume":"Un SKILL.md léger qui renvoie à des fichiers lus seulement au besoin.","corps":"Quand un skill grossit, on ne remplit pas le `SKILL.md` : on le **découpe**. Le fichier principal reste une table des matières ; le détail vit à côté.\n\n```\nanalyser-une-offre/\n├── SKILL.md              ← le plan, court\n├── references/\n│   ├── signaux-alerte.md ← lu seulement pour repérer les pièges\n│   └── glossaire.md\n└── assets/\n    └── fiche-modele.md   ← un modèle à remplir\n```\n\n## Pourquoi ça marche\n\nLes fichiers annexes **ne coûtent rien** tant que Claude ne les ouvre pas. Un skill peut donc contenir une documentation très complète sans alourdir la conversation. Si la tâche du jour n’a pas besoin du glossaire, il reste fermé.\n\n## Trois façons de découper\n\n- **Guide + références** : le `SKILL.md` donne l’essentiel, et dit « pour les cas X, voir `references/x.md` ».\n- **Par domaine** : un fichier par sujet (finance, formation, droit…), et Claude n’ouvre que le bon.\n- **Détails conditionnels** : le cas courant dans le corps, le cas rare dans un fichier annexe.\n\n## Les règles à respecter\n\n1. **Un seul niveau.** Tous les fichiers sont cités directement par `SKILL.md`. Si `a.md` renvoie à `b.md`, Claude risque de ne lire qu’un extrait de `b.md`.\n2. **Citer chaque fichier à l’endroit où il sert** : « Pour les signaux d’alerte, lis `references/signaux-alerte.md`. »\n3. **Une table des matières en tête** d’un fichier de plus de 100 lignes, pour qu’on en voie l’étendue même s’il n’est lu qu’en partie.\n4. **Des noms parlants** : `signaux-alerte.md`, pas `doc2.md`.\n5. **Des barres obliques** : `references/guide.md`, jamais d’antislash.","retenir":["`SKILL.md` = sommaire ; le détail est dans `references/`, `assets/`, `scripts/`.","Un fichier non ouvert ne coûte rien.","Toujours un seul niveau de renvoi, avec des noms parlants."],"q":{"q":"Pourquoi garder les fichiers de référence à un seul niveau sous `SKILL.md` ?","o":["Pour que le zip soit plus petit","Parce que Claude risque de ne lire qu’un extrait d’un fichier cité par un autre fichier","Parce que les sous-dossiers sont interdits"],"b":1,"e":"Quand un fichier renvoie vers un autre, Claude peut se contenter d’un aperçu. Tout citer depuis `SKILL.md` garantit des lectures complètes."}},{"id":"les-scripts","n":17,"niveau":"maitriser","ico":"⚙️","titre":"Les scripts : du code que Claude lance","minutes":7,"resume":"Pour ce qui doit être exact à chaque fois — avec les limites de chaque endroit.","corps":"Une instruction demande à Claude de *comprendre*. Un **script** lui permet de *calculer exactement* : compter, convertir, valider, générer un fichier. Pour une opération fragile ou qui doit être identique à chaque fois, un script bat une consigne.\n\n## Ce que ça apporte\n\n- **Fiabilité** : le résultat ne dépend pas de l’humeur du modèle.\n- **Économie** : le code d’un script ne rentre pas dans la conversation ; seul son **résultat** y entre.\n- **Constance** : même sortie à chaque fois.\n\n## Exécuter ou lire ?\n\nDites clairement à Claude ce qu’il doit faire du fichier :\n\n- « **Lance** `scripts/reperer.py` pour détecter les e-mails » → il l’exécute.\n- « **Lis** `scripts/reperer.py` pour la logique de détection » → il le prend comme référence.\n\nL’exécution est presque toujours préférable.\n\n## Où ça marche, et avec quoi\n\n| Endroit | Réseau | Installer des paquets |\n|---|---|---|\n| claude.ai | Selon les réglages (complet, partiel, aucun) | Oui (npm, PyPI) |\n| API | **Aucun** | **Non** : seulement ce qui est déjà installé |\n| Claude Code | Celui de votre ordinateur | Possible, mais à éviter globalement |\n\nÉcrivez des scripts qui n’utilisent que la **bibliothèque standard** quand c’est possible : ils marchent partout.\n\n## Les bonnes pratiques\n\n1. **Résoudre les erreurs, pas les renvoyer à Claude** : si un fichier manque, créez-le ou donnez un message clair.\n2. **Pas de « constantes magiques »** : justifiez chaque valeur par un commentaire.\n3. **Des messages précis** (« Champ 'date’ introuvable. Champs disponibles : … ») : Claude s’en sert pour corriger.\n4. **Planifier, valider, exécuter** pour les opérations lourdes : produire un plan, le valider par script, puis l’appliquer.\n5. **Citer le script avec son chemin** (`${CLAUDE_SKILL_DIR}/scripts/x.py` dans Claude Code et Cowork ; `scripts/x.py` en relatif sur claude.ai).\n\n> ⚠️ **Aucun mot de passe ni clé dans un script.** Pour atteindre un service, passez par un connecteur.","retenir":["Un script, c’est de la fiabilité et des économies de contexte.","On précise « lance » ou « lis ».","L’API n’a ni réseau ni installation : bibliothèque standard de préférence.","Jamais de secret dans un script."],"q":{"q":"Où un script **ne peut pas** installer de nouveau paquet pendant son exécution ?","o":["Dans Claude Code","Dans l’API","Sur claude.ai"],"b":1,"e":"Dans l’API, les skills tournent dans un conteneur sans réseau et sans installation de paquets. Sur claude.ai, l’installation depuis npm ou PyPI est possible."}},{"id":"claude-code-avance","n":18,"niveau":"maitriser","ico":"💻","titre":"Claude Code : les réglages avancés","minutes":8,"resume":"Emplacement, lancement manuel, arguments, sous-agent, injection de commande — et ce qui n’existe nulle part ailleurs.","corps":"**Claude Code** (l’outil en ligne de commande d’Anthropic) lit les skills dans des **dossiers** et offre des réglages en plus.\n\n## Où ils vivent\n\n| Emplacement | Portée |\n|---|---|\n| `~/.claude/skills/<nom>/SKILL.md` | Tous vos projets, sur cet ordinateur |\n| `.claude/skills/<nom>/SKILL.md` | Ce projet (à valider dans git pour le partager) |\n| Dans un **plugin** | Là où le plugin est activé, sous la forme `/plugin:skill` |\n| Géré par l’organisation | Tous les utilisateurs de l’organisation |\n\nLes modifications d’un `SKILL.md` sont prises en compte **dans la session**, sans redémarrer.\n\n## Les clés d’en-tête en plus\n\n| Clé | Effet |\n|---|---|\n| `disable-model-invocation: true` | Claude ne le lance **jamais** seul : vous seul·e (avec `/nom`) |\n| `user-invocable: false` | Invisible dans le menu `/` : seul Claude le lance |\n| `argument-hint`, `arguments` | Donnent un indice et des noms aux arguments |\n| `allowed-tools` | Outils utilisables sans demander pendant ce tour |\n| `context: fork` + `agent` | Lance le skill dans un **sous-agent** à part |\n| `model`, `effort` | Réglages pour ce tour |\n| `paths` | Limite l’activation automatique à certains fichiers |\n| `when_to_use` | Phrases de déclenchement en plus de `description` |\n\n> ⚠️ **Ces clés n’existent que dans Claude Code.** Sur claude.ai et dans l’API, une clé autre que `name`, `description`, `license`, `compatibility`, `metadata` et `allowed-tools` fait **échouer** le téléversement.\n\n## Arguments et commandes injectées\n\nDans le corps, `$ARGUMENTS` est remplacé par ce que vous tapez après `/nom`. `$0`, `$1`… désignent les arguments un à un. Une ligne comme ``!`git diff HEAD` `` est **exécutée avant** que Claude lise le skill, et sa sortie prend sa place.\n\n## Ce qui est conservé\n\nUne fois lancé, le texte du skill reste dans la conversation. Quand une longue conversation est résumée, seuls les **5 000 premiers jetons** de chaque skill sont gardés (dans une limite totale de 25 000) : placez les règles essentielles **en haut**.","retenir":["Dossiers personnels, projet, plugin : trois niveaux de portée.","`disable-model-invocation` pour réserver un skill à l’usage manuel.","Ces réglages sont propres à Claude Code et bloquent le téléversement ailleurs."],"q":{"q":"Vous mettez `disable-model-invocation: true` dans un skill, puis vous le téléversez sur claude.ai. Résultat ?","o":["Le skill ne se lance plus qu’à la main","Le téléversement est refusé : cette clé n’existe que dans Claude Code","La clé est ignorée sans erreur"],"b":1,"e":"Hors Claude Code, seules six clés sont acceptées ; toute autre provoque une erreur."}},{"id":"evaluer","n":19,"niveau":"maitriser","ico":"📊","titre":"Mesurer qu’un skill améliore vraiment le résultat","minutes":6,"resume":"Trois cas d’essai, un témoin sans skill, plusieurs modèles : on compare, on ne se fie pas à l’impression.","corps":"Trois essais réussis disent que le skill **se charge**. Ils ne disent pas qu’il **améliore** quoi que ce soit.\n\n## La démarche « évaluer d’abord »\n\n1. **Repérer le manque** : faites la tâche **sans** skill et notez où Claude se trompe ou oublie.\n2. **Écrire trois cas d’essai** qui reproduisent ces manques : la demande, et ce qu’on attend (« il garde mes chiffres », « il cite la source », « il propose trois options »).\n3. **Mesurer sans le skill** : c’est la ligne de base.\n4. **Écrire le minimum** d’instructions qui comble les manques.\n5. **Comparer** avec le skill, corriger, recommencer.\n\nOn évite ainsi de documenter des problèmes imaginaires.\n\n## Les outils\n\n- **skill-creator** (de la part d’Anthropic) lance vos demandes d’essai, montre les résultats, aide à retoucher. Dans Claude Code et Cowork, il compare aussi **avec / sans skill** en parallèle (taux de réussite, temps, jetons), peut faire une comparaison à l’aveugle entre deux versions, et mesure si la description déclenche sur les bonnes demandes.\n- **Dans un plugin** : `claude plugin eval` note des cas écrits par vous.\n\n## Tester sur plusieurs modèles\n\nUn skill se comporte différemment selon le modèle :\n\n- un modèle **rapide et économique** : y a-t-il assez de guidage ?\n- un modèle **équilibré** : est-ce clair et efficace ?\n- un modèle **puissant** : évite-t-on de trop expliquer ?\n\n## Observer ce que Claude fait vraiment\n\nUn fichier annexe jamais ouvert est peut-être inutile. Un fichier relu à chaque fois devrait peut-être remonter dans le corps. Une règle oubliée doit être plus visible.","retenir":["On mesure avec un témoin sans skill, sur trois cas au moins.","skill-creator et `claude plugin eval` automatisent la comparaison.","On teste sur plusieurs modèles et on regarde comment Claude navigue dans les fichiers."],"q":{"q":"Pourquoi mesurer d’abord **sans** le skill ?","o":["Pour économiser du temps de calcul","Pour avoir une base de comparaison et ne pas corriger un problème imaginaire","Parce que le skill est facultatif"],"b":1,"e":"Sans témoin, on ne sait pas si le skill améliore quoi que ce soit. La ligne de base révèle aussi les vrais manques à combler."}},{"id":"partager-et-gouverner","n":20,"niveau":"maitriser","ico":"🤝","titre":"Partager, regrouper, gouverner","minutes":6,"resume":"Du zip transmis à un collègue jusqu’au plugin d’équipe — et le standard ouvert qui garantit la portabilité.","corps":"Un skill utile à une personne l’est souvent à une équipe. Chaque endroit a sa façon de partager.\n\n## Selon l’endroit\n\n| Où | Comment partager |\n|---|---|\n| **claude.ai** (Team, Enterprise) | Bouton **Share** (personnes choisies) ou **Publish to org** (toute l’organisation), depuis Customize › Skills |\n| **claude.ai** (individuel) | Envoyer le `.zip` ; chacun le téléverse |\n| **Claude Code** | Valider `.claude/skills/` dans git, ou créer un **plugin** |\n| **API** | Les skills téléversés sont accessibles à tout l’espace de travail |\n| **Organisation** | Déploiement centralisé par les administrateurs |\n\n## Le plugin : regrouper\n\nQuand plusieurs skills, ou un skill et le connecteur qu’il utilise, doivent s’installer **ensemble**, on les met dans un **plugin**. Pour une équipe, c’est l’unité de déploiement.\n\n## Un format ouvert\n\nLes skills suivent la spécification **Agent Skills**, un standard ouvert : un skill bien écrit pour Claude peut fonctionner dans d’autres outils qui l’adoptent. Autre raison de s’en tenir aux clés standard et de garder le skill simple.\n\n## Ce qu’un administrateur doit prévoir\n\n- **Relire** avant de déployer : un skill reçu n’est pas relu par Anthropic.\n- **Ne pas y mettre de secret** ni de donnée de personnes.\n- **Nommer et décrire** de façon cohérente pour éviter les doublons.\n- **Mettre à jour** : un skill vieillit comme un document ; datez votre dernière relecture.\n\n> ⚠️ Un skill téléversé sur claude.ai **ne se retrouve pas tout seul** dans l’API, et inversement.","retenir":["Share / Publish to org sur Team et Enterprise ; zip à transmettre sinon.","Un plugin réunit skills et connecteurs.","Standard ouvert : restez sur les clés standard.","Relire, ne pas y mettre de secret, dater."],"q":{"q":"Vous voulez installer d’un coup trois skills et le connecteur qu’ils utilisent. Quel outil choisir ?","o":["Un projet","Une préférence","Un plugin"],"b":2,"e":"Un plugin est un paquet qui regroupe skills, connecteurs, commandes et agents, et s’installe comme une unité."}}],"atelier":{"exemples":[{"id":"relance","ico":"✉️","titre":"Relancer un partenaire","tache":"Rédige une relance polie et courte pour un partenaire qui n'a pas répondu","quand":"l'utilisateur demande de relancer quelqu'un qui n'a pas répondu à un mail, une demande ou un devis","etapes":["Repérer à qui l'on écrit, ce qu'on attend et pour quand","Écrire un objet de six mots au plus","Rédiger : salutation, rappel en une phrase, demande, échéance, politesse"],"sortie":"Un mail de 100 mots au plus, avec son objet","regles":["Vouvoyer par défaut","Ne jamais inventer une date : écrire [à préciser]","Une seule demande par mail"],"ex_e":"Relance Mme Durand, elle n'a pas confirmé la salle du 12","ex_s":"Objet : Confirmation de la salle du 12 — Bonjour Madame Durand, je reviens vers vous au sujet de la salle du 12. Pouvez-vous me confirmer sa disponibilité d'ici jeudi ? Bien cordialement,","verifs":["L'objet dit le sujet et l'action","Il n'y a qu'une demande"]},{"id":"compte-rendu","ico":"📝","titre":"Compte rendu de séance","tache":"Transforme des notes de séance en compte rendu structuré","quand":"l'utilisateur colle des notes de réunion, d'atelier ou d'entretien d'équipe","etapes":["Lire les notes en entier","Résumer en trois lignes","Lister les décisions","Faire un tableau des actions : qui, quoi, pour quand"],"sortie":"Les rubriques Résumé, Décisions, Actions, Points en suspens","regles":["Ne rien ajouter qui ne soit dans les notes","Écrire « à définir » quand un responsable ou une date manque"],"ex_e":"Atelier CV jeudi, Sam prend la salle, Léa imprime les fiches avant mardi","ex_s":"Actions : Sam — Réserver la salle — à définir ; Léa — Imprimer les fiches — mardi","verifs":["Chaque action a un responsable et une échéance, ou « à définir »"]},{"id":"fiche-metier","ico":"💼","titre":"Fiche métier en cinq lignes","tache":"Résume un métier en une fiche de cinq lignes à partir d'un texte fourni","quand":"l'utilisateur colle la description d'un métier ou d'une formation et veut une fiche courte","etapes":["Repérer les missions, le cadre de travail et la formation d'accès","Écrire une ligne par rubrique","Signaler ce que le texte ne dit pas"],"sortie":"Cinq lignes : Missions, Où, Avec qui, Formation, Évolution","regles":["N'utiliser que le texte fourni","Écrire « non précisé » quand une rubrique manque"],"ex_e":"Un texte de présentation du métier d'auxiliaire de vie","ex_s":"Missions : aider au quotidien des personnes dépendantes. Où : au domicile. Formation : non précisé.","verifs":["Aucune information absente du texte"]}],"verifierExemple":"---\nname: Aide Claude\ndescription: Aide avec les documents : tout type\nallowed-tools: Bash\nmodel: sonnet\n---\nTu peux m'aider avec mes documents.\nFais de ton mieux.\n"},"astuces":{"themes":[{"id":"description","ico":"🎯","nom":"La description"},{"id":"instructions","ico":"✍️","nom":"Les instructions"},{"id":"test","ico":"🧪","nom":"Tester"},{"id":"securite","ico":"🛡️","nom":"Sécurité"},{"id":"quotidien","ico":"🌟","nom":"Au quotidien"},{"id":"pieges","ico":"⚠️","nom":"Pièges"}],"liste":[{"theme":"description","ico":"🗣️","t":"Écrivez avec les mots de la demande","d":"Mettez dans la description les mots que vous diriez vraiment (« compte rendu », « relance », « CR »). Claude compare votre demande à ces mots.","avant":"Aide à la rédaction de documents","apres":"Rédige un compte rendu à partir de notes. À utiliser quand l’utilisateur parle de compte rendu, CR ou relevé de décisions."},{"theme":"description","ico":"🧭","t":"Toujours deux moitiés : quoi + quand","d":"Une phrase pour ce que fait le skill, une phrase pour les situations où s’en servir. Sans la seconde, Claude doit deviner."},{"theme":"description","ico":"👤","t":"Troisième personne","d":"Écrivez « Rédige… », « Analyse… », pas « Je peux vous aider à… ». La description est insérée dans les consignes de Claude.","avant":"Je peux t’aider à relire tes mails","apres":"Relit un mail et propose des corrections. À utiliser quand l’utilisateur demande une relecture."},{"theme":"description","ico":"1️⃣","t":"L’essentiel dans la première phrase","d":"Dans Claude Code, la liste des skills est coupée à 1 536 signes par skill, et une aide de claude.ai cite une limite plus basse. Si l’on coupe la fin, la première phrase doit suffire."},{"theme":"description","ico":"💬","t":"Entre guillemets si elle contient « : »","d":"Un deux-points ou un dièse dans une description non protégée rend l’en-tête YAML invalide : le skill est alors chargé sans description. Entourez toute la valeur de guillemets doubles."},{"theme":"instructions","ico":"✂️","t":"Retirez ce que Claude sait déjà","d":"Inutile d’expliquer ce qu’est un mail ou un CV. Gardez votre format, vos règles, vos exceptions."},{"theme":"instructions","ico":"🔢","t":"Des étapes numérotées","d":"Une procédure en étapes est suivie plus fidèlement qu’un paragraphe. Une action par étape."},{"theme":"instructions","ico":"🖼️","t":"Montrez un exemple","d":"Une demande et le résultat attendu valent trois paragraphes de consigne. Deux ou trois exemples variés suffisent."},{"theme":"instructions","ico":"✅","t":"Ajoutez une vérification avant de rendre","d":"Une courte liste « Avant de rendre le travail » (rien d’inventé, chaque action a un responsable…) améliore le résultat, surtout pour les tâches à enjeu."},{"theme":"instructions","ico":"🚫","t":"Dites ce qu’il ne faut pas inventer","d":"« Ne devine pas une date : écris à définir. » Cette phrase évite l’erreur la plus coûteuse : le détail inventé qui a l’air vrai."},{"theme":"instructions","ico":"⚖️","t":"Une méthode par défaut, une seule exception","d":"Évitez « vous pouvez faire A, ou B, ou C ». Choisissez la méthode ordinaire, et donnez une seule échappatoire."},{"theme":"instructions","ico":"📌","t":"Les règles essentielles en haut","d":"Dans Claude Code, quand une longue conversation est résumée, seul le début de chaque skill est conservé. Placez en haut ce qui ne doit jamais être oublié."},{"theme":"test","ico":"3️⃣","t":"Trois essais : déclenche, reformulé, ne déclenche pas","d":"Essayez une demande qui doit lancer le skill, une autre formulation, et une demande voisine qui ne doit pas le lancer. Retouchez un seul élément à la fois."},{"theme":"test","ico":"🔎","t":"Lisez la réflexion de Claude","d":"Elle indique si le skill a été chargé. Si non, c’est la description ; si oui et que le résultat déçoit, ce sont les instructions."},{"theme":"test","ico":"🔀","t":"Lancez-le à la main avec « / »","d":"Cela sépare deux problèmes : « le skill est mal écrit » et « Claude ne le choisit pas »."},{"theme":"test","ico":"🧑‍🤝‍🧑","t":"Faites essayer par quelqu’un d’autre","d":"Vous connaissez trop bien votre skill. Un collègue formule autrement, et révèle ce qui manque."},{"theme":"securite","ico":"📖","t":"Lisez tout avant d’activer un skill reçu","d":"Instructions, scripts, adresses web. Un skill partagé n’est pas relu par Anthropic."},{"theme":"securite","ico":"🔑","t":"Jamais de secret dans un skill","d":"Ni mot de passe, ni clé, ni identifiant : tous ceux qui reçoivent le skill les lisent. Passez par un connecteur."},{"theme":"securite","ico":"🕶️","t":"Testez avec des textes anonymisés","d":"Tant que vous ne savez pas ce que produit le skill, collez des textes sans nom, adresse ni numéro. L’Anonymiseur du site le fait sur votre appareil."},{"theme":"quotidien","ico":"🧩","t":"Plusieurs petits skills valent mieux qu’un géant","d":"Un skill par tâche. Claude peut en combiner plusieurs dans une conversation, et chacun reste simple à corriger."},{"theme":"quotidien","ico":"🔁","t":"Partez d’un travail réussi","d":"Faites la tâche avec Claude, guidez-le, corrigez-le. Quand c’est bon, demandez : « Transforme ce que nous venons de faire en skill. »"},{"theme":"quotidien","ico":"📅","t":"Datez vos skills","d":"Un skill vieillit comme un document : règles, formats, outils changent. Notez la date de dernière relecture dans votre bibliothèque."},{"theme":"pieges","ico":"📦","t":"Zippez le dossier, pas le fichier","d":"Le .zip doit contenir « mon-skill/SKILL.md ». Un SKILL.md à la racine de l’archive n’est pas reconnu."},{"theme":"pieges","ico":"🔤","t":"Le nom du dossier = le champ name","d":"Même orthographe, en minuscules, chiffres et tirets. Un décalage fait échouer ou perd le skill."},{"theme":"pieges","ico":"🚧","t":"Les clés de Claude Code font échouer ailleurs","d":"Sur claude.ai et dans l’API, seules name, description, license, compatibility, metadata et allowed-tools sont acceptées. Les autres déclenchent une erreur."},{"theme":"pieges","ico":"🌐","t":"Un skill ne se recopie pas tout seul d’un endroit à l’autre","d":"Un skill téléversé sur claude.ai n’est pas dans l’API, et inversement. Ajoutez-le à chaque endroit où vous en avez besoin."},{"theme":"pieges","ico":"📆","t":"Pas de consigne qui dépend d’une date","d":"« Avant 2025, faites ceci » sera faux un jour. Écrivez la méthode actuelle, et rangez l’ancienne dans une section « Anciennes pratiques »."}]},"surfaces":[{"id":"claudeai","ico":"🌐","nom":"claude.ai et appli de bureau","pour":"Je discute avec Claude dans le navigateur ou l’appli","portee":"Vous seul·e (partage possible sur Team et Enterprise)","etapes":["Vérifiez que l’exécution de code est activée (Paramètres › Capacités : « Code execution and file creation »).","Ouvrez Customize › Skills.","Pour un skill déjà fourni : onglet Discover, puis « Turn on ».","Pour le vôtre : demandez à Claude de le créer (avec le skill skill-creator activé), ou téléversez un .zip dont le dossier du skill est à la racine.","Activez-le, puis essayez avec une demande réaliste."],"note":"Le forfait doit proposer les skills. La documentation en cite plusieurs payants ; une page d’aide ajoute le forfait gratuit : regardez dans votre compte."},{"id":"cowork","ico":"🤝","nom":"Cowork","pour":"Je délègue des tâches de bureau à Claude","portee":"Vous","etapes":["Ouvrez Customize › Skills : les skills de votre compte y sont listés.","Sur Mac (forfaits Pro, Max, Ultra, Team), vous pouvez enregistrer un skill : « Add » puis « Record your screen », vous faites la tâche en la commentant, Claude propose le skill.","Relisez la proposition avant de la sauvegarder."],"note":"Pendant l’enregistrement tout ce qui est à l’écran est capturé : n’affichez pas de mot de passe ni de données sensibles."},{"id":"code","ico":"💻","nom":"Claude Code","pour":"Je travaille dans un terminal ou un projet de code","portee":"Vous (dossier personnel) ou l’équipe (dossier du projet)","etapes":["Créez le dossier du skill : ~/.claude/skills/mon-skill/ (tous vos projets) ou .claude/skills/mon-skill/ (ce projet).","Placez-y SKILL.md (et références, modèles, scripts si besoin).","Démarrez Claude Code : le skill est détecté. Les modifications d’un SKILL.md sont prises en compte pendant la session.","Lancez-le avec /mon-skill, ou décrivez une tâche qui correspond.","Pour le partager : validez .claude/skills/ dans git, ou créez un plugin."],"note":"C’est ici, et seulement ici, que les réglages avancés (lancement manuel seul, sous-agent, arguments) existent."},{"id":"api","ico":"🔌","nom":"L’API","pour":"Je développe une application qui utilise Claude","portee":"Tout l’espace de travail","etapes":["Téléversez le skill avec les points d’accès des skills de l’API.","Dans la requête, indiquez l’identifiant du skill dans le paramètre container.","Ajoutez l’outil d’exécution de code : les skills s’exécutent dans son conteneur.","Pensez aux limites : pas de réseau, pas d’installation de paquets pendant l’exécution."],"note":"Les skills de l’API et ceux de claude.ai sont gérés séparément."}],"ressources":{"categories":[{"id":"officiel","ico":"📘","nom":"Documentation officielle"},{"id":"exemples","ico":"🧪","nom":"Exemples et standard ouvert"},{"id":"comprendre","ico":"💡","nom":"Pour comprendre"}],"liens":[{"cat":"officiel","n":"Skills — vue d’ensemble (claude.com)","u":"https://claude.com/docs/skills/overview","d":"Trouver, activer et utiliser un skill ; forfaits, types de skills, comparaison avec projets et connecteurs."},{"cat":"officiel","n":"Créer des skills personnalisés (claude.com)","u":"https://claude.com/docs/skills/how-to","d":"Structure du dossier, SKILL.md, zip, tests, partage."},{"cat":"officiel","n":"Bonnes pratiques d’écriture (plateforme Claude)","u":"https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices","d":"Concision, description, divulgation progressive, évaluation, anti-modèles."},{"cat":"officiel","n":"Agent Skills — présentation technique","u":"https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview","d":"Les trois niveaux de chargement, où ça marche, sécurité, limites."},{"cat":"officiel","n":"Skills dans Claude Code","u":"https://code.claude.com/docs/en/skills","d":"Dossiers, clés d’en-tête, arguments, sous-agents, dépannage."},{"cat":"officiel","n":"Créer des skills sur claude.ai (aide)","u":"https://support.claude.com/en/articles/12512198-creating-custom-skills","d":"Pas à pas côté utilisateur : zip, enregistrement d’un skill, modification dans la conversation."},{"cat":"exemples","n":"Dépôt d’exemples d’Anthropic","u":"https://github.com/anthropics/skills","d":"Des skills réels à lire, dont skill-creator ; licences variables selon le skill."},{"cat":"exemples","n":"Spécification Agent Skills (standard ouvert)","u":"https://agentskills.io/specification","d":"Le format commun à plusieurs outils.","v":true},{"cat":"comprendre","n":"Équiper les agents pour le monde réel (blog d’ingénierie d’Anthropic)","u":"https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills","d":"Pourquoi des skills, la divulgation progressive, les principes de conception."},{"cat":"comprendre","n":"Utiliser les skills avec l’API","u":"https://platform.claude.com/docs/en/build-with-claude/skills-guide","d":"Téléverser et utiliser des skills par programmation.","v":true}]},"site":{"pages":[{"u":"/jeux/claude-skills/","ico":"🧩","n":"Claude & ses Skills (jeu)","d":"Quiz, glossaire et conseils sur les capacités de Claude."},{"u":"/apprendre-claude/","ico":"🤖","n":"Apprendre Claude","d":"Un parcours pour bien se servir de Claude."},{"u":"/anonymiseur/","ico":"✂️","n":"L’Anonymiseur","d":"Retirer ce qui identifie dans un CV ou un courrier, sur votre appareil."},{"u":"/anonymiser-ses-donnees/","ico":"🛡️","n":"Protéger ses données","d":"Ce qu’on colle dans une IA part sur un serveur : la méthode des trois R."},{"u":"/pieges-ia/","ico":"⚠️","n":"Les pièges de l’IA","d":"Ce qu’une IA fait mal, et comment le repérer."},{"u":"/atelier-prompts/","ico":"🧪","n":"Atelier de prompts","d":"Des prompts gradués pour apprendre à bien demander."}],"applis":[{"u":"/appli-ia-g/","ico":"✨","n":"Prompt de poche","d":"Une phrase en entrée, un prompt expert en sortie"},{"u":"/appli-prompts/","ico":"📚","n":"Bibliothèque de poche","d":"Des centaines de prompts à copier, dans votre poche"},{"u":"/appli-emploi/","ico":"🧭","n":"Emploi de poche","d":"L’annuaire des sites d’emploi, par secteur, dans votre poche"},{"u":"/appli-cartes/","ico":"🎴","n":"Cartes flash de poche","d":"Les cartes de l’IA à retourner et à réviser"},{"u":"/appli-tons/","ico":"🎭","n":"Tons de poche","d":"Reconnaître le ton d’un texte parmi 200 registres"},{"u":"/appli-anonymiseur/","ico":"🕶️","n":"Anonymiseur de poche","d":"Anonymiser un CV ou un courrier sur son téléphone, sans rien envoyer"},{"u":"/appli-quiz/","ico":"🎯","n":"Quiz de poche","d":"Des centaines de questions expliquées, un quiz du jour"},{"u":"/appli-hommages/","ico":"🕯️","n":"Hommages de poche","d":"Des vies à lire, en grand : portraits, anecdotes et citations"},{"u":"/appli-cyber/","ico":"🛡️","n":"Cyber de poche","d":"Un message suspect, un lien douteux, une arnaque : les bons réflexes"},{"u":"/appli-recherche/","ico":"🔎","n":"Optim web de poche","d":"Construire une recherche internet qui trouve juste : prompt, requêtes et prompt miroir"},{"u":"/appli-verif/","ico":"🔍","n":"Vérif de poche","d":"Repérer ce qui se vérifie dans un texte, et comment le vérifier"},{"u":"/appli-clair/","ico":"✍️","n":"Clair de poche","d":"Rendre un texte clair pour qui va le lire, avant de l’envoyer"},{"u":"/appli-crea/","ico":"🎨","n":"Créa de poche","d":"Des prompts précis pour créer et retoucher des images, la photo pro en premier"},{"u":"/appli-handicap/","ico":"♿","n":"Handicap et emploi de poche","d":"Droits, formation et emploi quand on est en situation de handicap"}]},"bib":[{"id":"apprendre-par-questions","nom":"apprendre-par-questions","titre":"Apprendre par questions","niveau":"debutant","cat":"etudier","ico":"❓","surface":"tous","resume":"Claude vous interroge une question à la fois, corrige gentiment et revient sur ce qui est fragile.","sert":"Relire un cours donne l’impression de savoir ; **répondre à des questions** montre ce qu’on sait vraiment. Ce skill transforme un texte ou un thème en petit quiz oral, **une question à la fois**.","essai":"- Collez un paragraphe de cours et demandez : « Interroge-moi, 5 questions. »\n- Répondez faux exprès à la deuxième : la correction doit rester bienveillante et précise.","adapter":"- Ajoutez « pose les questions comme à l’oral d’un examen » pour s’entraîner.\n- Ajoutez une section « Niveaux » : facile, moyen, difficile.","attention":"Le skill s’appuie sur ce que vous collez : si votre texte est faux ou incomplet, les questions le seront aussi. Vérifiez sur le cours officiel.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: apprendre-par-questions\ndescription: \"Interroge l'utilisateur sur un texte ou un thème, une question à la fois, avec correction bienveillante. À utiliser quand l'utilisateur veut réviser, s'entraîner ou vérifier qu'il a compris, sans fiche toute faite.\"\n---\n\n# Apprendre par questions\n\n## Étapes\n\n1. Demande le **thème ou le texte**, et le nombre de questions souhaité (5 par défaut).\n2. Pose **une seule question**, puis attends la réponse. Ne donne jamais la réponse avant.\n3. Après la réponse :\n   - dis **ce qui est juste** en une phrase ;\n   - corrige **ce qui manque** avec une explication courte ;\n   - note mentalement les points fragiles.\n4. À la fin, résume en trois lignes : acquis, à revoir, et **une question de rappel** sur le point le plus fragile.\n\n## Règles\n\n- Questions ouvertes d'abord, puis questions de choix si la personne bloque.\n- N'invente rien : appuie-toi uniquement sur le texte donné ou sur des connaissances établies.\n- Si la personne dit « je ne sais pas », donne un **indice**, pas la réponse.\n\n## Format\n\nUne question par message. Bilan à la fin : Acquis, À revoir, Question de rappel.\n\n## Exemple\n\nDemande : « Interroge-moi sur les saisons. »\n\nRésultat attendu :\n> Question 1/5 : pourquoi fait-il plus chaud en été qu'en hiver dans l'hémisphère nord ?\n"}],"desc":"Interroge l'utilisateur sur un texte ou un thème, une question à la fois, avec correction bienveillante. À utiliser quand l'utilisateur veut réviser, s'entraîner ou vérifier qu'il a compris, sans fiche toute faite.","verdict":"ok"},{"id":"compte-rendu-d-atelier","nom":"compte-rendu-d-atelier","titre":"Compte rendu d’atelier ou de réunion","niveau":"debutant","cat":"animer","ico":"📝","surface":"tous","resume":"Des notes brutes en compte rendu : résumé, décisions, et un tableau « qui fait quoi pour quand ».","sert":"Vos notes d’atelier ou de réunion sont en vrac. Ce skill les transforme toujours **dans le même format** : trois lignes de résumé, les décisions, puis les actions avec un responsable et une échéance. Toute l’équipe reçoit des comptes rendus comparables.","essai":"- Collez dix lignes de notes réelles, rendues anonymes, et écrivez : « Fais-en un compte rendu. »\n- Cherchez la ligne « à définir » : le skill doit signaler ce qui manque plutôt que l’inventer.\n- Comparez avec votre compte rendu habituel : le format vous convient-il ?","adapter":"- Changez les rubriques pour les vôtres (« Objectifs de la séance », « Bilan du groupe »).\n- Ajoutez la liste des participants au format de votre structure.\n- Pour un format différent selon le public, créez un second skill plutôt que d’y glisser des « si ».","attention":"Un compte rendu peut contenir des informations sur des personnes. N’y mettez que ce qui est nécessaire, et ne collez pas de notes nominatives dans une IA sans les avoir rendues anonymes.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: compte-rendu-d-atelier\ndescription: \"Transforme des notes brutes de réunion ou d'atelier en compte rendu structuré : résumé, décisions, actions avec responsable et échéance. À utiliser quand l'utilisateur colle des notes de réunion, d'atelier ou d'entretien d'équipe et demande un compte rendu ou un relevé de décisions.\"\n---\n\n# Compte rendu d'atelier\n\n## Étapes\n\n1. Lis les notes en entier avant d'écrire.\n2. Écris un **résumé** de 3 lignes au maximum : de quoi on a parlé, ce qui a été tranché.\n3. Liste les **décisions** : une ligne chacune, à l'indicatif (« Le prochain atelier a lieu le 14 »).\n4. Termine par un tableau des **actions** : Qui | Quoi | Pour quand.\n5. Ajoute une section **Points en suspens** pour ce qui n'a pas été tranché.\n\n## Règles\n\n- Ne garde que ce qui est dans les notes. Si le responsable ou l'échéance d'une action manque, écris « à définir » : ne devine pas.\n- Un verbe d'action par ligne du tableau (« Envoyer », « Réserver »).\n- Pas de jugement sur les personnes, pas de détails de situations individuelles.\n\n## Format\n\n```\n## Résumé\n…\n\n## Décisions\n- …\n\n## Actions\n| Qui | Quoi | Pour quand |\n|---|---|---|\n\n## Points en suspens\n- …\n```\n\n## Exemple\n\nNotes : « Atelier CV jeudi, Sam prend la salle, on voit pour les posters, Léa imprime les fiches avant mardi. »\n\nRésultat attendu :\n> Actions : Sam — Réserver la salle — à définir ; Léa — Imprimer les fiches — mardi. Points en suspens : les posters.\n\n## Avant de rendre le texte\n\n- [ ] Chaque action a un « qui » et un « pour quand » (ou « à définir »).\n- [ ] Rien ne figure qui ne soit dans les notes.\n"}],"desc":"Transforme des notes brutes de réunion ou d'atelier en compte rendu structuré : résumé, décisions, actions avec responsable et échéance. À utiliser quand l'utilisateur colle des notes de réunion, d'atelier ou d'entretien d'équipe et demande un compte rendu ou un relevé de décisions.","verdict":"ok"},{"id":"corriger-sans-reecrire","nom":"corriger-sans-reecrire","titre":"Corriger sans réécrire","niveau":"debutant","cat":"ecrire","ico":"🖍️","surface":"tous","resume":"Corriger fautes et ponctuation en gardant votre voix, et lister chaque changement.","sert":"Quand vous demandez « corrige », Claude a tendance à reformuler. Ce skill fixe une règle simple : **on corrige, on ne réécrit pas**. Vous gardez vos mots, vos tournures et votre ton ; et vous recevez la liste de ce qui a bougé, pour apprendre au passage.","essai":"- Collez un paragraphe que vous avez écrit vous-même, avec des fautes volontaires.\n- Vérifiez que le texte garde vos tournures et que le tableau liste bien chaque changement.\n- Essayez un texte volontairement familier : il ne doit pas être « lissé ».","adapter":"- Précisez la norme de typographie de votre structure (guillemets français, majuscules des titres).\n- Ajoutez une liste de mots à ne jamais toucher (noms de dispositifs, sigles).","attention":"Un correcteur n’est pas infaillible : relisez toujours un texte officiel avant de l’envoyer.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: corriger-sans-reecrire\ndescription: \"Corrige l'orthographe, la grammaire et la ponctuation d'un texte en conservant les mots, le style et le ton de l'auteur, puis liste chaque modification. À utiliser quand l'utilisateur demande de corriger, relire ou vérifier les fautes d'un texte sans le réécrire.\"\n---\n\n# Corriger sans réécrire\n\n## Règle d'or\n\nChange le minimum. N'améliore pas le style, ne remplace pas un mot correct par un synonyme, ne coupe ni ne fusionne les phrases. Le texte reste celui de son auteur.\n\n## Étapes\n\n1. Relis le texte sans rien modifier.\n2. Corrige uniquement : orthographe, accords, conjugaison, ponctuation, majuscules, espaces avant « : ; ! ? ».\n3. Rends le texte corrigé en entier.\n4. Ajoute « Ce qui a changé » : un tableau Avant | Après | Pourquoi (règle en quelques mots).\n\n## Cas particuliers\n\n- Doute sur un mot (nom propre, terme technique) : laisse-le tel quel et signale-le dans « À vérifier ».\n- Une phrase est ambiguë ou bancale mais correcte : ne la change pas ; propose-la en suggestion, à part, sous « Suggestions (facultatif) ».\n- Texte familier (SMS, oral) : respecte-le, sauf demande contraire.\n\n## Exemple\n\nTexte : « Les jeune ont recu leur convocations hier. »\n\nRésultat attendu :\n> Les jeunes ont reçu leurs convocations hier.\n>\n> | Avant | Après | Pourquoi |\n> |---|---|---|\n> | jeune | jeunes | pluriel |\n> | recu | reçu | cédille |\n> | leur convocations | leurs convocations | accord |\n"}],"desc":"Corrige l'orthographe, la grammaire et la ponctuation d'un texte en conservant les mots, le style et le ton de l'auteur, puis liste chaque modification. À utiliser quand l'utilisateur demande de corriger, relire ou vérifier les fautes d'un texte sans le réécrire.","verdict":"ok"},{"id":"ecrire-un-mail-professionnel","nom":"ecrire-un-mail-professionnel","titre":"Écrire un mail professionnel","niveau":"debutant","cat":"ecrire","ico":"✉️","surface":"tous","resume":"Des mails courts, courtois et clairs : objet, demande, échéance — dans le ton que vous choisissez.","sert":"À ne plus repartir de zéro pour chaque mail. Vous collez le message reçu (ou quelques notes) et vous obtenez un brouillon **court**, avec un objet précis, une demande claire et une échéance, dans le registre que vous avez fixé une fois pour toutes.\n\nC’est le skill le plus simple à écrire : un seul fichier, pas de script, des règles de style.","essai":"- Activez le skill, puis écrivez : « Rédige une relance pour un partenaire qui n’a pas répondu à ma demande de rendez-vous. »\n- Collez un vrai mail reçu (sans noms) et demandez : « Réponds-lui, je veux dire non poliment. »\n- Vérifiez que le brouillon fait moins de 120 mots et qu’aucune date n’est inventée.","adapter":"- Remplacez « vouvoiement par défaut » par votre règle (tutoiement dans votre équipe, par exemple).\n- Ajoutez votre formule de fin habituelle dans les règles de style.\n- Pour un autre registre (candidature, réclamation), dupliquez le skill avec un autre nom : un skill par registre vaut mieux qu’un skill fourre-tout.","attention":"Ne collez pas de données personnelles de personnes accompagnées : remplacez les noms par des initiales ou par [Prénom].","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: ecrire-un-mail-professionnel\ndescription: \"Rédige ou répond à un mail professionnel court, courtois et clair, avec un objet précis. À utiliser quand l'utilisateur demande un mail, une relance, une réponse à un client, un partenaire ou un collègue.\"\n---\n\n# Écrire un mail professionnel\n\n## Étapes\n\n1. Repère trois choses dans la demande : **à qui** on écrit, **ce qu'on veut obtenir**, **pour quand**. S'il en manque une, pose UNE seule question.\n2. Écris l'objet : 6 mots maximum, avec le sujet et l'action attendue (« Validation du planning d'avril »).\n3. Rédige le message dans cet ordre : salutation, une phrase de contexte, la demande, l'échéance, formule de politesse.\n4. Garde 120 mots au maximum, sauf si l'utilisateur demande plus.\n\n## Règles de style\n\n- Vouvoiement par défaut ; tutoiement seulement si le mail reçu tutoie.\n- Phrases de 20 mots au maximum. Pas de « n'hésitez pas à ».\n- Une seule demande par mail. S'il y en a plusieurs, propose une liste numérotée.\n- N'invente jamais un fait, une date ou un chiffre : mets [à préciser] à la place.\n\n## Exemple\n\nDemande : « Relance Mme Durand, elle n'a pas confirmé la salle pour le 12. »\n\nRésultat attendu :\n\n> Objet : Confirmation de la salle du 12\n>\n> Bonjour Madame Durand,\n>\n> Je reviens vers vous au sujet de la salle réservée le 12. Pouvez-vous me confirmer sa disponibilité d'ici jeudi ?\n>\n> Bien cordialement,\n\n## Avant de rendre le texte\n\n- [ ] L'objet dit le sujet et l'action.\n- [ ] Il n'y a qu'une demande, et une échéance.\n- [ ] Rien n'est inventé.\n"}],"desc":"Rédige ou répond à un mail professionnel court, courtois et clair, avec un objet précis. À utiliser quand l'utilisateur demande un mail, une relance, une réponse à un client, un partenaire ou un collègue.","verdict":"ok"},{"id":"ecrire-un-message-difficile","nom":"ecrire-un-message-difficile","titre":"Écrire un message difficile (refus, relance, désaccord)","niveau":"debutant","cat":"ecrire","ico":"🤝","surface":"tous","resume":"Pour dire non, relancer ou exprimer un désaccord sans blesser, en trois phrases et une proposition.","sert":"Refuser une demande, relancer quelqu’un qui ne répond pas, dire qu’on n’est pas d’accord : ces messages se repoussent parce qu’on ne sait pas par où commencer. Ce skill propose **une version courte, claire et respectueuse**, avec une solution à la fin.","essai":"- Demandez : « Aide-moi à relancer un partenaire qui n’a pas répondu depuis trois semaines. »\n- Donnez ensuite un contexte tendu (« il m’a déjà promis deux fois ») : le message doit rester sans reproche.","adapter":"- Ajoutez une ligne « Écris toujours en vous » ou « en tu », selon votre usage.\n- Ajoutez une section « Messages à ne pas envoyer le soir même » pour les cas très chargés.","attention":"Relisez toujours avant d’envoyer : Claude ne connaît ni la relation ni l’historique. Ne collez pas de données personnelles sur d’autres personnes.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: ecrire-un-message-difficile\ndescription: \"Rédige un message délicat (refus, relance, désaccord, report) court, poli et sans reproche. À utiliser quand l'utilisateur doit dire non, relancer, reporter ou exprimer un désaccord par écrit.\"\n---\n\n# Écrire un message difficile\n\n## Étapes\n\n1. Si tu ne sais pas qui écrit à qui, **pose une seule question** : « À qui écris-tu, et que veux-tu obtenir ? »\n2. Rédige un message de **cinq lignes maximum** dans cet ordre :\n   - une phrase qui reconnaît la demande ou la situation ;\n   - la décision ou le point de vue, **clairement**, sans excuses en cascade ;\n   - la raison **en une phrase**, sans te justifier longuement ;\n   - une **proposition** concrète (autre date, autre solution, question) ;\n   - une formule de politesse courte.\n3. Propose **une variante plus directe** et **une variante plus chaleureuse**, sur deux lignes chacune.\n\n## Règles\n\n- Parle de la situation, jamais de la personne (« je ne peux pas » et non « tu exiges trop »).\n- Pas de reproche déguisé ni d'ironie.\n- N'invente aucun fait : si une date ou une raison manque, mets-la entre crochets.\n\n## Format\n\nRéponds avec : Message, puis Variante directe, puis Variante chaleureuse.\n\n## Exemple\n\nDemande : « Je dois refuser de reprendre l'atelier du jeudi. »\n\nRésultat attendu :\n> Merci de penser à moi pour l'atelier du jeudi. Je ne pourrai pas l'assurer ce trimestre : mon planning est complet. Je peux en revanche vous transmettre mes supports, ou vous proposer le mardi suivant. Bien cordialement.\n"}],"desc":"Rédige un message délicat (refus, relance, désaccord, report) court, poli et sans reproche. À utiliser quand l'utilisateur doit dire non, relancer, reporter ou exprimer un désaccord par écrit.","verdict":"ok"},{"id":"expliquer-un-courrier-administratif","nom":"expliquer-un-courrier-administratif","titre":"Expliquer un courrier administratif","niveau":"debutant","cat":"administratif","ico":"📬","surface":"tous","resume":"Ce que dit le courrier, ce qu’on attend de vous, pour quand — en mots simples, sans conseil juridique.","sert":"Un courrier de la CAF, d’un bailleur, d’un employeur : le vocabulaire décourage. Ce skill le **traduit** : de quoi il s’agit, ce qu’on vous demande, avant quelle date, et ce qu’il reste à vérifier auprès de l’organisme.","essai":"- Collez un courrier réel **sans nom ni numéro de dossier**, et dites « Explique-moi ce courrier ».\n- Vérifiez que la date est recopiée telle quelle et qu’aucun montant n’est inventé.\n- Testez avec un courrier qui menace d’une sanction : la réponse doit rester calme et renvoyer vers un interlocuteur.","adapter":"- Ajoutez la liste des organismes que vos publics rencontrent le plus.\n- Ajoutez une section « Réponse type » si vous voulez aussi un brouillon de réponse (dans un second skill, c’est plus clair).","attention":"Ce skill **explique**, il ne remplace ni un conseiller ni un juriste. Les délais et montants officiels sont à confirmer auprès de l’organisme.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: expliquer-un-courrier-administratif\ndescription: \"Explique en mots simples un courrier ou un mail administratif : de quoi il parle, ce qui est demandé, pour quand, et à qui poser la question. À utiliser quand l'utilisateur colle ou décrit un courrier d'un organisme, d'un employeur, d'un bailleur ou d'une administration et ne le comprend pas.\"\n---\n\n# Expliquer un courrier administratif\n\n## Étapes\n\n1. Identifie l'**expéditeur** et le **type** de courrier (information, demande de pièces, décision, relance, mise en demeure).\n2. Écris **En une phrase** : ce que dit le courrier.\n3. Écris **Ce qu'on attend de vous** : une liste d'actions courtes (« Envoyer le justificatif X »).\n4. Écris **Pour quand** : toute date ou tout délai cité par le courrier, recopié tel quel. S'il n'y en a pas, écris « Aucune date indiquée ».\n5. Écris **Les mots difficiles** : 2 à 4 termes du courrier, expliqués simplement.\n6. Termine par **À vérifier** : ce qui doit être confirmé auprès de l'expéditeur.\n\n## Règles\n\n- Phrases courtes, mots du quotidien, pas de sigle sans explication.\n- Ne donne ni conseil juridique ni prévision (« vous allez obtenir… »). Tu expliques le courrier, tu ne décides pas.\n- Ne cite pas de montants, d'articles de loi ni de délais qui ne sont pas dans le courrier.\n- Si le courrier évoque une sanction, une dette ou une urgence : dis-le calmement et recommande de contacter l'expéditeur ou un service d'accompagnement (une Mission Locale, une maison France Services, un travailleur social).\n\n## Exemple\n\nCourrier : « Votre dossier est incomplet. Merci de nous transmettre votre avis d'imposition avant le 15 du mois. »\n\nRésultat attendu :\n> **En une phrase** : il manque un document dans votre dossier.\n> **Ce qu'on attend de vous** : envoyer votre avis d'imposition.\n> **Pour quand** : avant le 15 du mois.\n"}],"desc":"Explique en mots simples un courrier ou un mail administratif : de quoi il parle, ce qui est demandé, pour quand, et à qui poser la question. À utiliser quand l'utilisateur colle ou décrit un courrier d'un organisme, d'un employeur, d'un bailleur ou d'une administration et ne le comprend pas.","verdict":"ok"},{"id":"fiche-de-revision","nom":"fiche-de-revision","titre":"Fiche de révision","niveau":"debutant","cat":"etudier","ico":"🗒️","surface":"tous","resume":"Un cours transformé en fiche : définitions, exemples, questions pour s’auto-tester.","sert":"Pour réviser un diplôme, un titre professionnel ou un permis. Vous collez votre cours ; vous obtenez une fiche d’une page avec l’essentiel, des exemples concrets et des questions pour vérifier que vous avez compris.","essai":"- Collez une page de cours et demandez « Fais-moi une fiche de révision ».\n- Cachez les réponses, répondez aux questions, puis comparez.\n- Demandez « Refais les questions en plus difficile » : Claude doit rester dans le cours.","adapter":"- Ajoutez votre méthode de mémorisation (cartes recto-verso, tableau).\n- Précisez le niveau (CAP, bac pro, titre professionnel) pour ajuster le vocabulaire.","attention":"La fiche ne vaut que ce que vaut le cours collé. Pour un examen officiel, appuyez-vous sur le référentiel de l’examen.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: fiche-de-revision\ndescription: \"Transforme un cours ou des notes en fiche de révision d'une page avec définitions, exemples et questions d'auto-test. À utiliser quand l'utilisateur colle un cours, un chapitre ou des notes et veut réviser, mémoriser ou se préparer à un examen.\"\n---\n\n# Fiche de révision\n\n## Étapes\n\n1. Repère les notions centrales du texte (5 à 8).\n2. Pour chaque notion : une **définition en une phrase** avec les mots du cours, puis un **exemple concret**.\n3. Écris une section **À ne pas confondre** quand deux notions se ressemblent.\n4. Termine par **5 questions** de difficulté croissante, SANS les réponses.\n5. Donne les réponses dans une section séparée, à la fin, sous la mention « Réponses (ne regarder qu'après avoir essayé) ».\n\n## Règles\n\n- Reste fidèle au cours. Si une notion est absente, ne l'ajoute pas ; signale-la dans « Manque dans le cours ».\n- Phrases courtes, vocabulaire du cours.\n- La fiche tient sur une page : coupe plutôt que d'allonger.\n\n## Exemple\n\nCours : « La période d'essai permet à l'employeur d'évaluer les compétences du salarié… »\n\nRésultat attendu :\n> **Période d'essai** — temps au début d'un contrat où chacun peut rompre plus facilement. Exemple : un CDI avec une période d'essai de deux mois.\n>\n> Question 1 : Qui peut rompre le contrat pendant la période d'essai ?\n"}],"desc":"Transforme un cours ou des notes en fiche de révision d'une page avec définitions, exemples et questions d'auto-test. À utiliser quand l'utilisateur colle un cours, un chapitre ou des notes et veut réviser, mémoriser ou se préparer à un examen.","verdict":"ok"},{"id":"preparer-un-rendez-vous","nom":"preparer-un-rendez-vous","titre":"Préparer un rendez-vous administratif","niveau":"debutant","cat":"administratif","ico":"📅","surface":"tous","resume":"La liste des pièces, des questions à poser et de ce qu’il faut noter pendant un rendez-vous.","sert":"Un rendez-vous à la caisse d’allocations, à la mairie ou chez un bailleur tourne vite court quand il manque une pièce. Ce skill fait **trois listes** : à apporter, à demander, à noter. Il ne remplace pas la convocation : il vous aide à ne rien oublier.","essai":"- Demandez : « Prépare mon rendez-vous à la mairie pour une carte d’identité. »\n- Puis : « Et si on me refuse le dossier ? » Claude doit répondre par des pistes de recours, sans délai inventé.","adapter":"- Ajoutez une section « Quand on n’a pas tout » pour ce qu’on peut régulariser après.\n- Ajoutez une liste « Si je suis accompagné » (interprète, proche, conseiller).","attention":"Les pièces demandées changent selon l’organisme et la situation : la convocation et le site officiel font foi, pas Claude.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: preparer-un-rendez-vous\ndescription: \"Prépare un rendez-vous administratif ou officiel avec trois listes : pièces à apporter, questions à poser, informations à noter. À utiliser quand l'utilisateur a un rendez-vous (caisse, mairie, banque, bailleur, employeur) et veut s'y préparer.\"\n---\n\n# Préparer un rendez-vous\n\n## Étapes\n\n1. Demande **trois choses** si elles manquent : l'organisme, l'objet du rendez-vous, la date.\n2. Produis trois listes courtes :\n   - **À apporter** : pièces habituellement demandées pour ce type de démarche ; ajoute « selon la convocation » quand tu n'es pas sûr ;\n   - **À demander** : cinq questions utiles (délais, suites, interlocuteur, recours si refus, document à recevoir) ;\n   - **À noter** : nom de la personne, date, ce qui a été promis, ce qu'il reste à faire.\n3. Termine par une phrase : « Vérifiez la liste exacte sur la convocation ou le site de l'organisme. »\n\n## Règles\n\n- Ne cite aucun montant, délai légal ni numéro de téléphone : renvoie à l'organisme.\n- Ne remplace jamais la convocation : si elle dit autre chose, c'est elle qui compte.\n- Pas de jargon : si tu emploies un sigle, explique-le.\n\n## Format\n\nRéponds avec trois intertitres : À apporter, À demander, À noter.\n\n## Exemple\n\nDemande : « J'ai un rendez-vous à la CAF mardi pour un changement de situation. »\n\nRésultat attendu :\n> **À apporter** : pièce d'identité, justificatif lié au changement (selon la convocation)… **À demander** : sous quel délai la situation sera mise à jour ? **À noter** : nom de l'agent, date, décision.\n"}],"desc":"Prépare un rendez-vous administratif ou officiel avec trois listes : pièces à apporter, questions à poser, informations à noter. À utiliser quand l'utilisateur a un rendez-vous (caisse, mairie, banque, bailleur, employeur) et veut s'y préparer.","verdict":"ok"},{"id":"texte-facile-a-lire","nom":"texte-facile-a-lire","titre":"Réécrire en facile à lire","niveau":"debutant","cat":"ecrire","ico":"🔤","surface":"tous","resume":"Phrases courtes, mots simples, une idée à la fois — des règles inspirées du FALC (sans être du FALC officiel).","sert":"Pour qu’un texte soit compris par le plus grand nombre : personnes qui lisent peu ou difficilement, public en apprentissage du français, lecture rapide sur téléphone. Le skill applique des règles de simplification connues.","essai":"- Collez un paragraphe d’un règlement intérieur : « Réécris-le en facile à lire. »\n- Comptez les mots des phrases les plus longues.\n- Comparez les informations avant et après : rien ne doit avoir disparu.","adapter":"- Ajoutez votre liste de mots à ne pas simplifier (noms de dispositifs).\n- Pour un public précis (jeunes, personnes âgées), ajustez la longueur des phrases.","attention":"Ce skill s’inspire des règles du « Facile à lire et à comprendre » (FALC) mais **ce n’est pas du FALC officiel** : celui-ci est relu par des personnes concernées. Pour un document officiel, faites relire.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: texte-facile-a-lire\ndescription: \"Réécrit un texte en langage simple et facile à lire : phrases courtes, mots courants, une idée par phrase, listes. À utiliser quand l'utilisateur demande de simplifier un texte, de le rendre accessible ou compréhensible par tous.\"\n---\n\n# Réécrire en facile à lire\n\n## Règles d'écriture\n\n- **Une idée par phrase.** 15 mots au maximum par phrase.\n- **Mots courants.** Remplace le jargon par un mot simple ; si le terme est indispensable, explique-le entre parenthèses la première fois.\n- **Pas de sigle** sans explication.\n- **Forme active** : « Nous recevons votre dossier », pas « Votre dossier est reçu ».\n- **Vouvoiement** et adresse directe (« vous »).\n- **Des listes** à puces pour les étapes ou les éléments.\n- **Les nombres en chiffres** (« 3 jours »), et une date écrite en toutes lettres (« le 12 mars »).\n- Un **titre court** par bloc d'idées.\n\n## Étapes\n\n1. Lis le texte et repère le message principal.\n2. Réécris en appliquant les règles, sans changer le sens ni enlever une information importante.\n3. Si une information est ambiguë, ne la devine pas : garde-la telle quelle et signale-la.\n4. Termine par **Ce qui a été simplifié** : 2 ou 3 lignes sur les changements principaux.\n\n## Exemple\n\nAvant : « La demande de renouvellement doit être effectuée dans un délai de deux mois précédant l'expiration. »\n\nAprès : « Faites votre demande de renouvellement.\nFaites-la au plus tard 2 mois avant la fin de votre droit. »\n\n## Avant de rendre le texte\n\n- [ ] Aucune phrase de plus de 15 mots.\n- [ ] Aucune information n'a été ajoutée ni retirée.\n"}],"desc":"Réécrit un texte en langage simple et facile à lire : phrases courtes, mots courants, une idée par phrase, listes. À utiliser quand l'utilisateur demande de simplifier un texte, de le rendre accessible ou compréhensible par tous.","verdict":"ok"},{"id":"resumer-un-texte-long","nom":"resumer-un-texte-long","titre":"Résumer un texte long","niveau":"debutant","cat":"etudier","ico":"🧾","surface":"tous","resume":"Un résumé fidèle en cinq points, avec ce qui reste à vérifier — sans rien ajouter au texte.","sert":"Un article, un rapport, un règlement : vous voulez l’essentiel **sans qu’on y ajoute des choses**. Ce skill impose un résumé en cinq points maximum, qui n’utilise que ce que le texte dit, et qui signale ce qu’il ne dit pas.","essai":"- Collez un article d’actualité : demandez « Résume ».\n- Vérifiez trois chiffres du résumé en les retrouvant dans l’article.\n- Donnez un texte de trois lignes : le skill doit dire qu’il y a peu à résumer.","adapter":"- Fixez le nombre de points et la longueur (« 3 points, 15 mots chacun »).\n- Ajoutez une version « pour un jeune de 16 ans » ou « pour un employeur », dans un second skill.","attention":"Un résumé peut passer à côté d’une nuance qui change tout. Pour un texte à enjeu (contrat, règlement), relisez les passages signalés.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: resumer-un-texte-long\ndescription: \"Résume fidèlement un texte long en cinq points maximum, sans rien ajouter, et signale les passages importants à relire. À utiliser quand l'utilisateur colle ou joint un article, un rapport, un règlement ou un long message et demande un résumé ou l'essentiel.\"\n---\n\n# Résumer un texte long\n\n## Étapes\n\n1. Lis tout le texte. Repère le sujet, la thèse (ou l'objectif), les éléments de preuve et les conclusions.\n2. Écris une phrase d'**idée centrale**.\n3. Écris **cinq points au maximum**, une phrase chacun, dans l'ordre d'importance.\n4. Ajoute **Chiffres et dates** : liste ceux que le texte donne, tels quels.\n5. Ajoute **À relire dans le texte** : les 1 à 3 passages dont un résumé ne peut pas rendre compte (exceptions, conditions, nuances).\n\n## Règles\n\n- N'ajoute aucune information absente du texte. Pas de contexte « de culture générale ».\n- Ne change aucun chiffre ni aucune date. Si un chiffre est ambigu, recopie-le avec sa phrase.\n- Si le texte est un avis ou un argumentaire, écris « Selon l'auteur… » : ne présente pas son opinion comme un fait.\n- Si le texte est trop court ou trop vague pour être résumé, dis-le au lieu de remplir.\n\n## Exemple\n\nTexte : un règlement de 4 pages sur les absences en formation.\n\nRésultat attendu : une idée centrale, cinq points (justification, délai de prévenance, sanctions…), les dates citées, et deux passages à relire (les exceptions pour raison médicale).\n\n## Avant de rendre le texte\n\n- [ ] Chaque point peut être retrouvé dans le texte.\n- [ ] Les chiffres et dates sont recopiés, pas reformulés.\n"}],"desc":"Résume fidèlement un texte long en cinq points maximum, sans rien ajouter, et signale les passages importants à relire. À utiliser quand l'utilisateur colle ou joint un article, un rapport, un règlement ou un long message et demande un résumé ou l'essentiel.","verdict":"ok"},{"id":"adapter-un-cv-a-une-offre","nom":"adapter-un-cv-a-une-offre","titre":"Adapter un CV à une offre","niveau":"intermediaire","cat":"emploi","ico":"📄","surface":"tous","resume":"Relever ce que l’offre demande et ce que le CV montre déjà — sans jamais rien inventer.","sert":"Pour postuler sans repartir de zéro : le skill compare **l’offre** et **votre CV**, dit ce qui est déjà couvert, ce qu’il faut mettre en avant, et ce qui manque. Règle absolue : **il n’invente aucune expérience**.","essai":"- Collez un CV fictif et une offre : « Adapte mon CV à cette offre. »\n- Cherchez un détail inventé : il ne doit y en avoir aucun.\n- Répondez à une question « Absent », puis demandez de compléter.","adapter":"- Ajoutez votre modèle de CV (sections, longueur maximale).\n- Pour la lettre de motivation, créez un skill distinct : les règles sont différentes.","attention":"**Anonymisez** avant de coller un CV dans une IA (nom, adresse, téléphone, e-mail) : l’Anonymiseur du site le fait sur l’appareil. Un CV rédigé par une IA qui sonne faux ne résiste pas à la première question d’un recruteur : gardez vos mots.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: adapter-un-cv-a-une-offre\ndescription: \"Compare un CV et une offre d'emploi, repère ce qui correspond, ce qu'il faut mettre en avant et ce qui manque, sans rien inventer. À utiliser quand l'utilisateur partage un CV et une offre et veut l'adapter, le relire ou savoir quoi mettre en avant.\"\n---\n\n# Adapter un CV à une offre\n\n## Règle absolue\n\nN'ajoute jamais une compétence, une expérience, un diplôme ou un chiffre qui n'est pas dans le CV. Si un élément manque, dis-le : c'est à la personne de décider si elle l'a vécu.\n\n## Étapes\n\n1. Relève dans l'offre les **mots clés** : métier, outils, compétences, qualités citées.\n2. Pour chaque mot clé, cherche une **preuve dans le CV** (une expérience, une formation, un projet).\n3. Fais trois listes : **Déjà couvert** (avec la ligne du CV), **À mettre en avant** (présent mais discret), **Absent** (aucune trace).\n4. Propose, pour chaque point « à mettre en avant », une reformulation qui garde les faits du CV.\n5. Pour les points « absents », pose la question : « Avez-vous déjà fait cela, même ailleurs ? » — ne propose pas de l'écrire sans réponse.\n6. Termine par le **titre du CV** et **l'accroche** suggérés, d'après l'offre et le CV réels.\n\n## Format\n\nRéponds avec : Déjà couvert, À mettre en avant, Absent (questions), Titre et accroche proposés.\n\n## Avant de rendre le travail\n\n- [ ] Chaque élément proposé existe dans le CV d'origine.\n- [ ] Aucun chiffre n'a été ajouté.\n\n## Exemple\n\nDemande : « Voici mon CV et l'offre de vendeur en alternance. »\n\nRésultat attendu :\n> **Déjà couvert** : « accueil clientèle » (stage en magasin, ligne 3). **Absent** : « gestion de caisse » — avez-vous déjà tenu une caisse, même en bénévolat ?\n"}],"desc":"Compare un CV et une offre d'emploi, repère ce qui correspond, ce qu'il faut mettre en avant et ce qui manque, sans rien inventer. À utiliser quand l'utilisateur partage un CV et une offre et veut l'adapter, le relire ou savoir quoi mettre en avant.","verdict":"ok"},{"id":"comparer-des-options","nom":"comparer-des-options","titre":"Comparer des options avec une grille","niveau":"intermediaire","cat":"analyser","ico":"⚖️","surface":"tous","resume":"Des critères que vous choisissez, des notes que vous justifiez, un résultat qui montre ses limites.","sert":"Choisir entre deux formations, deux offres ou deux logements. Plutôt que de demander « lequel est le mieux ? », ce skill construit une **grille de critères pondérés** avec vous, et montre ce qui fait pencher la balance. Le fichier de grille garde la méthode.","essai":"- Comparez deux options fictives en donnant vous-même les critères.\n- Donnez peu d’informations sur l’une : elle doit recevoir des « ? » et non des notes inventées.","adapter":"- Ajoutez des critères types par domaine (formation, logement, emploi).\n- Ajoutez une règle « une option éliminée dès qu’un critère indispensable est à 0 ».","attention":"La grille aide à réfléchir, elle ne décide pas à votre place. Les notes sont celles que vous justifiez, pas des vérités.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: comparer-des-options\ndescription: \"Compare deux à cinq options avec une grille de critères pondérés choisis par l'utilisateur, en montrant les notes et leurs raisons. À utiliser quand l'utilisateur hésite entre plusieurs formations, offres, solutions ou projets.\"\n---\n\n# Comparer des options avec une grille\n\n## Étapes\n\n1. Demande les **options** (2 à 5) et ce qui compte pour la personne.\n2. Aide à fixer **4 à 6 critères** et un **poids** de 1 à 3 pour chacun, en suivant `references/grille.md`.\n3. Pour chaque option et chaque critère, mets une **note de 0 à 5** avec **une phrase de raison**. Si l'information manque, note « ? » et ne la compte pas.\n4. Calcule le total pondéré et montre le calcul.\n5. Termine par **Ce qui peut faire basculer** : le critère dont le changement de poids inverserait le classement.\n\n## Règles\n\n- Les critères et les poids sont choisis par l'utilisateur, pas par toi.\n- N'invente aucun fait sur une option : demande ou laisse « ? ».\n- Un petit écart de score n'est pas une décision : dis-le.\n\n## Format\n\nTableau des notes, Totaux, Ce qui peut faire basculer.\n\n## Exemple\n\nDemande : « Deux formations : 6 mois en présentiel ou 12 mois en alternance. »\n\nRésultat attendu :\n> Une grille de cinq critères pondérés avec une phrase par note, des totaux, et le critère « rémunération » identifié comme celui qui peut inverser le classement.\n"},{"c":"references/grille.md","t":"# Construire la grille\n\n## Contenu\n- Choisir les critères\n- Poser les poids\n- Lire le résultat\n\n## Choisir les critères\nPartez de questions : « Qu'est-ce qui serait un vrai problème ? Qu'est-ce qui serait un vrai plus ? » Exemples : coût, durée, distance, débouchés, rythme, envie.\n\n## Poser les poids\n- 3 : indispensable.\n- 2 : important.\n- 1 : agréable.\n\n## Lire le résultat\n- Un écart de moins de 10 % du total est un **ex æquo** : décidez sur autre chose.\n- Si le gagnant change quand on modifie un poids, dites-le.\n"}],"desc":"Compare deux à cinq options avec une grille de critères pondérés choisis par l'utilisateur, en montrant les notes et leurs raisons. À utiliser quand l'utilisateur hésite entre plusieurs formations, offres, solutions ou projets.","verdict":"ok"},{"id":"lettre-de-motivation","nom":"lettre-de-motivation","titre":"Construire une lettre de motivation","niveau":"intermediaire","cat":"emploi","ico":"💌","surface":"tous","resume":"Un plan en quatre paragraphes, un fichier de repères, et des phrases tirées de votre vécu, jamais inventées.","sert":"Une lettre de motivation qui sonne vrai part de **faits que vous avez vécus**. Ce skill pose le plan, pose les bonnes questions, puis rédige à partir de vos réponses. Un second fichier garde les repères pour ne pas les recopier dans chaque demande.","essai":"- Collez une offre réelle et donnez deux faits vécus : la lettre doit les citer.\n- Ne donnez aucun fait : Claude doit **vous poser des questions**, pas inventer.","adapter":"- Ajoutez un second fichier `references/formations.md` pour les lettres de candidature à une formation.\n- Ajoutez une règle de ton : « vouvoyer, phrases courtes ».","attention":"N’envoyez jamais une lettre non relue. Anonymisez l’offre et vos informations si vous utilisez un outil en ligne.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: lettre-de-motivation\ndescription: \"Construit une lettre de motivation à partir d'une offre et du vécu de l'utilisateur, sans rien inventer. À utiliser quand l'utilisateur veut écrire ou améliorer une lettre de motivation pour un emploi, une alternance ou une formation.\"\n---\n\n# Construire une lettre de motivation\n\n## Avant de commencer\n\nIl faut deux choses : **l'offre** (ou la description de la formation) et **trois éléments vécus** par la personne (une expérience, une qualité prouvée par un fait, une raison de postuler). S'il en manque, pose les questions de `references/reperes.md`, **une à la fois**.\n\n## Étapes\n\n1. Relève dans l'offre les **3 attentes principales**.\n2. Associe chacune à un **fait vécu** donné par la personne.\n3. Rédige la lettre en **quatre paragraphes** : pourquoi cette structure ; ce que je sais faire (avec un fait) ; ce que j'ai envie d'apprendre ou d'apporter ; une phrase de clôture qui propose un échange.\n4. Termine par **À vérifier** : les passages entre crochets à compléter.\n\n## Règles\n\n- N'invente jamais un diplôme, un employeur, une durée ou un chiffre : mets-le entre crochets.\n- Pas de formules vides (« dynamique et motivé ») : remplace-les par un fait.\n- Une page maximum, environ 250 mots.\n- N'écris pas les coordonnées de la personne : laisse [Prénom Nom] et [Adresse].\n\n## Format\n\nRéponds avec : Lettre, À vérifier.\n\n## Exemple\n\nDemande : « Lettre pour une alternance en cuisine, j'ai fait deux saisons en snack. »\n\nRésultat attendu :\n> Une lettre en quatre paragraphes qui cite les deux saisons en snack, avec [durée exacte] entre crochets, et une clôture qui propose un entretien.\n"},{"c":"references/reperes.md","t":"# Repères pour une lettre de motivation\n\n## Contenu\n- Les questions à poser\n- Les trois erreurs fréquentes\n\n## Les questions à poser\n- « Quelle expérience, même courte, ressemble à ce que demande l'offre ? »\n- « Une situation où l'on vous a dit merci ou fait confiance ? »\n- « Qu'est-ce qui vous attire dans cette structure, en une phrase ? »\n\n## Les trois erreurs fréquentes\n- Répéter le CV au lieu d'ajouter une preuve.\n- Parler uniquement de ce que l'on veut obtenir, jamais de ce que l'on apporte.\n- Écrire une lettre identique pour toutes les offres.\n"}],"desc":"Construit une lettre de motivation à partir d'une offre et du vécu de l'utilisateur, sans rien inventer. À utiliser quand l'utilisateur veut écrire ou améliorer une lettre de motivation pour un emploi, une alternance ou une formation.","verdict":"ok"},{"id":"analyser-une-offre-d-emploi","nom":"analyser-une-offre-d-emploi","titre":"Décoder une offre d’emploi","niveau":"intermediaire","cat":"emploi","ico":"🔎","surface":"tous","resume":"Missions, exigences réelles, signaux d’alerte : une grille dans un fichier annexe que Claude n’ouvre qu’au besoin.","sert":"Une offre d’emploi mélange l’essentiel et le décor. Ce skill sépare les **missions réelles** des « exigences de façade », repère ce qui est **flou** et les **signaux d’alerte**, et propose les questions à poser avant de postuler. La grille d’alerte est dans un **fichier annexe** : c’est l’exemple type de la divulgation progressive.","essai":"- Collez une vraie offre d’alternance : « Décode cette offre. »\n- Vérifiez que Claude cite les signaux **présents** dans l’offre et ne fabrique pas d’alerte.\n- Regardez dans sa réflexion s’il a ouvert `references/signaux-alerte.md`.","adapter":"- Ajoutez les signaux que vous rencontrez dans votre territoire.\n- Ajoutez un second fichier `references/vocabulaire.md` pour traduire le jargon des offres (« autonomie », « dynamisme »…).","attention":"La grille est une aide, pas un détecteur d’arnaques. Vérifiez toujours l’entreprise par d’autres moyens (site officiel, registre des entreprises).","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: analyser-une-offre-d-emploi\ndescription: \"Décode une offre d'emploi : missions réelles, exigences indispensables ou négociables, informations manquantes, signaux d'alerte et questions à poser. À utiliser quand l'utilisateur colle une offre d'emploi ou d'alternance et veut savoir si elle lui correspond ou si elle est fiable.\"\n---\n\n# Décoder une offre d'emploi\n\n## Étapes\n\n1. Lis l'offre en entier. Repère l'employeur, le poste, le contrat, le lieu, la rémunération si elle est indiquée.\n2. **Missions** : liste ce qu'on fera concrètement, en verbes d'action.\n3. **Exigences** : sépare ce qui est *indispensable* (diplôme requis par la loi, permis nécessaire) de ce qui est *souhaité* ou *négociable*. Une expérience demandée « de 3 ans » est souvent négociable.\n4. **Ce qui manque** : cite ce que l'offre ne dit pas (salaire, horaires, lieu précis, nom de l'entreprise).\n5. **Signaux d'alerte** : pour juger la fiabilité, lis `references/signaux-alerte.md` et indique ceux qui s'appliquent.\n6. **Questions à poser** : 3 à 5, pour l'entretien ou par mail.\n\n## Règles\n\n- N'invente rien sur l'entreprise. Si tu ne sais pas, écris « à vérifier ».\n- Ne conclus pas « c'est une arnaque » : indique les signaux présents et conseille de vérifier l'entreprise.\n- N'annonce aucun salaire de marché : seulement ce que l'offre dit.\n\n## Format\n\nRéponds avec les titres : Missions, Exigences (indispensables / souhaitées), Ce qui manque, Signaux d'alerte, Questions à poser.\n\n## Exemple\n\nDemande : « Décode cette offre : Travail à domicile, 3000 par mois, aucun diplôme, répondez aujourd'hui. »\n\nRésultat attendu :\n> **Signaux d'alerte** : promesse de revenu élevé sans diplôme, urgence artificielle, employeur non nommé. **Questions** : quel est le nom de l'entreprise ? quel type de contrat ?\n"},{"c":"references/signaux-alerte.md","t":"# Signaux d'alerte dans une offre\n\n## Contenu\n- Les paiements ou frais demandés\n- Les contacts et canaux\n- Les promesses\n- Ce qui est flou\n\n## Les paiements ou frais demandés\n- On demande de payer pour candidater, se former, recevoir du matériel ou « débloquer » un dossier.\n- On demande des coordonnées bancaires ou une pièce d'identité avant tout entretien.\n\n## Les contacts et canaux\n- Recruteur joignable uniquement par une messagerie instantanée ou une adresse gratuite alors que l'entreprise se dit « grande ».\n- Le nom de l'entreprise est absent, ou son site ne correspond pas à l'offre.\n- Un entretien « immédiat », sans appel vidéo ni rendez-vous.\n\n## Les promesses\n- Un salaire très supérieur à ce qui se pratique pour ce poste, sans expérience demandée.\n- « Travail à domicile, sans diplôme, revenus garantis ».\n- Une urgence artificielle (« répondez dans l'heure »).\n\n## Ce qui est flou\n- Missions décrites en termes vagues, sans tâche précise.\n- Contrat ou durée non indiqués.\n\nUn seul signal ne prouve rien ; plusieurs ensemble justifient de vérifier l'entreprise avant d'aller plus loin.\n"}],"desc":"Décode une offre d'emploi : missions réelles, exigences indispensables ou négociables, informations manquantes, signaux d'alerte et questions à poser. À utiliser quand l'utilisateur colle une offre d'emploi ou d'alternance et veut savoir si elle lui correspond ou si elle est fiable.","verdict":"ok"},{"id":"budget-mensuel-simple","nom":"budget-mensuel-simple","titre":"Faire un budget mensuel simple","niveau":"intermediaire","cat":"administratif","ico":"💶","surface":"tous","resume":"Un tableau revenus, dépenses fixes et variables, reste à vivre, calculé à partir de vos chiffres seulement.","sert":"Savoir ce qui reste à la fin du mois, sans application ni tableur. Vous donnez **vos** chiffres, le skill les range dans un tableau, calcule le **reste à vivre** et propose un seul levier. Un fichier de catégories évite les oublis.","essai":"- Donnez des chiffres fictifs et vérifiez que le reste à vivre est exact.\n- Oubliez volontairement l’assurance : Claude doit la demander en passant la liste.","adapter":"- Ajoutez des catégories propres à votre situation (garde d’enfant, pension, etc.).\n- Ajoutez un mode « suivi de trois mois » pour comparer.","attention":"Un modèle de langage peut se tromper en calcul : refaites l’addition. Ne collez jamais de numéro de compte ni d’identifiant bancaire.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: budget-mensuel-simple\ndescription: \"Construit un budget mensuel (revenus, dépenses fixes, dépenses variables, reste à vivre) à partir des chiffres donnés par l'utilisateur. À utiliser quand l'utilisateur veut faire le point sur son argent du mois ou comprendre où il passe.\"\n---\n\n# Faire un budget mensuel simple\n\n## Avant de commencer\n\nTous les montants viennent de l'utilisateur. **Tu n'en inventes aucun** et tu ne cites aucun barème d'aide : si une information légale est utile, renvoie à l'organisme concerné.\n\n## Étapes\n\n1. Demande **les revenus du mois** (une ligne par source).\n2. Passe en revue les catégories de `references/categories.md`, **trois à la fois**, pour les dépenses fixes puis variables.\n3. Présente un tableau : Catégorie, Montant, Type (fixe ou variable).\n4. Calcule : total des revenus, total des dépenses, **reste à vivre** = revenus − dépenses. Montre le calcul.\n5. Propose **un seul levier** : la dépense variable la plus élevée à regarder en premier.\n\n## Règles\n\n- Si un montant est approximatif, écris « ≈ » et dis-le en une phrase.\n- Reste neutre : ne juge pas les dépenses, ne conseille aucun produit financier.\n- Un reste à vivre négatif est une information, pas un reproche : propose d'abord de vérifier les chiffres.\n\n## Format\n\nTableau, puis Calcul, puis Levier.\n\n## Exemple\n\nDemande : « Revenus 1 100, loyer 450, courses 200, transport 60. »\n\nRésultat attendu :\n> Tableau des trois dépenses, calcul : 1 100 − 710 = 390, et un levier : regarder les courses en premier.\n"},{"c":"references/categories.md","t":"# Catégories de dépenses\n\n## Contenu\n- Dépenses fixes\n- Dépenses variables\n\n## Dépenses fixes\nLoyer ou crédit, charges et énergie, assurance, téléphone et internet, transport (abonnement), mutuelle, remboursements en cours.\n\n## Dépenses variables\nAlimentation, hygiène et entretien, transport occasionnel, vêtements, santé non remboursée, loisirs, sorties, cadeaux, imprévus.\n"}],"desc":"Construit un budget mensuel (revenus, dépenses fixes, dépenses variables, reste à vivre) à partir des chiffres donnés par l'utilisateur. À utiliser quand l'utilisateur veut faire le point sur son argent du mois ou comprendre où il passe.","verdict":"ok"},{"id":"menu-de-la-semaine","nom":"menu-de-la-semaine","titre":"Menu de la semaine à petit budget","niveau":"intermediaire","cat":"administratif","ico":"🍲","surface":"tous","resume":"Sept dîners, une liste de courses, un budget — avec vos contraintes (allergies, matériel, temps).","sert":"Un skill peut aussi servir dans la vie quotidienne. Celui-ci prépare **une semaine de repas** en tenant compte de vos contraintes, et fabrique la **liste de courses** regroupée par rayon. Vous l’adaptez à une famille, une colocation, ou un atelier cuisine.","essai":"- « Menu pour 3 personnes, sans porc, une seule plaque de cuisson. »\n- Vérifiez qu’aucun plat ne contient de porc et que la liste correspond aux plats.\n- Ajoutez « L’un de nous est allergique aux arachides » : le skill doit être strict.","adapter":"- Ajoutez les produits que vous avez toujours en stock.\n- Adaptez pour un atelier : liste pour 10 personnes, matériel collectif.","attention":"Ce n’est pas un avis diététique ni médical. En cas d’allergie grave, vérifiez les étiquettes.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: menu-de-la-semaine\ndescription: \"Compose un menu de sept dîners équilibrés et une liste de courses regroupée par rayon, selon le budget, le nombre de personnes, les contraintes alimentaires et le matériel. À utiliser quand l'utilisateur veut planifier ses repas de la semaine, faire une liste de courses ou cuisiner à petit budget.\"\n---\n\n# Menu de la semaine à petit budget\n\n## Étapes\n\n1. Demande en une fois : **nombre de personnes**, **budget approximatif**, **contraintes** (allergies, régime, religion), **matériel** (four, plaques, micro-ondes), **temps de cuisine** par soir.\n2. Propose 7 dîners variés : pas deux fois la même base (pâtes, riz, pommes de terre) de suite ; au moins 2 repas sans viande.\n3. Réutilise les restes : un plat du lundi peut préparer un déjeuner du mardi.\n4. Fais la **liste de courses** regroupée par rayon (fruits et légumes, épicerie, frais, surgelés), avec les quantités pour le nombre de personnes.\n5. Termine par 3 astuces d'économie (légumes de saison, congélation, cuisiner en plus grande quantité).\n\n## Règles\n\n- Respecte strictement les contraintes alimentaires ; en cas de doute sur un ingrédient, retire-le.\n- N'annonce pas de prix précis : donne un ordre de grandeur, et rappelle que les prix varient d'un magasin à l'autre.\n- Recettes simples : 6 ingrédients principaux au maximum.\n\n## Exemple\n\nDemande : « 2 personnes, petit budget, pas de four, 20 minutes par soir. »\n\nRésultat attendu : sept dîners à la poêle ou à la casserole, une liste de courses par rayon, trois astuces.\n"}],"desc":"Compose un menu de sept dîners équilibrés et une liste de courses regroupée par rayon, selon le budget, le nombre de personnes, les contraintes alimentaires et le matériel. À utiliser quand l'utilisateur veut planifier ses repas de la semaine, faire une liste de courses ou cuisiner à petit budget.","verdict":"ok"},{"id":"ordre-du-jour-de-reunion","nom":"ordre-du-jour-de-reunion","titre":"Ordre du jour et relevé de décisions","niveau":"intermediaire","cat":"animer","ico":"📋","surface":"tous","resume":"Un ordre du jour minuté avant la réunion, un relevé « décisions, actions, responsables » après.","sert":"Une réunion utile commence par un **but** et finit par des **actions avec un nom et une date**. Ce skill prépare l’ordre du jour avant, et fabrique le relevé après, à partir de vos notes en vrac. Un fichier de modèles évite de les recopier.","essai":"- Mode « avant » : « Réunion d’équipe de 45 minutes, trois sujets. »\n- Mode « après » : collez cinq lignes de notes sans noms : les responsables doivent rester `[responsable ?]`.","adapter":"- Ajoutez une section « Règles de l’équipe » (durée maximale, qui note).\n- Ajoutez au modèle un champ « Prochaine réunion ».","attention":"Un relevé n’est pas un procès-verbal officiel. Relisez-le avant diffusion : Claude n’était pas dans la salle.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: ordre-du-jour-de-reunion\ndescription: \"Prépare un ordre du jour minuté ou transforme des notes de réunion en relevé de décisions et d'actions. À utiliser quand l'utilisateur prépare une réunion d'équipe ou doit rédiger ce qui a été décidé.\"\n---\n\n# Ordre du jour et relevé de décisions\n\n## Deux modes\n\n- **Avant** : l'utilisateur donne le sujet, la durée et les participants. Utilise le modèle « Ordre du jour » de `references/modeles.md`.\n- **Après** : l'utilisateur colle ses notes. Utilise le modèle « Relevé » de `references/modeles.md`.\n\n## Étapes\n\n1. Identifie le mode ; si c'est ambigu, demande « avant ou après la réunion ? ».\n2. Remplis le modèle **sans inventer** : un point sans durée donnée reçoit [durée à fixer].\n3. Pour le relevé, sépare nettement **décidé**, **à faire** (qui, quoi, pour quand) et **en suspens**.\n4. Termine par **À confirmer** : noms ou dates absents des notes.\n\n## Règles\n\n- Un ordre du jour tient en 6 points maximum.\n- Chaque action a **un seul** responsable : sans nom donné, écris [responsable ?].\n- Ne résume pas les discussions : seulement les décisions et les actions.\n\n## Format\n\nSuis le modèle choisi, puis termine par À confirmer.\n\n## Exemple\n\nDemande : « Notes : on garde l'atelier du jeudi, Sana prévoit les inscriptions, à voir le budget. »\n\nRésultat attendu :\n> **Décidé** : l'atelier du jeudi est maintenu. **À faire** : Sana, inscriptions, [date ?]. **En suspens** : budget.\n"},{"c":"references/modeles.md","t":"# Modèles\n\n## Contenu\n- Ordre du jour\n- Relevé\n\n## Ordre du jour\n- **But de la réunion** : une phrase.\n- **Durée** : en minutes.\n- **Points** : titre, qui présente, durée, ce qu'on attend (information, avis, décision).\n- **Fin** : qui envoie le relevé, et quand.\n\n## Relevé\n- **Date et participants**\n- **Décidé** : une ligne par décision.\n- **À faire** : qui, quoi, pour quand.\n- **En suspens** : sujets reportés.\n"}],"desc":"Prépare un ordre du jour minuté ou transforme des notes de réunion en relevé de décisions et d'actions. À utiliser quand l'utilisateur prépare une réunion d'équipe ou doit rédiger ce qui a été décidé.","verdict":"ok"},{"id":"preparer-un-atelier","nom":"preparer-un-atelier","titre":"Préparer un atelier collectif","niveau":"intermediaire","cat":"animer","ico":"🧑‍🏫","surface":"tous","resume":"Objectifs, déroulé minuté, matériel et bilan — à partir d’un modèle que Claude adapte à votre public.","sert":"Animer un atelier demande un déroulé : qui fait quoi, combien de temps, avec quel matériel. Le skill part d’un **modèle** (fichier annexe) et l’adapte à votre thème, à la durée et au public. Il illustre le rôle du dossier `assets/` : un gabarit à remplir.","essai":"- Écrivez : « Prépare un atelier de 1 h 30 sur la préparation à l’entretien, 8 jeunes de 18-25 ans. »\n- Additionnez les durées du tableau : le total doit faire 90 minutes.\n- Changez la durée à 45 minutes et vérifiez que le déroulé est recalculé.","adapter":"- Remplacez le modèle par celui de votre structure.\n- Ajoutez un second modèle `assets/fiche-participant.md` si vous distribuez un support.","attention":"Le déroulé est une base : adaptez-le à votre groupe et à votre style d’animation.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: preparer-un-atelier\ndescription: \"Prépare le déroulé d'un atelier collectif : objectifs, séquences minutées, matériel, questions de bilan, à partir d'un modèle. À utiliser quand l'utilisateur prépare un atelier, une animation, une séance de formation ou une intervention de groupe.\"\n---\n\n# Préparer un atelier collectif\n\n## Étapes\n\n1. Demande en une seule fois : **thème**, **durée**, **nombre de personnes**, **public** (âge, niveau), **lieu et matériel disponible**.\n2. Ouvre `assets/deroule-modele.md` et remplis-le pour cet atelier.\n3. Adapte les séquences : la somme des durées doit être **égale** à la durée de l'atelier. Calcule-la avant de répondre.\n4. Prévois au moins un temps où **les participants agissent** (pas seulement écoutent).\n5. Termine par 3 questions de bilan et une liste du matériel à préparer.\n\n## Règles\n\n- Reste réaliste : pas plus de 3 notions nouvelles dans une séance de 2 heures.\n- Si une information manque (public, durée), demande-la plutôt que de la supposer.\n- Si l'atelier traite d'un sujet sensible, propose une règle de groupe en ouverture (respect, confidentialité).\n\n## Exemple\n\nDemande : « Atelier de 1 h 30 sur le CV, 8 jeunes de 18 à 25 ans. »\n\nRésultat attendu : un tableau dont les durées font 90 minutes au total, deux temps d'activité des participants, une liste de matériel et trois questions de bilan.\n"},{"c":"assets/deroule-modele.md","t":"# Déroulé d'atelier — [Titre]\n\n**Durée totale** : [x] min — **Participants** : [n] — **Public** : [..]\n\n## Objectifs\nÀ la fin, chaque participant sait : 1) … 2) … 3) …\n\n## Déroulé\n| Heure | Durée | Séquence | Qui agit | Matériel |\n|---|---|---|---|---|\n| 0:00 | 10 min | Accueil et règles du groupe | Animateur | — |\n| 0:10 | 15 min | Apport court | Animateur | Support |\n| 0:25 | 30 min | Activité en sous-groupes | Participants | Fiches |\n| 0:55 | 15 min | Mise en commun | Tous | Tableau |\n| 1:10 | 10 min | Bilan | Tous | Questionnaire |\n\n## Matériel à préparer\n- …\n\n## Questions de bilan\n1. Qu'avez-vous appris ?\n2. Qu'allez-vous essayer cette semaine ?\n3. Qu'est-ce qui vous a manqué ?\n"}],"desc":"Prépare le déroulé d'un atelier collectif : objectifs, séquences minutées, matériel, questions de bilan, à partir d'un modèle. À utiliser quand l'utilisateur prépare un atelier, une animation, une séance de formation ou une intervention de groupe.","verdict":"ok"},{"id":"preparer-un-entretien","nom":"preparer-un-entretien","titre":"Préparer un entretien","niveau":"intermediaire","cat":"emploi","ico":"🎤","surface":"tous","resume":"Des questions probables et la méthode STAR, avec vos propres exemples — Claude questionne, vous racontez.","sert":"Un entretien se prépare à voix haute. Le skill joue l’**entraîneur** : il pose les questions probables pour **ce** poste, vous aide à structurer vos réponses avec la méthode **STAR** (Situation, Tâche, Action, Résultat), et ne rédige pas vos réponses à votre place.","essai":"- Écrivez : « Je prépare un entretien pour un poste de vendeur en alternance. Entraîne-moi. »\n- Répondez de façon volontairement vague à une question : le skill doit vous relancer.\n- Essayez « Écris ma réponse » : il doit refuser et vous aider à la construire.","adapter":"- Ajoutez des questions propres à votre secteur dans un fichier `references/questions.md`.\n- Passez à 3 ou 8 questions selon la durée de la séance.","attention":"C’est un entraînement, pas un pronostic. Aucune IA ne sait comment réagira le recruteur : entraînez-vous aussi avec une personne.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: preparer-un-entretien\ndescription: \"Entraîne l'utilisateur à un entretien d'embauche ou de formation : questions probables pour le poste, aide à structurer les réponses avec la méthode STAR, retour sur les réponses. À utiliser quand l'utilisateur prépare un entretien, demande des questions d'entretien ou veut s'exercer.\"\n---\n\n# Préparer un entretien\n\n## Rôle\n\nTu es un entraîneur bienveillant et exigeant. Tu questionnes, tu aides à structurer ; tu **n'écris jamais** les réponses à la place de la personne : une réponse inventée par une IA s'écroule à la question de relance.\n\n## Étapes\n\n1. Demande le poste visé et la structure (une seule question à la fois).\n2. Annonce le déroulé : 5 questions, une par une.\n3. Pose une question. Attends la réponse.\n4. Donne un retour court : un point fort, un point à améliorer, et — si la réponse est vague — une question de relance (« Pouvez-vous donner un exemple précis ? »).\n5. Pour les questions d'expérience, guide avec la méthode décrite dans `references/methode-star.md`.\n6. Après les 5 questions, résume : ce qui est solide, ce qu'il faut retravailler.\n\n## Règles\n\n- Une seule question à la fois.\n- Ne juge pas la personne ; juge la réponse.\n- N'invente jamais d'exemple pour elle. Si elle n'a pas d'exemple, aide-la à en chercher dans le bénévolat, les études, la vie quotidienne.\n"},{"c":"references/methode-star.md","t":"# La méthode STAR\n\n## Contenu\n- Les quatre temps\n- Les questions pour aider\n- Un exemple\n\n## Les quatre temps\n- **S**ituation : dans quel contexte ?\n- **T**âche : quel était mon rôle, mon objectif ?\n- **A**ction : qu'ai-je fait, moi, concrètement ?\n- **R**ésultat : qu'est-ce que cela a donné ? Qu'ai-je appris ?\n\n## Les questions pour aider\n- « Dans quel cadre était-ce ? Combien de personnes ? »\n- « Qu'avez-vous fait vous-même, par opposition à l'équipe ? »\n- « Comment avez-vous su que cela avait fonctionné ? »\n\n## Un exemple\nSituation : lors d'un stage en magasin, la caisse est tombée en panne un samedi.\nTâche : je devais continuer à servir les clients.\nAction : j'ai ouvert une file manuelle et prévenu le responsable.\nRésultat : personne n'a quitté la file, et j'ai appris à garder mon calme.\n"}],"desc":"Entraîne l'utilisateur à un entretien d'embauche ou de formation : questions probables pour le poste, aide à structurer les réponses avec la méthode STAR, retour sur les réponses. À utiliser quand l'utilisateur prépare un entretien, demande des questions d'entretien ou veut s'exercer.","verdict":"ok"},{"id":"verifier-une-information","nom":"verifier-une-information","titre":"Vérifier une information","niveau":"intermediaire","cat":"analyser","ico":"✅","surface":"tous","resume":"Repérer ce qui se vérifie, hiérarchiser les sources, dire clairement « non trouvé » plutôt qu’inventer.","sert":"Avant de relayer une information (chiffre, citation, règle), il faut la contrôler. Le skill applique une **méthode** : repérer les éléments vérifiables, chercher la **source la plus proche** de l’origine, et conclure par « confirmé », « contredit » ou « introuvable » — jamais par une supposition.","essai":"- Collez : « 7 recrutements sur 10 ne passent jamais par une annonce » et demandez « Vérifie ».\n- Vérifiez que l’IA distingue « confirmé » et « introuvable » et ne cite pas d’adresse inventée.\n- Testez avec un texte sans chiffre : le skill doit dire qu’il y a peu à vérifier.","adapter":"- Ajoutez les sources de référence de votre domaine dans `references/grille-sources.md`.\n- Pour les textes d’IA, ajoutez une consigne : « vérifie en priorité les lois, citations et chiffres ».","attention":"Un modèle peut se tromper sur une source. Ouvrez vous-même la source avant de relayer.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: verifier-une-information\ndescription: \"Aide à vérifier une affirmation ou un texte : repère les éléments vérifiables (chiffres, dates, citations, lois), propose où chercher et conclut confirmé, contredit ou introuvable. À utiliser quand l'utilisateur veut contrôler une information, un chiffre, une citation ou un texte avant de le relayer.\"\n---\n\n# Vérifier une information\n\n## Étapes\n\n1. Découpe le texte en **affirmations vérifiables** : chiffre, date, nom, citation, règle, lien de cause.\n2. Pour chacune, indique le **type de source** qui fait foi : texte officiel, organisme statistique, publication d'origine, site de l'institution concernée. Lis `references/grille-sources.md` pour la hiérarchie.\n3. Si tu as accès à la recherche, cherche la source d'origine et cite-la. Sinon, dis-le et donne la **requête** à taper.\n4. Conclus pour chaque affirmation : **Confirmé** (source citée), **Contredit** (source citée), **Introuvable** (rien trouvé).\n5. Termine par un bilan : ce qui est solide, ce qui reste à vérifier.\n\n## Règles\n\n- « Introuvable » n'est pas « faux » : dis-le comme tel.\n- Ne cite jamais une source dont tu n'es pas sûr qu'elle existe. Pas d'adresse devinée.\n- Les montants, délais et seuils changent : demande la date de la source.\n- Ne te fie pas à ta mémoire pour trancher un chiffre officiel : renvoie à la source.\n\n## Exemple\n\nDemande : « Vérifie : le SMIC a augmenté de 10 % en un an. »\n\nRésultat attendu :\n> **Affirmation** : hausse de 10 % en un an. **Source qui fait foi** : le texte officiel de revalorisation. **Conclusion** : Introuvable sans source — voici la requête à taper.\n"},{"c":"references/grille-sources.md","t":"# Hiérarchie des sources\n\n## Contenu\n- Du plus fiable au moins fiable\n- Les réflexes de contrôle\n\n## Du plus fiable au moins fiable\n1. Le texte officiel d'origine (loi, décret, arrêté, notice de l'organisme).\n2. Le site de l'institution concernée (ministère, caisse, collectivité).\n3. Un organisme statistique ou un rapport public daté.\n4. Une publication de presse qui cite sa source.\n5. Un site ou un message qui ne cite rien : à traiter comme une rumeur.\n\n## Les réflexes de contrôle\n- Chercher la **date** : une règle de l'an dernier n'est peut-être plus valable.\n- Chercher **qui** dit cela et **d'où il le tient**.\n- Croiser avec une seconde source indépendante.\n"}],"desc":"Aide à vérifier une affirmation ou un texte : repère les éléments vérifiables (chiffres, dates, citations, lois), propose où chercher et conclut confirmé, contredit ou introuvable. À utiliser quand l'utilisateur veut contrôler une information, un chiffre, une citation ou un texte avant de le relayer.","verdict":"ok"},{"id":"analyser-un-tableau-de-suivi","nom":"analyser-un-tableau-de-suivi","titre":"Analyser un tableau de suivi (CSV)","niveau":"expert","cat":"analyser","ico":"📊","surface":"tous","resume":"Un script compte les valeurs d’une colonne ; Claude rédige la synthèse à partir des chiffres exacts.","sert":"Pour un bilan de l’activité (statuts, sorties, thèmes d’ateliers), les chiffres doivent être **exacts**. Ce skill confie le comptage à un **script** sur un fichier CSV **anonymisé**, puis fait rédiger à Claude une synthèse qui s’appuie uniquement sur ces chiffres.","essai":"- Préparez un petit CSV fictif (colonnes « statut » et « sortie ») d’une vingtaine de lignes.\n- Demandez : « Analyse la colonne statut, puis croise-la avec sortie. »\n- Donnez une colonne qui n’existe pas : le script liste les colonnes disponibles, et Claude doit s’en servir.","adapter":"- Ajoutez au script un filtre (`--ou colonne=valeur`) pour comparer deux périodes.\n- Pour un bilan annuel, ajoutez une section « Comparaison avec l’année précédente » dans un second skill.","attention":"Ne joignez jamais un tableau nominatif : anonymisez d’abord. Le script compte, il n’interprète pas ; les conclusions restent les vôtres.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: analyser-un-tableau-de-suivi\ndescription: \"Compte et résume les valeurs d'un fichier CSV anonymisé (statuts, sorties, thèmes) avec un script, puis rédige une synthèse fondée sur ces chiffres. À utiliser quand l'utilisateur joint un tableau CSV de suivi d'activité et veut des effectifs, des pourcentages ou un bilan.\"\n---\n\n# Analyser un tableau de suivi\n\n## Avant de commencer\n\nLe fichier doit être **anonymisé** : pas de noms, d'adresses ni de numéros. S'il contient des données personnelles, arrête-toi et demande à l'utilisateur de les retirer.\n\n## Étapes\n\n1. Repère les colonnes du fichier (le script les liste en cas d'erreur).\n2. **Lance** `python3 scripts/stats.py fichier.csv colonne` pour chaque colonne utile. Avec deux colonnes, le script fait un tableau croisé.\n3. Reporte les effectifs et les pourcentages tels que le script les donne.\n4. Rédige la **synthèse** en 5 lignes maximum : ce qui domine, ce qui est rare, ce qui surprend.\n5. Termine par **Limites** : nombre de lignes, valeurs vides, ce que le tableau ne permet pas de conclure.\n\n## Règles\n\n- Tous les chiffres viennent du script : n'en invente aucun, n'arrondis pas autrement que lui.\n- Un pourcentage sur un petit effectif est trompeur : signale-le quand il y a moins de 20 lignes.\n- Ne tire aucune conclusion causale d'un simple comptage.\n\n## Format\n\nRéponds avec : Chiffres, Synthèse, Limites.\n\n## Exemple\n\nDemande : « Combien de jeunes par statut ? » avec le fichier suivi.csv.\n\nRésultat attendu :\n> **Chiffres** : emploi : 12 (60 %) ; formation : 8 (40 %). **Limites** : 20 lignes seulement, les pourcentages sont fragiles.\n"},{"c":"scripts/stats.py","t":"#!/usr/bin/env python3\n\"\"\"Compte les valeurs d'une colonne d'un fichier CSV (bibliothèque standard seulement).\n\nUsage :\n    python3 scripts/stats.py fichier.csv colonne [colonne2]\n\nAffiche, pour chaque valeur, l'effectif et le pourcentage. Avec deux colonnes, un tableau croisé.\nLe séparateur (virgule, point-virgule, tabulation) est détecté. Aucune valeur n'est modifiée.\n\"\"\"\nimport csv\nimport sys\nfrom collections import Counter\n\n\ndef lire(chemin):\n    with open(chemin, encoding=\"utf-8-sig\", newline=\"\") as f:\n        echantillon = f.read(4096)\n        f.seek(0)\n        try:\n            dialecte = csv.Sniffer().sniff(echantillon, delimiters=\",;\\t\")\n        except csv.Error:\n            dialecte = csv.excel\n        return list(csv.DictReader(f, dialect=dialecte))\n\n\ndef main(argv):\n    if len(argv) < 3:\n        print(__doc__)\n        return 2\n    lignes = lire(argv[1])\n    if not lignes:\n        print(\"Fichier vide.\")\n        return 1\n    colonnes = argv[2:4]\n    for c in colonnes:\n        if c not in lignes[0]:\n            print(f\"Colonne « {c} » introuvable. Colonnes disponibles : {', '.join(lignes[0].keys())}\")\n            return 1\n    n = len(lignes)\n    if len(colonnes) == 1:\n        cpt = Counter((l[colonnes[0]] or \"(vide)\").strip() or \"(vide)\" for l in lignes)\n        print(f\"{n} lignes — colonne « {colonnes[0]} »\")\n        for valeur, k in cpt.most_common():\n            print(f\"- {valeur} : {k} ({100 * k / n:.0f} %)\")\n    else:\n        a, b = colonnes\n        cpt = Counter(((l[a] or \"(vide)\").strip() or \"(vide)\", (l[b] or \"(vide)\").strip() or \"(vide)\") for l in lignes)\n        print(f\"{n} lignes — « {a} » × « {b} »\")\n        for (va, vb), k in sorted(cpt.items()):\n            print(f\"- {va} / {vb} : {k}\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n"}],"desc":"Compte et résume les valeurs d'un fichier CSV anonymisé (statuts, sorties, thèmes) avec un script, puis rédige une synthèse fondée sur ces chiffres. À utiliser quand l'utilisateur joint un tableau CSV de suivi d'activité et veut des effectifs, des pourcentages ou un bilan.","verdict":"ok"},{"id":"auditer-les-liens-d-un-texte","nom":"auditer-les-liens-d-un-texte","titre":"Auditer les liens d’un texte","niveau":"expert","cat":"donnees","ico":"🔗","surface":"tous","resume":"Un script liste les adresses d’un texte et signale celles qui méritent un doute ; Claude explique, sans les ouvrir.","sert":"Avant de partager un document, ou face à un message suspect : **quelles adresses contient-il, et lesquelles sont douteuses ?** Le script extrait les liens et applique des règles simples (pas de chiffrement, raccourcisseur, adresse IP, identifiant dans l’adresse). Claude commente. **Personne n’ouvre les liens.**","essai":"- Collez un texte fictif avec un lien `http://`, un lien raccourci et un lien normal.\n- Collez un texte sans lien : Claude doit dire qu’il n’y en a aucun.","adapter":"- Ajoutez vos propres raccourcisseurs ou domaines à surveiller dans la liste du script.\n- Ajoutez une liste de domaines **de confiance** de votre structure.","attention":"Le script ne sait pas si un site est sûr : il repère des signes. Un lien propre peut être piégé, un lien étrange peut être légitime. Ne collez pas de message contenant des données personnelles.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: auditer-les-liens-d-un-texte\ndescription: \"Liste les adresses web d'un texte avec un script et signale celles qui méritent un doute (http, raccourcisseur, adresse IP, identifiant). À utiliser quand l'utilisateur colle un message ou un document et veut savoir si ses liens sont sûrs ou propres.\"\n---\n\n# Auditer les liens d'un texte\n\n## Étapes\n\n1. Enregistre le texte dans un fichier (`texte.txt`).\n2. **Lance** `python3 scripts/liens.py texte.txt`.\n3. Reporte la liste telle que le script la donne : adresse, et signaux éventuels.\n4. Explique chaque signal **en une phrase simple**.\n5. Termine par **Que faire** : ne pas cliquer, aller sur le site officiel par la barre d'adresse, signaler si besoin.\n\n## Règles\n\n- **N'ouvre aucun lien** et ne les devine pas : tu ne vois que ce que le script donne.\n- Un lien sans signal n'est **pas** garanti sûr : dis-le.\n- Ne recopie jamais un secret ou un identifiant visible dans une adresse : dis seulement qu'il y en a un.\n\n## Format\n\nRéponds avec : Liens trouvés, Signaux, Que faire.\n\n## Exemple\n\nDemande : « Vérifie les liens de ce SMS. »\n\nRésultat attendu :\n> **Liens trouvés** : 1. **Signaux** : adresse raccourcie, aucun chiffrement. **Que faire** : ne cliquez pas ; allez sur le site de l'organisme en tapant son adresse.\n"},{"c":"scripts/liens.py","t":"#!/usr/bin/env python3\n\"\"\"Liste les adresses web d'un texte et signale celles qui méritent un doute.\n\nUsage :\n    python3 scripts/liens.py texte.txt\n\nAucune adresse n'est ouverte : le script ne fait aucune requête réseau (bibliothèque standard seulement).\n\"\"\"\nimport re\nimport sys\nfrom urllib.parse import urlparse\n\nRACCOURCIS = {\"bit.ly\", \"tinyurl.com\", \"t.co\", \"goo.gl\", \"ow.ly\", \"is.gd\", \"cutt.ly\", \"rb.gy\", \"shorturl.at\"}\nMOTS_SECRETS = (\"token\", \"key\", \"apikey\", \"secret\", \"auth\", \"pwd\", \"session\")\nMOTIF = re.compile(r\"https?://[^\\s<>\\\"')\\]]+\", re.IGNORECASE)\n\n\ndef signaux(adresse):\n    liste = []\n    p = urlparse(adresse)\n    hote = (p.hostname or \"\").lower()\n    if p.scheme.lower() == \"http\":\n        liste.append(\"pas de chiffrement (http)\")\n    if hote in RACCOURCIS:\n        liste.append(\"adresse raccourcie : on ne voit pas la destination\")\n    if re.fullmatch(r\"\\d{1,3}(\\.\\d{1,3}){3}\", hote):\n        liste.append(\"adresse numérique (IP) au lieu d'un nom\")\n    if hote.startswith(\"xn--\") or \".xn--\" in hote:\n        liste.append(\"nom de domaine en alphabet codé (peut imiter un autre nom)\")\n    if p.username or \"@\" in (p.netloc or \"\"):\n        liste.append(\"un identifiant est écrit avant le nom du site\")\n    requete = (p.query or \"\").lower()\n    if any(m in requete for m in MOTS_SECRETS):\n        liste.append(\"l'adresse contient peut-être un jeton ou un identifiant (à ne pas partager)\")\n    if hote.count(\".\") >= 4:\n        liste.append(\"nom de domaine avec beaucoup de sous-parties\")\n    return liste\n\n\ndef main(argv):\n    if len(argv) < 2:\n        print(__doc__)\n        return 2\n    with open(argv[1], encoding=\"utf-8-sig\") as f:\n        texte = f.read()\n    trouves = []\n    for m in MOTIF.finditer(texte):\n        a = m.group(0).rstrip(\".,;:!?\")\n        if a not in trouves:\n            trouves.append(a)\n    print(f\"{len(trouves)} lien(s) trouvé(s).\")\n    for i, a in enumerate(trouves, start=1):\n        s = signaux(a)\n        print(f\"{i}. {a}\")\n        for x in s:\n            print(f\"   - {x}\")\n        if not s:\n            print(\"   - aucun signal (ce n'est pas une garantie)\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n"}],"desc":"Liste les adresses web d'un texte avec un script et signale celles qui méritent un doute (http, raccourcisseur, adresse IP, identifiant). À utiliser quand l'utilisateur colle un message ou un document et veut savoir si ses liens sont sûrs ou propres.","verdict":"ok"},{"id":"evaluer-un-skill","nom":"evaluer-un-skill","titre":"Évaluer un skill avec des cas de test","niveau":"expert","cat":"meta","ico":"🧪","surface":"tous","resume":"Écrire cinq cas de test, les jouer, noter les écarts, puis corriger le skill : la boucle qui le rend fiable.","sert":"Un skill qui « a l’air bon » ne l’est pas forcément. Ce skill fabrique **un petit jeu de cas de test** (cas simples, cas limites, cas où le skill ne doit **pas** se déclencher), vous aide à les jouer, puis propose **une correction à la fois**. C’est la méthode recommandée pour améliorer un skill.","essai":"- Collez un de vos skills et demandez : « Évalue-le. »\n- Jouez le cas négatif dans une conversation neuve : le skill ne doit pas se déclencher.","adapter":"- Ajoutez un cas de test par défaut propre à votre domaine (par exemple « donnée personnelle dans la demande »).\n- Ajoutez une section « Score » : combien de cas sur cinq, avant et après correction.","attention":"Un jeu de cinq cas ne prouve pas qu’un skill est fiable : il montre ce qui casse. Gardez vos cas, ils servent à chaque modification.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: evaluer-un-skill\ndescription: \"Construit des cas de test pour un skill, aide à noter les résultats et propose une correction à la fois. À utiliser quand l'utilisateur veut vérifier ou améliorer un skill qu'il a écrit, ou comprendre pourquoi il se déclenche mal.\"\n---\n\n# Évaluer un skill avec des cas de test\n\n## Avant de commencer\n\nDemande à voir le **SKILL.md** complet. Sans lui, n'invente rien : explique ce qu'il faut coller.\n\n## Étapes\n\n1. Résume en une phrase **ce que le skill promet** et **quand il doit se déclencher**.\n2. Écris **cinq cas** en suivant `references/cas-de-test.md` : deux cas simples, deux cas limites, un cas où le skill **ne doit pas** se déclencher.\n3. Pour chaque cas, écris le **résultat attendu** en une ligne, avant tout essai.\n4. Invite l'utilisateur à jouer les cas **dans une conversation neuve**, et à coller ce qu'il obtient.\n5. Compare chaque résultat à l'attendu : conforme, partiel ou raté, avec **une phrase de raison**.\n6. Propose **une seule correction** du SKILL.md (la plus rentable), puis invite à rejouer les mêmes cinq cas.\n\n## Règles\n\n- Les cas sont écrits **avant** de regarder les résultats, jamais ajustés après.\n- Une correction à la fois : sinon on ne sait plus ce qui a marché.\n- Si le skill échoue à se déclencher, regarde d'abord sa **description**.\n- N'invente jamais ce que Claude « aurait répondu » : seuls les résultats collés comptent.\n\n## Format\n\nRéponds avec : Promesse, Cas (tableau), puis après les essais : Bilan et Correction proposée.\n\n## Exemple\n\nDemande : « Évalue mon skill de comptes rendus d'atelier. »\n\nRésultat attendu :\n> Une promesse en une phrase, cinq cas dont un « ne doit pas se déclencher » (une demande de mail), et la consigne de les jouer dans une conversation neuve.\n"},{"c":"references/cas-de-test.md","t":"# Écrire de bons cas de test\n\n## Contenu\n- Les cinq cas\n- Un tableau type\n- Ce qui fait un mauvais cas\n\n## Les cinq cas\n- **Simple 1** : la demande la plus fréquente, formulée comme un utilisateur la ferait.\n- **Simple 2** : la même demande avec d'autres mots, pour tester la description.\n- **Limite 1** : donnée manquante ou ambiguë.\n- **Limite 2** : consigne contradictoire ou très longue.\n- **Négatif** : une demande voisine pour laquelle le skill ne doit pas servir.\n\n## Un tableau type\n| Cas | Demande | Résultat attendu |\n|---|---|---|\n| Simple 1 | … | … |\n\n## Ce qui fait un mauvais cas\n- Un résultat attendu écrit après l'essai.\n- Un cas qui teste dix choses à la fois.\n- Une demande que personne ne ferait.\n"}],"desc":"Construit des cas de test pour un skill, aide à noter les résultats et propose une correction à la fois. À utiliser quand l'utilisateur veut vérifier ou améliorer un skill qu'il a écrit, ou comprendre pourquoi il se déclenche mal.","verdict":"ok"},{"id":"mesurer-la-lisibilite","nom":"mesurer-la-lisibilite","titre":"Mesurer la lisibilité d’un texte","niveau":"expert","cat":"analyser","ico":"📏","surface":"tous","resume":"Un script compte les mots et les phrases longues ; Claude propose ensuite de les couper.","sert":"« Ce texte est trop long » n’est pas une mesure. Ce skill lance un **script** qui compte les mots, calcule la longueur moyenne des phrases et liste celles qui dépassent un seuil. Claude propose ensuite des coupes **uniquement** sur ces phrases-là. Le chiffre vient du script, la reformulation de Claude : chacun fait ce qu’il fait de mieux.","essai":"- Collez un paragraphe d’un règlement ou d’un courrier administratif et dites : « Mesure sa lisibilité, puis allège-le. »\n- Notez la longueur moyenne avant et après.\n- Essayez avec un texte déjà court : le skill doit répondre qu’il n’y a rien à couper.","adapter":"- Changez le seuil par défaut dans le script ou dans les étapes selon votre public.\n- Ajoutez au script une liste de mots à signaler (jargon de votre structure).","attention":"Un texte peut respecter tous les repères et rester obscur, ou en enfreindre un et rester très clair. Le script mesure la forme, pas le sens. Il demande l’exécution de code.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: mesurer-la-lisibilite\ndescription: \"Mesure la lisibilité d'un texte français avec un script (longueur des phrases, mots longs) puis propose de couper les phrases trop longues. À utiliser quand l'utilisateur demande si un texte est lisible, trop long ou trop compliqué, ou veut l'alléger avec des chiffres.\"\n---\n\n# Mesurer la lisibilité\n\n## Étapes\n\n1. Enregistre le texte dans un fichier `texte.txt`.\n2. **Lance** `python3 scripts/lisibilite.py texte.txt` (seuil par défaut : 25 mots ; pour un texte à lire vite, ajoute `--max-mots 18`).\n3. Rapporte les chiffres tels que le script les donne : mots, phrases, longueur moyenne, part de mots longs.\n4. Pour chaque phrase signalée, propose **une** version plus courte qui garde le sens. Ne touche pas aux phrases non signalées.\n5. Relance le script sur la version corrigée et compare les chiffres avant et après.\n\n## Règles\n\n- Ne recalcule pas les chiffres toi-même : ils viennent du script.\n- Ne change ni les faits, ni les chiffres, ni les noms du texte.\n- Ces repères valent pour un texte courant en français. Ils ne jugent pas la qualité du fond.\n\n## Format\n\nRéponds avec : Chiffres avant, Phrases à couper (avant / après), Chiffres après.\n\n## Exemple\n\nDemande : « Ce paragraphe est-il lisible ? »\n\nRésultat attendu :\n> **Chiffres avant** : 3 phrases, 31 mots en moyenne. **Phrase 2** (47 mots) → deux phrases de 20 mots. **Chiffres après** : 4 phrases, 19 mots en moyenne.\n"},{"c":"scripts/lisibilite.py","t":"#!/usr/bin/env python3\n\"\"\"Mesure la lisibilité d'un texte français (bibliothèque standard seulement).\n\nUsage :\n    python3 scripts/lisibilite.py fichier.txt [--max-mots 25]\n\nAffiche : nombre de mots et de phrases, longueur moyenne d'une phrase, part des mots de 12 lettres ou plus,\net la liste des phrases trop longues (numéro, nombre de mots, début de la phrase).\n\"\"\"\nimport re\nimport sys\n\n\ndef phrases(texte):\n    texte = re.sub(r\"\\s+\", \" \", texte.strip())\n    morceaux = re.split(r\"(?<=[.!?…])\\s+(?=[A-ZÀ-ÖØ-Þ0-9«\\\"(])\", texte)\n    return [m for m in morceaux if m]\n\n\ndef mots(phrase):\n    return re.findall(r\"[\\wÀ-ÿ'’-]+\", phrase)\n\n\ndef main(argv):\n    if len(argv) < 2:\n        print(__doc__)\n        return 2\n    seuil = 25\n    if \"--max-mots\" in argv:\n        seuil = int(argv[argv.index(\"--max-mots\") + 1])\n    with open(argv[1], encoding=\"utf-8-sig\") as f:\n        texte = f.read()\n    ph = phrases(texte)\n    if not ph:\n        print(\"Texte vide.\")\n        return 0\n    comptes = [len(mots(p)) for p in ph]\n    total = sum(comptes)\n    longs = [m for p in ph for m in mots(p) if len(m) >= 12]\n    print(f\"Mots : {total}\")\n    print(f\"Phrases : {len(ph)}\")\n    print(f\"Longueur moyenne d'une phrase : {total / len(ph):.1f} mots\")\n    print(f\"Mots de 12 lettres ou plus : {100 * len(longs) / max(total, 1):.0f} %\")\n    trop = [(i + 1, n, ph[i]) for i, n in enumerate(comptes) if n > seuil]\n    if trop:\n        print(f\"\\nPhrases de plus de {seuil} mots :\")\n        for i, n, p in trop:\n            print(f\"- phrase {i} ({n} mots) : {p[:70]}{'…' if len(p) > 70 else ''}\")\n    else:\n        print(f\"\\nAucune phrase de plus de {seuil} mots.\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n"}],"desc":"Mesure la lisibilité d'un texte français avec un script (longueur des phrases, mots longs) puis propose de couper les phrases trop longues. À utiliser quand l'utilisateur demande si un texte est lisible, trop long ou trop compliqué, ou veut l'alléger avec des chiffres.","verdict":"ok"},{"id":"planning-en-ics","nom":"planning-en-ics","titre":"Planning en fichier d’agenda (.ics)","niveau":"expert","cat":"administratif","ico":"📆","surface":"tous","resume":"Un script transforme une liste d’événements en fichier .ics à importer dans n’importe quel agenda.","sert":"Vous avez une liste de rendez-vous ou de séances dans un message. Un **script** les transforme en fichier `.ics`, que tout agenda sait importer (Google, Outlook, Apple, téléphone). Claude s’occupe de comprendre la liste ; le script s’occupe du format, qui doit être exact.","essai":"- Donnez trois événements avec date, heure et durée : le fichier doit s’importer dans votre agenda.\n- Écrivez « jeudi prochain » sans date : Claude doit vous demander la date exacte.","adapter":"- Ajoutez un rappel (`BEGIN:VALARM`) 30 minutes avant chaque événement.\n- Ajoutez un fuseau explicite si vous partagez le fichier entre pays.","attention":"Vérifiez les dates dans l’agenda après l’import : une erreur de saisie donne un fichier valide mais faux. Ne mettez pas de données personnelles dans les titres si le fichier est partagé.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: planning-en-ics\ndescription: \"Transforme une liste de rendez-vous ou de séances en fichier d'agenda .ics importable, avec un script. À utiliser quand l'utilisateur veut ajouter plusieurs événements à son agenda à partir d'un texte ou d'un planning.\"\n---\n\n# Planning en fichier d'agenda\n\n## Étapes\n\n1. Relève chaque événement : **titre, date, heure de début, durée en minutes** ; le lieu est facultatif.\n2. S'il manque une date, une heure ou une durée, **demande-la** : n'en suppose aucune.\n3. Écris les événements dans un fichier texte, un par ligne, au format décrit dans `scripts/ics.py` (`AAAA-MM-JJ;HH:MM;durée;titre;lieu`).\n4. **Lance** `python3 scripts/ics.py evenements.txt planning.ics`.\n5. Récapitule les événements créés dans un tableau et indique comment importer le fichier (ouvrir le fichier, ou « Importer » dans l'agenda).\n\n## Règles\n\n- N'invente jamais une date : si le texte dit « jeudi prochain », demande la date exacte.\n- Les heures sont des heures locales, sans fuseau : dis-le dans la réponse.\n- Ne crée pas d'événement répété sans demande explicite.\n\n## Format\n\nRéponds avec : Tableau des événements, puis Comment importer.\n\n## Exemple\n\nDemande : « Atelier CV le 2026-11-12 à 14h, 90 minutes, salle 3. »\n\nRésultat attendu :\n> Un événement « Atelier CV » le 12 novembre 2026 à 14:00, durée 1 h 30, lieu salle 3, puis la marche à suivre pour importer le fichier .ics.\n"},{"c":"scripts/ics.py","t":"#!/usr/bin/env python3\n\"\"\"Fabrique un fichier d'agenda .ics (bibliothèque standard seulement).\n\nUsage :\n    python3 scripts/ics.py evenements.txt planning.ics\n\nUne ligne par événement : AAAA-MM-JJ;HH:MM;durée en minutes;titre;lieu (le lieu est facultatif).\nLes heures sont des heures locales sans fuseau. Les lignes vides et celles qui commencent par # sont ignorées.\n\"\"\"\nimport sys\nfrom datetime import datetime, timedelta, timezone\n\n\ndef echapper(texte):\n    return (texte.replace(\"\\\\\", \"\\\\\\\\\").replace(\";\", \"\\\\;\").replace(\",\", \"\\\\,\").replace(\"\\n\", \"\\\\n\"))\n\n\ndef main(argv):\n    if len(argv) < 3:\n        print(__doc__)\n        return 2\n    maintenant = datetime.now(timezone.utc).strftime(\"%Y%m%dT%H%M%SZ\")\n    evenements, erreurs = [], []\n    with open(argv[1], encoding=\"utf-8-sig\") as f:\n        for numero, brut in enumerate(f, start=1):\n            ligne = brut.strip()\n            if not ligne or ligne.startswith(\"#\"):\n                continue\n            morceaux = [m.strip() for m in ligne.split(\";\")]\n            if len(morceaux) < 4:\n                erreurs.append(f\"ligne {numero} : il faut au moins date;heure;durée;titre\")\n                continue\n            try:\n                debut = datetime.strptime(morceaux[0] + \" \" + morceaux[1], \"%Y-%m-%d %H:%M\")\n                duree = int(morceaux[2])\n                if duree <= 0:\n                    raise ValueError(\"durée\")\n            except ValueError:\n                erreurs.append(f\"ligne {numero} : date, heure ou durée illisible\")\n                continue\n            evenements.append((debut, debut + timedelta(minutes=duree), morceaux[3], morceaux[4] if len(morceaux) > 4 else \"\"))\n    if erreurs:\n        print(\"Fichier non créé :\")\n        for e in erreurs:\n            print(\"- \" + e)\n        return 1\n    if not evenements:\n        print(\"Aucun événement.\")\n        return 1\n    sortie = [\"BEGIN:VCALENDAR\", \"VERSION:2.0\", \"PRODID:-//Skills de poche//planning//FR\", \"CALSCALE:GREGORIAN\"]\n    for i, (debut, fin, titre, lieu) in enumerate(evenements, start=1):\n        sortie += [\n            \"BEGIN:VEVENT\",\n            f\"UID:planning-{maintenant}-{i}@skills-de-poche\",\n            f\"DTSTAMP:{maintenant}\",\n            \"DTSTART:\" + debut.strftime(\"%Y%m%dT%H%M%S\"),\n            \"DTEND:\" + fin.strftime(\"%Y%m%dT%H%M%S\"),\n            \"SUMMARY:\" + echapper(titre),\n        ]\n        if lieu:\n            sortie.append(\"LOCATION:\" + echapper(lieu))\n        sortie.append(\"END:VEVENT\")\n    sortie.append(\"END:VCALENDAR\")\n    with open(argv[2], \"w\", encoding=\"utf-8\", newline=\"\") as f:\n        f.write(\"\\r\\n\".join(sortie) + \"\\r\\n\")\n    print(f\"{len(evenements)} événement(s) écrit(s) dans {argv[2]}.\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n"}],"desc":"Transforme une liste de rendez-vous ou de séances en fichier d'agenda .ics importable, avec un script. À utiliser quand l'utilisateur veut ajouter plusieurs événements à son agenda à partir d'un texte ou d'un planning.","verdict":"ok"},{"id":"revue-de-code-bienveillante","nom":"revue-de-code-bienveillante","titre":"Relire du code sans le modifier (Claude Code)","niveau":"expert","cat":"code","ico":"👀","surface":"claude-code","resume":"Un skill en lecture seule qui lit un fichier, signale les risques et pose des questions, sans rien corriger.","sert":"Pour un code qu’on a écrit vite, ou reçu : une **relecture en lecture seule**, qui cherche les risques (erreurs, oublis, secrets) et pose des questions plutôt que de réécrire. Il montre trois clés propres à Claude Code : outils limités, invocation à la main, argument.\n\n⚠️ **Il ne se téléverse pas sur claude.ai** : `disable-model-invocation` et `argument-hint` ne sont acceptés que dans Claude Code.","essai":"- Dans Claude Code, copiez le dossier dans `.claude/skills/revue-de-code-bienveillante/`.\n- Tapez `/revue-de-code-bienveillante` suivi d’un petit fichier : aucune modification ne doit apparaître.\n- Vérifiez que Claude ne le lance pas de lui-même quand vous parlez de code.","adapter":"- Ajoutez une section « Règles de l’équipe » (nommage, tests) que la relecture doit vérifier.\n- Remplacez `Read, Grep` par `Read` seul pour un usage encore plus strict.","attention":"Une relecture automatique n’est pas une revue de sécurité : elle peut rater des défauts graves. Ne l’utilisez pas pour valider du code critique.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: revue-de-code-bienveillante\ndescription: \"Relit un fichier de code en lecture seule, signale les risques et pose des questions sans rien modifier. À utiliser quand l'utilisateur veut une relecture d'un fichier avant de le partager ; à lancer à la main avec /revue-de-code-bienveillante.\"\ndisable-model-invocation: true\nargument-hint: \"[fichier]\"\nallowed-tools: Read, Grep\n---\n\n# Relire du code sans le modifier\n\n## Étapes\n\n1. Lis le fichier $ARGUMENTS. S'il n'est pas donné, demande lequel.\n2. Cherche, dans cet ordre : **erreurs probables**, **cas oubliés** (valeur vide, fichier absent), **secrets ou données personnelles écrits dans le code**, **passages difficiles à comprendre**.\n3. Présente au maximum **sept remarques**, de la plus importante à la moins importante : où (fichier et ligne), pourquoi c'est un risque, **une question ou une piste**.\n4. Termine par **Ce qui est bien** : une chose à garder, en une phrase.\n\n## Règles\n\n- Tu ne modifies **aucun** fichier et tu n'exécutes aucune commande : tu lis seulement.\n- Ne recopie jamais un secret trouvé dans le code : dis qu'il est présent et à quelle ligne.\n- Si le code est trop long pour être lu en entier, dis ce que tu as lu.\n- Ton bienveillant : on critique le code, jamais la personne.\n\n## Format\n\nRéponds avec : Remarques (numérotées), Ce qui est bien.\n\n## Exemple\n\nCommande : /revue-de-code-bienveillante exporter.py\n\nRésultat attendu :\n> 1. ligne 42 : le fichier n'est pas fermé si une erreur se produit : pensez à `with open(...)`. … **Ce qui est bien** : les fonctions sont courtes.\n"}],"desc":"Relit un fichier de code en lecture seule, signale les risques et pose des questions sans rien modifier. À utiliser quand l'utilisateur veut une relecture d'un fichier avant de le partager ; à lancer à la main avec /revue-de-code-bienveillante.","verdict":"ok"},{"id":"relire-un-skill","nom":"relire-un-skill","titre":"Relire un skill avant de le partager","niveau":"expert","cat":"meta","ico":"🧠","surface":"tous","resume":"Un skill pour contrôler d’autres skills : description, taille, exemples, secrets, fichiers cités.","sert":"Le meilleur outil pour améliorer un skill est un autre skill. Celui-ci joue le **relecteur** : il passe un `SKILL.md` au crible d’une liste de contrôle (dans un fichier annexe) et rend un avis chiffré et priorisé, avec des corrections proposées. Il ne réécrit pas à votre place : il montre quoi corriger.","essai":"- Collez l’un des skills de cette bibliothèque et demandez : « Relis ce skill. »\n- Retirez volontairement la partie « quand utiliser » de la description : le relecteur doit la réclamer.\n- Ajoutez un faux mot de passe dans un exemple : il doit le signaler comme « À corriger ».","adapter":"- Ajoutez les règles de votre structure à la liste de contrôle (nom des skills, mentions obligatoires).\n- Faites-lui produire un tableau récapitulatif quand vous relisez plusieurs skills.","attention":"Une relecture par Claude n’est pas une validation officielle. Pour contrôler le format, utilisez aussi l’onglet « Vérifier » de l’atelier ou l’outil `skills-ref` d’Anthropic.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: relire-un-skill\ndescription: \"Relit un SKILL.md et signale ce qui nuit à son efficacité ou à sa sécurité : description vague, corps trop long, exemples absents, secrets, fichiers manquants. À utiliser quand l'utilisateur colle ou joint un skill et demande de le relire, de l'améliorer ou de le vérifier avant partage.\"\n---\n\n# Relire un skill\n\n## Étapes\n\n1. Lis le `SKILL.md` en entier, et la liste des fichiers du dossier s'il est fourni.\n2. Passe en revue **chaque point** de `references/liste-de-controle.md`.\n3. Classe les remarques en trois niveaux : **À corriger** (empêche le fonctionnement ou la sécurité), **À améliorer** (efficacité), **Bien** (à garder).\n4. Pour chaque « À corriger », propose la correction exacte (la ligne remplacée).\n5. Termine par une phrase de **verdict** : prêt à téléverser, prêt avec réserves, à reprendre.\n\n## Règles\n\n- Cite la ligne concernée. Ne critique rien que tu ne puisses montrer.\n- Ne réécris pas tout le skill : corrige le minimum nécessaire.\n- Ne juge pas le fond métier du skill : juge sa forme et sa sûreté.\n- Teste mentalement trois demandes : une qui doit déclencher le skill, une reformulation, une qui ne doit pas.\n\n## Exemple\n\nDemande : « Relis ce skill. » (description : « Aide avec les mails »)\n\nRésultat attendu :\n> **À corriger** : la description ne dit pas quand l'utiliser. Remplacer par : « Rédige des mails courts. À utiliser quand l'utilisateur demande un mail. » **Verdict** : prêt avec réserves.\n"},{"c":"references/liste-de-controle.md","t":"# Liste de contrôle d'un skill\n\n## Contenu\n- Nom et en-tête\n- Description\n- Corps\n- Fichiers\n- Sécurité\n\n## Nom et en-tête\n- Le nom : minuscules, chiffres, tirets, 64 signes au plus, sans « anthropic » ni « claude ».\n- Le nom du dossier est identique au nom du skill.\n- L'en-tête est valide : une valeur qui contient « : » est entre guillemets.\n- Seules les clés `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` pour un téléversement sur claude.ai ou l'API.\n\n## Description\n- Elle dit ce que le skill fait ET quand l'utiliser.\n- Elle est à la troisième personne.\n- Elle contient les mots qu'emploierait l'utilisateur.\n- Elle est distincte de celle des autres skills.\n- Elle fait 1 024 signes au plus, l'essentiel dans la première phrase.\n\n## Corps\n- Moins de 500 lignes.\n- Des étapes numérotées ou des listes.\n- Au moins un exemple d'entrée et de sortie.\n- Une vérification avant de rendre le travail.\n- Pas d'explication de ce que Claude sait déjà.\n- Pas de date qui vieillira.\n- Un vocabulaire constant.\n\n## Fichiers\n- Tous les fichiers cités existent et sont à un seul niveau sous SKILL.md.\n- Les chemins ont des barres obliques.\n- Un fichier de plus de 100 lignes commence par une table des matières.\n\n## Sécurité\n- Aucun mot de passe, clé ou identifiant.\n- Aucune donnée personnelle.\n- Aucun envoi vers l'extérieur que la description n'explique pas.\n- Les scripts sont lisibles et font ce qu'ils annoncent.\n"}],"desc":"Relit un SKILL.md et signale ce qui nuit à son efficacité ou à sa sécurité : description vague, corps trop long, exemples absents, secrets, fichiers manquants. À utiliser quand l'utilisateur colle ou joint un skill et demande de le relire, de l'améliorer ou de le vérifier avant partage.","verdict":"ok"},{"id":"reperer-donnees-personnelles","nom":"reperer-donnees-personnelles","titre":"Repérer les données personnelles avant d’envoyer","niveau":"expert","cat":"donnees","ico":"🕶️","surface":"tous","resume":"Un script qui liste e-mails, téléphones, IBAN… et un skill qui l’utilise avant que vous collez un texte dans une IA.","sert":"Avant de coller un texte dans une IA ou de l’envoyer, il vaut mieux savoir ce qu’il contient. Ce skill **lance un script** qui repère les données personnelles les plus courantes (e-mail, téléphone, IBAN, numéro de sécurité sociale, date de naissance, adresse) et affiche **où** elles sont, sans jamais les réafficher en entier. C’est l’exemple type d’un skill qui s’appuie sur du code : le repérage est **exact et identique** à chaque fois.\n\nCe n’est pas un anonymiseur complet : il ne voit pas les noms propres ni les employeurs. L’Anonymiseur du site va plus loin.","essai":"- Écrivez un petit texte fictif avec une adresse e-mail et un numéro de téléphone inventés, puis demandez : « Vérifie ce texte avec ton script. »\n- Ajoutez un nom propre : le script ne le repère pas, et Claude doit le rappeler.\n- Demandez la version masquée et comparez-la au texte d’origine.","adapter":"- Ajoutez vos propres motifs (numéro de dossier, identifiant interne) dans la liste `MOTIFS` du script.\n- Pour votre structure, ajoutez une consigne : « refuse de continuer si un numéro de sécurité sociale est repéré ».","attention":"Ce skill suppose que Claude peut **exécuter du code** (claude.ai avec exécution de code activée, Cowork, Claude Code). Il n’a pas d’effet là où le code ne s’exécute pas. Et il ne remplace jamais une relecture : un nom propre échappe au script.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: reperer-donnees-personnelles\ndescription: \"Repère les données personnelles courantes (e-mail, téléphone, IBAN, numéro de sécurité sociale, date de naissance, adresse) dans un texte avec un script, puis propose une version masquée. À utiliser quand l'utilisateur veut vérifier qu'un texte ne contient pas de données personnelles avant de l'envoyer, de le partager ou de le coller dans un outil.\"\n---\n\n# Repérer les données personnelles\n\n## Étapes\n\n1. Enregistre le texte à contrôler dans un fichier `texte.txt`.\n2. **Lance** le script : `python3 scripts/reperer.py texte.txt`\n3. Présente le résultat : pour chaque ligne signalée, le type de donnée. N'écris jamais la valeur complète.\n4. Si l'utilisateur le demande, **lance** `python3 scripts/reperer.py texte.txt --masquer` et rends le texte masqué.\n5. Rappelle ce que le script **ne voit pas** : noms et prénoms, employeurs, établissements, adresses sans numéro de voie, toute information indirecte. Invite à relire le texte.\n\n## Règles\n\n- Le script fait le repérage ; ne le refais pas de mémoire.\n- Si le script échoue, dis-le et propose de relire le texte à la main : ne devine pas.\n- Ne conserve et ne répète aucune donnée personnelle trouvée.\n\n## Exemple\n\nDemande : « Ce mail contient-il des données personnelles ? »\n\nRésultat attendu :\n> Le script repère 2 éléments : ligne 1, une adresse e-mail ; ligne 3, un numéro de téléphone. Il ne détecte pas les noms : relisez-le.\n"},{"c":"scripts/reperer.py","t":"#!/usr/bin/env python3\n\"\"\"Repère des données personnelles courantes dans un texte (bibliothèque standard seulement).\n\nUsage :\n    python3 scripts/reperer.py fichier.txt            # liste : numéro de ligne, type, aperçu masqué\n    python3 scripts/reperer.py fichier.txt --masquer  # écrit le texte avec des balises [EMAIL], [TELEPHONE]…\n\nLes valeurs trouvées ne sont JAMAIS affichées en entier : l'aperçu garde deux caractères.\nCe repérage est volontairement étroit (il rate des noms, des employeurs, des adresses non standard) :\nil aide à relire, il ne remplace pas la relecture.\n\"\"\"\nimport re\nimport sys\n\nMOTIFS = [\n    (\"EMAIL\", re.compile(r\"[\\w.+-]+@[\\w-]+(?:\\.[\\w-]+)+\")),\n    (\"IBAN\", re.compile(r\"\\b[A-Z]{2}\\d{2}(?:[ ]?[A-Z0-9]{4}){3,7}(?:[ ]?[A-Z0-9]{1,4})?\\b\")),\n    (\"NUMERO_SECU\", re.compile(r\"\\b[12][ ]?\\d{2}[ ]?(?:0[1-9]|1[0-2])[ ]?\\d{2}[ ]?\\d{3}[ ]?\\d{3}(?:[ ]?\\d{2})?\\b\")),\n    (\"TELEPHONE\", re.compile(r\"(?<!\\d)(?:\\+33[ .]?|0033[ .]?|0)[1-9](?:[ .-]?\\d{2}){4}(?!\\d)\")),\n    (\"DATE_NAISSANCE\", re.compile(r\"\\b(?:né|née)\\s+le\\s+\\d{1,2}[/. -]\\d{1,2}[/. -]\\d{2,4}\\b\", re.I)),\n    (\"ADRESSE\", re.compile(r\"\\b\\d{1,3}\\s*(?:bis|ter)?,?\\s+(?:rue|avenue|av\\.|boulevard|bd|chemin|impasse|allée|place|route|quai)\\b[^\\n,;]{0,40}\", re.I)),\n]\n\n\ndef apercu(valeur):\n    v = valeur.strip()\n    return v[:2] + \"…\" if len(v) > 2 else \"…\"\n\n\ndef reperer(texte):\n    trouves = []\n    for no, ligne in enumerate(texte.splitlines(), start=1):\n        for nom, motif in MOTIFS:\n            for m in motif.finditer(ligne):\n                trouves.append((no, nom, apercu(m.group(0))))\n    return trouves\n\n\ndef masquer(texte):\n    for nom, motif in MOTIFS:\n        texte = motif.sub(\"[\" + nom + \"]\", texte)\n    return texte\n\n\ndef main(argv):\n    if len(argv) < 2:\n        print(__doc__)\n        return 2\n    with open(argv[1], encoding=\"utf-8-sig\") as f:\n        texte = f.read()\n    if \"--masquer\" in argv:\n        sys.stdout.write(masquer(texte))\n        return 0\n    trouves = reperer(texte)\n    if not trouves:\n        print(\"Aucune donnée repérée (le repérage est étroit : relisez quand même).\")\n        return 0\n    for no, nom, ap in trouves:\n        print(f\"ligne {no} : {nom} ({ap})\")\n    print(f\"{len(trouves)} élément(s) repéré(s).\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n"}],"desc":"Repère les données personnelles courantes (e-mail, téléphone, IBAN, numéro de sécurité sociale, date de naissance, adresse) dans un texte avec un script, puis propose une version masquée. À utiliser quand l'utilisateur veut vérifier qu'un texte ne contient pas de données personnelles avant de l'envoyer, de le partager ou de le coller dans un outil.","verdict":"ok"},{"id":"resume-des-changements","nom":"resume-des-changements","titre":"Résumer les changements d’un projet (Claude Code)","niveau":"expert","cat":"code","ico":"🔧","surface":"claude-code","resume":"Un skill à lancer à la main avec « / », qui injecte la sortie de git et accepte un argument.","sert":"Cet exemple montre ce que **seul Claude Code** permet : un skill réservé à l’usage manuel, qui reçoit un **argument**, et dont le texte est complété **avant** que Claude le lise par le résultat d’une commande (`git diff`). C’est le format des « commandes » personnalisées.\n\n⚠️ **Il ne se téléverse pas sur claude.ai** : les clés `disable-model-invocation`, `argument-hint` et `allowed-tools` ne sont acceptées que dans Claude Code (la dernière l’est partout, mais seulement utile dans Claude Code).","essai":"- Dans un dossier de projet Git de Claude Code, copiez le dossier dans `.claude/skills/resume-des-changements/`.\n- Modifiez un fichier, puis tapez `/resume-des-changements`, ou `/resume-des-changements docs/`.\n- Vérifiez que Claude ne le lance pas de lui-même quand vous parlez de commit (c’est `disable-model-invocation`).","adapter":"- Remplacez `git diff` par une autre commande de lecture (`git log -5 --oneline`).\n- Ajoutez `context: fork` pour le faire tourner dans un sous-agent à part.","attention":"Une commande injectée avec `!` s’exécute **avant** que Claude lise le skill, avec les droits que vous lui avez donnés. N’y mettez que des commandes de lecture que vous comprenez, et ne téléversez pas ce skill sur claude.ai ou dans l’API.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: resume-des-changements\ndescription: \"Résume les modifications non enregistrées d'un projet et signale les risques. À utiliser quand l'utilisateur veut relire ses modifications avant un commit ; à lancer à la main avec /resume-des-changements.\"\ndisable-model-invocation: true\nargument-hint: \"[dossier ou fichier]\"\nallowed-tools: Bash(git diff *)\n---\n\n# Résumer les changements\n\n## Changements actuels\n\n!`git diff HEAD --stat`\n\n## Détail de $ARGUMENTS\n\n!`git diff HEAD -- $ARGUMENTS`\n\n## Étapes\n\n1. Résume en trois puces ce qui a changé, en langage non technique.\n2. Liste les **risques** : fichier sensible modifié, suppression importante, secret visible.\n3. Propose un **message de commit** en une ligne, à l'impératif.\n\n## Règles\n\n- Ne commente que ce qui apparaît ci-dessus. Si la liste est vide, dis qu'il n'y a pas de changement.\n- Ne fais aucune modification : tu résumes, tu ne corriges pas.\n\n## Exemple\n\nCommande : /resume-des-changements docs/\n\nRésultat attendu :\n> Trois puces sur ce qui a changé dans docs/, une liste de risques (ex. : un fichier de configuration modifié) et un message de commit : « Mettre à jour le guide d'installation ».\n"}],"desc":"Résume les modifications non enregistrées d'un projet et signale les risques. À utiliser quand l'utilisateur veut relire ses modifications avant un commit ; à lancer à la main avec /resume-des-changements.","verdict":"ok"},{"id":"trouver-les-doublons-d-un-csv","nom":"trouver-les-doublons-d-un-csv","titre":"Trouver les doublons d’un tableau (CSV)","niveau":"expert","cat":"analyser","ico":"🧹","surface":"tous","resume":"Un script repère les lignes en double et les valeurs écrites de plusieurs façons ; Claude propose le nettoyage sans rien effacer.","sert":"Dans un tableau d’inscriptions ou de contacts, les doublons faussent les comptes. Le script **compare les lignes** (en ignorant la casse, les accents et les espaces) et signale aussi une même valeur écrite de plusieurs façons. Claude propose ensuite des corrections, **sans modifier le fichier**.","essai":"- Préparez un CSV fictif de dix lignes avec un code répété deux fois et « Atelier CV » écrit aussi « atelier cv ».\n- Donnez une colonne qui n’existe pas : le script liste les colonnes et Claude doit s’en servir.","adapter":"- Ajoutez une option `--garder-derniere` au script pour choisir la ligne conservée.\n- Ajoutez un second script qui écrit un fichier nettoyé **à part**.","attention":"Un doublon apparent peut être légitime (deux personnes au même prénom). Ne supprimez rien sans relire, et anonymisez toujours avant de joindre un fichier.","extras":[],"fichiers":[{"c":"SKILL.md","t":"---\nname: trouver-les-doublons-d-un-csv\ndescription: \"Repère les lignes en double et les variantes d'écriture d'une même valeur dans un fichier CSV anonymisé, avec un script, puis propose un plan de nettoyage. À utiliser quand l'utilisateur joint un tableau CSV et veut le dédoublonner ou vérifier sa cohérence.\"\n---\n\n# Trouver les doublons d'un tableau\n\n## Avant de commencer\n\nLe fichier doit être **anonymisé** : pas de noms ni de coordonnées réels. S'il en contient, arrête-toi et demande à l'utilisateur de les retirer.\n\n## Étapes\n\n1. **Lance** `python3 scripts/doublons.py fichier.csv colonne` avec la colonne qui sert d'identifiant (par exemple un code). Sans colonne, le script compare les lignes entières.\n2. Reporte la liste des **doublons exacts** (numéros de lignes) et des **variantes** (valeurs proches écrites différemment) telle que le script la donne.\n3. Propose un **plan de nettoyage** : quelle ligne garder, quelle écriture retenir, et pourquoi.\n4. Termine par **Limites** : ce que le script ne voit pas (un doublon dont l'identifiant diffère, deux personnes différentes au même code).\n\n## Règles\n\n- Tous les numéros de lignes viennent du script.\n- Ne supprime ni ne modifie jamais le fichier d'origine : tu proposes, l'utilisateur décide.\n- Deux lignes proches ne sont pas forcément des doublons : dis-le.\n\n## Format\n\nRéponds avec : Doublons, Variantes, Plan de nettoyage, Limites.\n\n## Exemple\n\nDemande : « Trouve les doublons de inscrits.csv sur la colonne code. »\n\nRésultat attendu :\n> **Doublons** : lignes 4 et 9 (code A12). **Variantes** : « Atelier CV » et « atelier cv » (colonne thème). **Plan** : garder la ligne 4, harmoniser en « Atelier CV ».\n"},{"c":"scripts/doublons.py","t":"#!/usr/bin/env python3\n\"\"\"Repère les doublons et les variantes d'écriture dans un fichier CSV (bibliothèque standard seulement).\n\nUsage :\n    python3 scripts/doublons.py fichier.csv [colonne]\n\nSans colonne, compare les lignes entières. Les numéros de lignes sont ceux du fichier\n(la ligne 1 est l'en-tête). Le fichier n'est jamais modifié.\n\"\"\"\nimport csv\nimport sys\nimport unicodedata\nfrom collections import defaultdict\n\n\ndef plier(texte):\n    \"\"\"Minuscules, sans accents, espaces et ponctuation réduits.\"\"\"\n    sans = unicodedata.normalize(\"NFD\", texte or \"\")\n    sans = \"\".join(c for c in sans if unicodedata.category(c) != \"Mn\")\n    mots = \"\".join(c if c.isalnum() else \" \" for c in sans.lower()).split()\n    return \" \".join(mots)\n\n\ndef lire(chemin):\n    with open(chemin, encoding=\"utf-8-sig\", newline=\"\") as f:\n        echantillon = f.read(4096)\n        f.seek(0)\n        try:\n            dialecte = csv.Sniffer().sniff(echantillon, delimiters=\",;\\t\")\n        except csv.Error:\n            dialecte = csv.excel\n        return list(csv.DictReader(f, dialect=dialecte))\n\n\ndef main(argv):\n    if len(argv) < 2:\n        print(__doc__)\n        return 2\n    lignes = lire(argv[1])\n    if not lignes:\n        print(\"Fichier vide.\")\n        return 1\n    colonne = argv[2] if len(argv) > 2 else None\n    if colonne and colonne not in lignes[0]:\n        print(f\"Colonne « {colonne} » introuvable. Colonnes disponibles : {', '.join(lignes[0].keys())}\")\n        return 1\n\n    groupes = defaultdict(list)\n    for numero, ligne in enumerate(lignes, start=2):\n        cle = plier(ligne[colonne]) if colonne else plier(\" \".join(str(v) for v in ligne.values()))\n        if cle:\n            groupes[cle].append(numero)\n    doublons = {k: v for k, v in groupes.items() if len(v) > 1}\n\n    print(f\"{len(lignes)} lignes lues.\")\n    print(\"Doublons :\" if doublons else \"Doublons : aucun.\")\n    for cle, numeros in sorted(doublons.items(), key=lambda x: x[1][0]):\n        print(f\"- « {cle} » : lignes {', '.join(map(str, numeros))}\")\n\n    # Variantes : une même valeur pliée, écrite de plusieurs façons dans une colonne.\n    print(\"Variantes d'écriture :\")\n    trouve = False\n    for nom in lignes[0].keys():\n        ecritures = defaultdict(set)\n        for ligne in lignes:\n            valeur = (ligne[nom] or \"\").strip()\n            if valeur:\n                ecritures[plier(valeur)].add(valeur)\n        for cle, versions in ecritures.items():\n            if len(versions) > 1:\n                trouve = True\n                print(f\"- colonne « {nom} » : \" + \" | \".join(sorted(versions)))\n    if not trouve:\n        print(\"- aucune.\")\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n"}],"desc":"Repère les lignes en double et les variantes d'écriture d'une même valeur dans un fichier CSV anonymisé, avec un script, puis propose un plan de nettoyage. À utiliser quand l'utilisateur joint un tableau CSV et veut le dédoublonner ou vérifier sa cohérence.","verdict":"ok"}]}