Rédaction de fichiers SKILL.md

VérifiéSûr

Directives pour la création et l'édition de fichiers SKILL.md, basées sur les meilleures pratiques d'Anthropic.

Spar Skills Guide Bot
DocumentationIntermédiaire
23/07/2026
Claude CodeCodexCopilot
#skill-authoring#markdown#yaml-frontmatter#progressive-disclosure#prompt-engineering

Recommandé pour

Synthèse automatique

Règles de rédaction pour créer et éditer des fichiers SKILL.md destinés aux Agent Skills de Claude, Codex ou Copilot.

Points forts

  • Couvre l'anatomie complète d'un skill (dossier, SKILL.md, scripts, references, assets) avec les contraintes de nommage
  • Explique clairement le modèle de divulgation progressive à trois niveaux et les limites de taille à respecter
  • Fournit un tableau précis des champs YAML obligatoires et optionnels, avec leurs limites de caractères
  • Inclut des consignes de sécurité concrètes sur le frontmatter (pas de chevrons XML, pas de mots réservés)

Limites

  • Ne décrit pas de méthode de test ou de validation automatique d'un skill
  • Les conseils restent génériques : aucun exemple complet de SKILL.md abouti n'est fourni
  • Suppose que le lecteur connaît déjà le fonctionnement des Agent Skills
Quand l'utiliser

À utiliser lorsqu'on crée un nouveau skill ou qu'on révise un SKILL.md existant pour le rendre conforme aux bonnes pratiques.

Quand l'éviter

À éviter si l'on cherche à écrire le contenu métier d'un skill plutôt que sa structure, ou pour déboguer l'exécution de scripts d'un skill.

Analyse de sécurité

Sûr
Score qualité85/100

This is a pure documentation/instruction file about how to author SKILL.md files. It declares no allowed-tools, contains no scripts, no shell commands to execute, no network calls, and no secret handling. The only executable-looking strings are illustrative examples of frontmatter and file layouts, and the YAML guidance explicitly warns against executable content and XML injection in frontmatter. No destructive, exfiltrating, or obfuscated behavior is present.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Create a new skill
Create a new skill for reviewing Terraform plans in a folder called terraform-plan-review, and write its SKILL.md with valid frontmatter.
Fix frontmatter and structure
Review this SKILL.md against the skill authoring best practices: check the YAML frontmatter fields, the description triggers, and whether the body should be split into references/.
Split an oversized skill
My SKILL.md body is getting too long. Help me restructure it using progressive disclosure and move the detailed parts into references/ with a table of contents.

description: "Best practices for authoring Agent Skill SKILL.md files" paths: ["**/SKILL.md"]

<!-- Generated by SharedVSCode .ai/tools/Render-AIAdapters.ps1. Do not edit this adapter directly; edit the canonical source or record an overlay in the manifest. SourceId: ai.instruction.skill.v1 Source: .ai/instructions/skill.instructions.md SourceSha256: 66b24503fed6b2c7d92f731741a1d94353b4e5768809f64a7d9a7d263c8f0cd5 Materialization: generated-wrapper -->

AI instructions for authoring SKILL.md files

Apply these rules whenever creating or editing a SKILL.md file (a Claude/Codex/Copilot/ Antigravity Agent Skill). They distill Anthropic's The Complete Guide to Building Skills for Claude and the official Skill authoring best practices. Full source material and reasoning are preserved in skill-references/ (see the end of this file).


Skill anatomy

A skill is a folder, not a single file:

your-skill-name/
├── SKILL.md      # REQUIRED — Markdown body + YAML frontmatter
├── scripts/      # optional — executable code; executed, not loaded into context
├── references/   # optional — docs loaded only when needed
└── assets/       # optional — templates, fonts, icons used in output
  • The main file must be named exactly SKILL.md (case-sensitive).
  • No README.md inside the skill folder — all docs live in SKILL.md or references/. A repo-level README for humans is separate and fine.
  • Folder name uses kebab-case (no spaces, underscores, or capitals) and should match the name field.

