Format SKILL.md

La specification complete du format de fichier SKILL.md.

Apercu

Un fichier SKILL.md utilise Markdown avec un frontmatter YAML pour definir un Agent Skill.

Structure du fichier

markdown
---
# YAML Frontmatter (metadata)
name: Skill Name
description: Brief description
---

# Main Content
Your skill instructions in Markdown format.

Champs du frontmatter

Champs requis

| Champ | Type | Description | |-------|------|-------------| | name | string | Nom de la competence (max 50 caracteres) | | description | string | Breve description (max 200 caracteres) |

Champs optionnels

| Champ | Type | Description | |-------|------|-------------| | version | string | Version semantique (ex: "1.0.0") | | author | string | Nom de l'auteur ou organisation | | license | string | Type de licence (ex: "MIT") | | platforms | array | Plateformes supportees | | categories | array | Categories de la competence | | tags | array | Mots-cles de recherche | | repository | string | URL du depot source | | website | string | Site web de documentation |

Exemple de frontmatter

yaml
---
name: React Best Practices
description: Guidelines for writing clean React components
version: 2.1.0
author: React Community
license: MIT
platforms:
  - claude-code
  - codex
  - chatgpt
categories:
  - development
  - frontend
tags:
  - react
  - javascript
  - components
---

Structure du contenu

Sections recommandees

markdown
# Skill Name

## Context
Background information and domain knowledge.

## Guidelines
Specific rules and best practices.

## Do's and Don'ts
Clear behavioral guidance.

## Examples
Sample interactions or code snippets.

## References
Links to additional resources.

Conseils de formatage

  • Utilisez des titres (#, ##, ###) pour organiser le contenu
  • Utilisez des listes a puces pour les directives
  • Utilisez des blocs de code pour les exemples
  • Utilisez le gras pour mettre en evidence les points cles
  • Gardez les paragraphes concis

Champ Platforms

Specifiez quelles plateformes votre competence supporte :

yaml
platforms:
  - claude-code    # Claude Code CLI
  - codex          # Codex CLI
  - chatgpt        # ChatGPT Custom Instructions

Categories

Choisissez parmi les categories disponibles :

Technique :

  • development - Developpement general
  • frontend - Developpement Frontend/UI
  • backend - Developpement Backend/API
  • devops - DevOps/Infrastructure
  • data - Data science/Analytics
  • ai-ml - IA/Machine Learning

Professionnel :

  • marketing - Marketing/Contenu
  • design - Design/UX
  • legal - Juridique/Conformite
  • finance - Finance/Comptabilite
  • hr - Ressources Humaines
  • education - Education/Formation

Validation

Votre SKILL.md sera valide pour :

  • Syntaxe YAML frontmatter valide
  • Champs requis presents
  • Limites de longueur des champs
  • Valeurs de categorie/plateforme valides
  • Formatage Markdown

Exemple complet

markdown
---
name: TypeScript Best Practices
description: Guidelines for writing type-safe, maintainable TypeScript code
version: 1.0.0
author: TypeScript Community
license: MIT
platforms:
  - claude-code
  - codex
categories:
  - development
  - frontend
  - backend
tags:
  - typescript
  - javascript
  - types
---

# TypeScript Best Practices

## Context
This skill provides guidelines for writing high-quality TypeScript code.

## Guidelines

### Type Safety
- Always define explicit types for function parameters
- Avoid using `any` type
- Use type guards for runtime checks

### Code Organization
- One export per file for main modules
- Group related types in a `types.ts` file
- Use barrel exports for public APIs

## Do's and Don'ts

### Do
- Use strict mode
- Define interfaces for object shapes
- Use generics for reusable code

### Don't
- Suppress TypeScript errors with `@ts-ignore`
- Use `any` as a quick fix
- Mix JavaScript and TypeScript in the same project

## Examples

### Good: Explicit Types
\`\`\`typescript
function greet(name: string): string {
  return \`Hello, \${name}!\`;
}
\`\`\`

### Bad: Implicit Any
\`\`\`typescript
// Avoid this
function greet(name) {
  return \`Hello, \${name}!\`;
}
\`\`\`