Communitygithub.com

grahama1970/skill-creator

Guide pour la création de skills efficaces. Ce skill doit être utilisé lorsque les utilisateurs souhaitent créer un nouveau skill (ou mettre à jour un skill existant) qui étend les capacités de Codex avec des connaissances spécialisées, des workflows ou des intégrations d'outils.

Qu'est-ce que skill-creator ?

Ce skill, nommé Skill Creator, sert de guide complet pour la conception et le développement de skills modulaires destinés à la plateforme Codex. Il explique en détail ce qu'est un skill — un dossier autonome contenant des instructions, scripts et ressources — et comment il transforme Codex d'un agent généraliste en un agent spécialisé doté de connaissances procédurales. Le guide aborde des principes fondamentaux comme la concision (pour économiser l'espace du contexte), le réglage du degré de liberté (de instructions textuelles très libres à des scripts très spécifiques), et la protection de l'intégrité de la validation via des sous-agents. Il décrit également l'anatomie d'un skill avec des dossiers obligatoires (SKILL.md) et optionnels (agents/, scripts/, references/, assets/), ainsi que le principe de divulgation progressive pour gérer efficacement le contexte. Enfin, il propose un processus de création en six étapes (compréhension, planification, initialisation, édition, validation, itération) et des bonnes pratiques comme le nommage et l'évitement de fichiers auxiliaires inutiles.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/.system/skill-creator

Demander à votre IA préférée

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

Documentation

Créateur de Skills

Ce skill fournit des conseils pour créer des skills efficaces.

À propos des Skills

Les skills sont des dossiers modulaires et autonomes qui étendent les capacités de Codex en fournissant des connaissances spécialisées, des workflows et des outils. Considérez-les comme des « guides d’intégration » pour des domaines ou des tâches spécifiques—ils transforment Codex d’un agent généraliste en un agent spécialisé, équipé de connaissances procédurales qu’aucun modèle ne peut posséder entièrement.

Ce que les Skills fournissent

  1. Workflows spécialisés - Procédures en plusieurs étapes pour des domaines spécifiques
  2. Intégrations d’outils - Instructions pour travailler avec des formats de fichiers ou des API spécifiques
  3. Expertise métier - Connaissances propres à l’entreprise, schémas, logique métier
  4. Ressources groupées - Scripts, références et actifs pour des tâches complexes et répétitives

Principes fondamentaux

La concision est clé

La fenêtre de contexte est un bien public. Les skills partagent la fenêtre de contexte avec tout ce dont Codex a besoin : prompt système, historique de la conversation, métadonnées des autres skills, et la requête réelle de l’utilisateur.

Hypothèse par défaut : Codex est déjà très intelligent. N’ajoutez que le contexte que Codex ne possède pas déjà. Remettez en question chaque information : « Codex a-t-il vraiment besoin de cette explication ? » et « Ce paragraphe justifie-t-il son coût en tokens ? »

Préférez des exemples concis à des explications verbeuses.

Définir des degrés de liberté appropriés

Faites correspondre le niveau de spécificité à la fragilité et à la variabilité de la tâche :

  • Liberté élevée (instructions textuelles) : À utiliser lorsque plusieurs approches sont valables, que les décisions dépendent du contexte ou que des heuristiques guident l’approche.
  • Liberté moyenne (pseudocode ou scripts avec paramètres) : À utiliser lorsqu’un modèle préféré existe, qu’une certaine variation est acceptable ou que la configuration affecte le comportement.
  • Faible liberté (scripts spécifiques, peu de paramètres) : À utiliser lorsque les opérations sont fragiles et sujettes aux erreurs, que la cohérence est critique ou qu’une séquence spécifique doit être suivie.

Considérez Codex comme explorant un chemin : un pont étroit avec des falaises nécessite des garde-corps spécifiques (faible liberté), tandis qu’un champ ouvert permet de nombreuses routes (liberté élevée).

Protéger l’intégrité de la validation

Vous pouvez utiliser des sous-agents pendant l’itération pour valider si un skill fonctionne sur des tâches réalistes ou si un problème suspecté est réel. Cela est particulièrement utile lorsque vous souhaitez un passage indépendant sur le comportement, les sorties ou les modes de défaillance du skill après une révision. Ne faites cela que lorsqu’il est possible de lancer de nouveaux sous-agents.

Lorsque vous utilisez des sous-agents pour la validation, traitez cela comme une surface d’évaluation. L’objectif est de savoir si le skill se généralise, et non si un autre agent peut reconstruire la réponse à partir d’un contexte divulgué.

Privilégiez les artefacts bruts tels que les exemples de prompts, les sorties, les diffs, les logs ou les traces. Donnez le minimum de contexte local à la tâche nécessaire pour effectuer la validation. Évitez de transmettre la réponse attendue, le bogue suspecté, le correctif prévu ou vos conclusions antérieures, sauf si la validation les exige explicitement.

Anatomie d’un Skill

Chaque skill se compose d’un fichier SKILL.md obligatoire et de ressources groupées optionnelles :

nom-du-skill/
├── SKILL.md (obligatoire)
│   ├── Métadonnées YAML en en-tête (obligatoire)
│   │   ├── name: (obligatoire)
│   │   └── description: (obligatoire)
│   └── Instructions Markdown (obligatoire)
├── agents/ (recommandé)
│   └── openai.yaml - Métadonnées d’interface utilisateur pour les listes et puces de skills
└── Ressources groupées (optionnel)
    ├── scripts/          - Code exécutable (Python/Bash/etc.)
    ├── references/       - Documentation destinée à être chargée dans le contexte selon les besoins
    └── assets/           - Fichiers utilisés dans la sortie (modèles, icônes, polices, etc.)

SKILL.md (obligatoire)

Chaque SKILL.md se compose de :

  • En-tête (YAML) : Contient les champs name et description. Ce sont les seuls champs que Codex lit pour déterminer quand le skill doit être utilisé, il est donc très important d’être clair et complet dans la description de ce qu’est le skill et quand il doit être utilisé.
  • Corps (Markdown) : Instructions et conseils pour utiliser le skill. Chargé UNIQUEMENT APRÈS le déclenchement du skill (si jamais).

Métadonnées des agents (recommandé)

  • Métadonnées orientées interface utilisateur pour les listes et puces de skills
  • Lisez references/openai_yaml.md avant de générer les valeurs et suivez ses descriptions et contraintes
  • Créez : display_name, short_description et default_prompt lisibles par un humain en lisant le skill
  • Générez de manière déterministe en passant les valeurs comme --interface key=value à scripts/generate_openai_yaml.py ou scripts/init_skill.py
  • Lors des mises à jour : validez que agents/openai.yaml correspond toujours à SKILL.md ; régénérez si obsolète
  • N’incluez d’autres champs d’interface optionnels (icônes, couleur de marque) que s’ils sont explicitement fournis
  • Voir references/openai_yaml.md pour les définitions de champs et des exemples

Ressources groupées (optionnel)

Scripts (scripts/)

Code exécutable (Python/Bash/etc.) pour des tâches nécessitant une fiabilité déterministe ou réécrites de manière répétée.

  • Quand inclure : Lorsque le même code est réécrit de manière répétée ou qu’une fiabilité déterministe est nécessaire
  • Exemple : scripts/rotate_pdf.py pour des tâches de rotation de PDF
  • Avantages : Efficace en tokens, déterministe, peut être exécuté sans être chargé dans le contexte
  • Note : Les scripts peuvent encore devoir être lus par Codex pour des correctifs ou des ajustements spécifiques à l’environnement
Références (references/)

Documentation et matériel de référence destinés à être chargés selon les besoins dans le contexte pour informer le processus et la réflexion de Codex.

  • Quand inclure : Pour la documentation que Codex doit consulter pendant le travail
  • Exemples : references/finance.md pour les schémas financiers, references/mnda.md pour le modèle de NDA de l’entreprise, references/policies.md pour les politiques de l’entreprise, references/api_docs.md pour les spécifications d’API
  • Cas d’utilisation : Schémas de base de données, documentation d’API, connaissances métier, politiques d’entreprise, guides de workflow détaillés
  • Avantages : Maintient SKILL.md léger, chargé uniquement lorsque Codex le juge nécessaire
  • Meilleure pratique : Si les fichiers sont volumineux (>10 000 mots), incluez des modèles de recherche grep dans SKILL.md
  • Évitez la duplication : Les informations doivent se trouver soit dans SKILL.md, soit dans les fichiers de références, pas dans les deux. Privilégiez les fichiers de références pour les informations détaillées, sauf si elles sont véritablement essentielles au skill—cela maintient SKILL.md léger tout en rendant les informations découvrables sans monopoliser la fenêtre de contexte. Conservez uniquement les instructions procédurales essentielles et les conseils de workflow dans SKILL.md ; déplacez le matériel de référence détaillé, les schémas et les exemples vers les fichiers de références.
Actifs (assets/)

Fichiers non destinés à être chargés dans le contexte, mais utilisés dans la sortie produite par Codex.

  • Quand inclure : Lorsque le skill a besoin de fichiers qui seront utilisés dans la sortie finale
  • Exemples : assets/logo.png pour les actifs de marque, assets/slides.pptx pour les modèles PowerPoint, assets/frontend-template/ pour le code HTML/React de base, assets/font.ttf pour la typographie
  • Cas d’utilisation : Modèles, images, icônes, code passe-partout, polices, documents d’exemple qui sont copiés ou modifiés
  • Avantages : Sépare les ressources de sortie de la documentation, permet à Codex d’utiliser des fichiers sans les charger dans le contexte

Ce qu’il ne faut PAS inclure dans un Skill

Un skill ne doit contenir que les fichiers essentiels qui soutiennent directement sa fonctionnalité. Ne créez PAS de documentation superflue ou de fichiers auxiliaires, notamment :

  • README.md
  • INSTALLATION_GUIDE.md
  • QUICK_REFERENCE.md
  • CHANGELOG.md
  • etc.

Le skill ne doit contenir que les informations nécessaires à un agent IA pour accomplir la tâche en question. Il ne doit pas contenir de contexte auxiliaire sur le processus de création, les procédures d’installation et de test, la documentation destinée à l’utilisateur, etc. Créer des fichiers de documentation supplémentaires ne fait qu’ajouter du fouillis et de la confusion.

Principe de conception de divulgation progressive

Les skills utilisent un système de chargement à trois niveaux pour gérer efficacement le contexte :

  1. Métadonnées (nom + description) - Toujours dans le contexte (~100 mots)
  2. Corps de SKILL.md - Lorsque le skill se déclenche (<5 000 mots)
  3. Ressources groupées - Selon les besoins de Codex (Illimité car les scripts peuvent être exécutés sans être lus dans la fenêtre de contexte)

Modèles de divulgation progressive

Gardez le corps de SKILL.md à l’essentiel et sous 500 lignes pour minimiser le gonflement du contexte. Divisez le contenu en fichiers séparés lorsque vous approchez de cette limite. Lorsque vous divisez le contenu dans d’autres fichiers, il est très important de les référencer depuis SKILL.md et de décrire clairement quand les lire, pour garantir que le lecteur du skill sait qu’ils existent et quand les utiliser.

Principe clé : Lorsqu’un skill prend en charge plusieurs variantes, frameworks ou options, conservez uniquement le workflow de base et les conseils de sélection dans SKILL.md. Déplacez les détails spécifiques aux variantes (modèles, exemples, configuration) dans des fichiers de référence séparés.

Modèle 1 : Guide de haut niveau avec références

# Traitement PDF

## Démarrage rapide

Extraire le texte avec pdfplumber :
[exemple de code]

## Fonctionnalités avancées

- **Remplissage de formulaires** : Voir [FORMS.md](FORMS.md) pour un guide complet
- **Référence API** : Voir [REFERENCE.md](REFERENCE.md) pour toutes les méthodes
- **Exemples** : Voir [EXAMPLES.md](EXAMPLES.md) pour les modèles courants

Codex charge FORMS.md, REFERENCE.md ou EXAMPLES.md uniquement en cas de besoin.

Modèle 2 : Organisation par domaine

Pour les skills avec plusieurs domaines, organisez le contenu par domaine pour éviter de charger un contexte non pertinent :

bigquery-skill/
├── SKILL.md (aperçu et navigation)
└── reference/
    ├── finance.md (revenus, métriques de facturation)
    ├── sales.md (opportunités, pipeline)
    ├── product.md (utilisation API, fonctionnalités)
    └── marketing.md (campagnes, attribution)

Lorsqu’un utilisateur pose une question sur les métriques de vente, Codex ne lit que sales.md.

De même, pour les skills prenant en charge plusieurs frameworks ou variantes, organisez par variante :

cloud-deploy/
├── SKILL.md (workflow + sélection du fournisseur)
└── references/
    ├── aws.md (modèles de déploiement AWS)
    ├── gcp.md (modèles de déploiement GCP)
    └── azure.md (modèles de déploiement Azure)

Lorsque l’utilisateur choisit AWS, Codex ne lit que aws.md.

Modèle 3 : Détails conditionnels

Affichez le contenu de base, liez vers le contenu avancé :

# Traitement DOCX

## Création de documents

Utilisez docx-js pour les nouveaux documents. Voir [DOCX-JS.md](DOCX-JS.md).

## Modification de documents

Pour les modifications simples, modifiez le XML directement.

**Pour les modifications suivies** : Voir [REDLINING.md](REDLINING.md)
**Pour les détails OOXML** : Voir [OOXML.md](OOXML.md)

Codex lit REDLINING.md ou OOXML.md uniquement lorsque l’utilisateur a besoin de ces fonctionnalités.

Directives importantes :

  • Évitez les références profondément imbriquées - Gardez les références à un seul niveau de profondeur par rapport à SKILL.md. Tous les fichiers de référence doivent être liés directement depuis SKILL.md.
  • Structurez les fichiers de référence plus longs - Pour les fichiers de plus de 100 lignes, incluez une table des matières en haut afin que Codex puisse voir la portée complète lors de l’aperçu.

Processus de création d’un Skill

La création d’un skill implique ces étapes :

  1. Comprendre le skill avec des exemples concrets
  2. Planifier le contenu réutilisable du skill (scripts, références, actifs)
  3. Initialiser le skill (exécuter init_skill.py)
  4. Éditer le skill (implémenter les ressources et écrire SKILL.md)
  5. Valider le skill (exécuter quick_validate.py)
  6. Itérer en fonction de l’utilisation réelle et tester à l’avance les skills complexes.

Suivez ces étapes dans l’ordre, en ne sautant que s’il existe une raison claire pour laquelle elles ne sont pas applicables.

Nommage du Skill

  • Utilisez uniquement des lettres minuscules, des chiffres et des traits d’union ; normalisez les titres fournis par l’utilisateur en casse-kebab (par exemple, « Plan Mode » -> plan-mode).
  • Lors de la génération de noms, générez un nom de moins de 64 caractères (lettres, chiffres, traits d’union).
  • Privilégiez les phrases courtes commençant par un verbe qui décrivent l’action.
  • Espace de noms par outil lorsque cela améliore la clarté ou le déclenchement (par exemple, gh-address-comments, linear-address-issue).
  • Nommez le dossier du skill exactement comme le nom du skill.

Étape 1 : Comprendre le Skill avec des Exemples Concrets

Sautez cette étape uniquement lorsque les modèles d’utilisation du skill sont déjà clairement compris. Elle reste précieuse même lorsque vous travaillez sur un skill existant.

Pour créer un skill efficace, comprenez clairement des exemples concrets de la façon dont le skill sera utilisé. Cette compréhension peut provenir soit d’exemples directs d’utilisateurs, soit d’exemples générés validés par les retours des utilisateurs.

Par exemple, lors de la construction d’un skill d’édition d’images, les questions pertinentes incluent :

  • « Quelles fonctionnalités le skill d’édition d’images doit-il prendre en charge ? Édition, rotation, autre chose ? »
  • « Pouvez-vous donner quelques exemples de la façon dont ce skill serait utilisé ? »
  • « Je peux imaginer des utilisateurs demandant des choses comme 'Supprimer les yeux rouges de cette image' ou 'Faire pivoter cette image'. Y a-t-il d’autres façons dont vous imaginez que ce skill soit utilisé ? »
  • « Que dirait un utilisateur qui devrait déclencher ce skill ? »
  • « Où dois-je créer ce skill ? Si vous n’avez pas de préférence, je le placerai dans $CODEX_HOME/skills (ou ~/.codex/skills lorsque CODEX_HOME n’est pas défini) afin que Codex puisse le découvrir automatiquement. »

Pour ne pas submerger les utilisateurs, évitez de poser trop de questions dans un seul message. Commencez par les questions les plus importantes et suivez si nécessaire pour une meilleure efficacité.

Concluez cette étape lorsqu’il y a une idée claire de la fonctionnalité que le skill doit prendre en charge.

Étape 2 : Planifier le Contenu Réutilisable du Skill

Pour transformer des exemples concrets en un skill efficace, analysez chaque exemple en :

  1. Réfléchissant à la façon d’exécuter l’exemple à partir de zéro
  2. Identifiant les scripts, références et actifs qui seraient utiles lors de l’exécution répétée de ces workflows

Exemple : Lors de la création d’un skill pdf-editor pour gérer des requêtes comme « Aidez-moi à faire pivoter ce PDF », l’analyse montre :

  1. Faire pivoter un PDF nécessite de réécrire le même code à chaque fois
  2. Un script scripts/rotate_pdf.py serait utile à stocker dans le skill

Exemple : Lors de la conception d’un skill frontend-webapp-builder pour des requêtes comme « Construis-moi une application todo » ou « Construis-moi un tableau de bord pour suivre mes pas », l’analyse montre :

  1. Écrire une application web frontend nécessite le même passe-partout HTML/React à chaque fois
  2. Un modèle assets/hello-world/ contenant les fichiers de projet HTML/React passe-partout serait utile à stocker dans le skill

Exemple : Lors de la création d’un skill big-query pour gérer des requêtes comme « H

…

[tronqué pour la traduction]

Individual skills in this repo

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

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

Skills associés