Progressive disclosure — the three-level model

  1. Level 1 — YAML frontmatter (name + description): always pre-loaded into the system prompt for every skill. Just enough for Claude to decide whether to load the skill. Keep it tight — it always competes for context.
  2. Level 2 — SKILL.md body: loaded only when Claude judges the skill relevant. Contains the full instructions.
  3. Level 3 — linked files (references/, scripts/, assets/): read or executed only as needed. No context cost until accessed.

Practical limits:

  • Keep the SKILL.md body under 500 lines (the PDF phrases this as under 5,000 words). Split into references/ when approaching the limit.
  • Keep references one level deep from SKILL.md. Claude may only partially read (head -100) files reached through chains of references.
  • For any reference file longer than 100 lines, add a table of contents at the top.
  • Make execution intent explicit: "Run analyze.py ..." (execute) vs. "See analyze.py for the algorithm" (read as reference). Prefer execution for deterministic work.

YAML frontmatter rules

| Field | Required | Rules | | --- | --- | --- | | name | Yes | kebab-case; lowercase letters/numbers/hyphens only; max 64 characters; no XML tags; must not contain reserved words anthropic or claude; should match the folder name. | | description | Yes | Non-empty; max 1024 characters; must state BOTH what the skill does AND when to use it; third person; no XML tags; include specific trigger phrases and relevant file types. | | license | Optional | For open-source skills (e.g. MIT, Apache-2.0). | | compatibility | Optional | 1–500 chars; environment requirements (intended product, packages, network needs). | | allowed-tools | Optional | Restricts tool access (least privilege). Example: allowed-tools: "Bash(python:*) Bash(npm:*) WebFetch". | | metadata | Optional | Custom key/value. Suggested: author, version, mcp-server, category, tags, documentation, support. |

Security: frontmatter is injected into the system prompt — never use XML angle brackets (< >) anywhere in it, and never name a skill with claude/anthropic. Use safe YAML only (no executable content).

Minimal valid frontmatter:

---
name: your-skill-name
description: What it does. Use when the user asks to [specific phrases].
---

Writing the description (highest-leverage field)

This is the only Level-1 cue Claude uses to pick the skill from 100+ candidates. Structure:

[What it does] + [When to use it] + [Key capabilities / trigger phrases]
  • Write in third person ("Processes Excel files...", not "I can help you...").
  • Include the specific phrases users would actually type and relevant file types.
  • Add negative triggers when a skill over-fires (e.g. "Do NOT use for simple data exploration; use the data-viz skill instead.").

Good vs. bad:

# Good — specific, includes triggers
description: Analyze Excel spreadsheets, create pivot tables, generate charts. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.

# Bad — vague, no triggers
description: Helps with documents

Debugging tip: ask Claude "When would you use the [skill] skill?" — it quotes the description back, exposing what is missing.


Writing the instructions (SKILL.md body)

  • Be specific and actionable. Good: "Run python scripts/validate.py --input {filename} to check format." Bad: "Validate the data before proceeding."
  • Match degrees of freedom to fragility: prose steps when many approaches work; parameterized scripts when a preferred pattern exists; exact, do-not-modify commands when consistency is critical.
  • Put critical instructions at the top; use ## Important / ## Critical headers; repeat key points if needed.
  • Use consistent terminology — choose one term and keep it.
  • Avoid time-sensitive info; move deprecated guidance to a collapsed "Old patterns" section.
  • Provide workflows as checklists for multi-step tasks, and feedback loops (validate → fix → repeat) for quality-critical work.
  • Avoid offering too many options — give one default with an escape hatch.
  • For bundled scripts: solve, don't punt (handle errors), no voodoo constants (justify magic numbers), forward slashes only (no Windows paths), and use fully-qualified MCP tool names ServerName:tool_name.

Tool-surface minimization (least privilege)

Use the optional allowed-tools frontmatter field as a whitelist restricting which tools the skill may use. For each skill, ask:

  • Which tools does the skill actually invoke in its instructions/scripts?
  • Does it need write access? To which paths?
  • Does it need network access? (Usually no.)

Drop every grant the skill does not exercise, and document the rationale. Granularity includes scoped Bash patterns (e.g. Bash(python:*) permits Python but not arbitrary shell). Reconcile with this repo's SolutionDocumentation/AI-Agent-Tool-Surface-Audit.md and Agent-Permission-Model.md for how the workspace enforces grants.


Testing and iteration

  • Build evaluations first (≥ 3 scenarios): baseline Claude without the skill, then write the minimum instructions to pass.
  • Test three areas: triggering (fires on obvious + paraphrased tasks; does NOT fire on unrelated topics — aspirational target: triggers on 90% of relevant queries), functional (correct outputs, error handling, edge cases), and performance (fewer tool calls/tokens vs. a no-skill baseline).
  • Test with Haiku, Sonnet, and Opus.
  • Iterate with two Claudes: one authors/refines, a fresh instance uses it; feed observed gaps back. Under-triggering → enrich the description with keywords; over-triggering → add negative triggers and tighten scope.

Anti-patterns (audit failure signals)

  • Vague description ("Helps with projects") → skill never loads.
  • Frontmatter errors: missing --- delimiters, unclosed quotes, spaces/capitals in name, any </> characters.
  • Overstuffed or buried instructions → instructions ignored.
  • Deeply nested references (links to links) → incomplete reads.
  • Windows-style backslash paths.
  • Too many tool grants / scope creep.
  • A README.md inside the skill folder.
  • More than ~20–50 skills enabled at once (context risk).

Condensed checklist (apply per skill)

  • [ ] Folder is kebab-case and matches name; SKILL.md exact spelling; no in-folder README.md.
  • [ ] Frontmatter has --- delimiters; no </>; name ≤ 64 chars, no reserved words.
  • [ ] description ≤ 1024 chars, third person, states what + when, includes trigger phrases and file types.
  • [ ] SKILL.md body < 500 lines / 5,000 words; detail pushed to references/.
  • [ ] References one level deep; reference files > 100 lines have a TOC.
  • [ ] Instructions specific/actionable; critical steps first; consistent terminology.
  • [ ] Workflows have steps; quality-critical paths have validate → fix loops.
  • [ ] Scripts handle errors, justify constants, use forward slashes, fully-qualified MCP names.
  • [ ] allowed-tools restricted to the minimum the skill uses; rationale documented.
  • [ ] Triggering / functional / performance checks pass; ≥ 3 evaluations exist.

Source material and preserved reasoning

These bundled references hold the full reasoning behind this rule so it is not lost and is available to future agents. They are kept one level deep, per the guide's own rule:

Provenance: PDF reference https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf; docs reference https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices. Captured 2026-06-23 for scope-creep item SC-0215.

Pending activation (tracked by SC-0217): this canonical source is registered in manifests/instruction-map.json as a pre-render record (kind ToolInstruction, four pending targets) but is not yet rendered through Render-AIAdapters to the four callers (Claude .claude/Rules, Copilot, Codex, Antigravity). Until rendered, agents should read this .ai source directly. Render must go through the governed pipeline with -UpdateManifest (do not hand-edit rendered hashes).

Closure marker: the next planned step is a SprintEnd -> SprintStart cycle that re-materializes all adapter files. Once the skill record is registered in the instruction map (the gating prerequisite — the renderer is manifest-driven), this instruction is considered CLOSED when, after that cycle, it is present in its caller adapters (e.g. .claude/Rules/skill.md) and Test-AIAdapterDrift -Domain instructions reports zero drift and zero missing for it.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/authoring-skill-md-files-mrx3xzkc/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/authoring-skill-md-files-mrx3xzkc' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/authoring-skill-md-files-mrx3xzkc/download' --output '.skill-downloads/authoring-skill-md-files-mrx3xzkc/SKILL.md.part' && mv '.skill-downloads/authoring-skill-md-files-mrx3xzkc/SKILL.md.part' '.skill-downloads/authoring-skill-md-files-mrx3xzkc/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/authoring-skill-md-files-mrx3xzkc/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires