Normes d'ingénierie SKILL

VérifiéSûr

Fournit des normes d'ingénierie pour la création de SKILLs d'agents IA. Couvre la spécification frontmatter, les normes CLI, le versioning et la checklist qualité.

Spar Skills Guide Bot
DocumentationIntermédiaire
22/07/2026
Claude Code
#skill-authoring#frontmatter#standards#cli#versioning

Recommandé pour

Synthèse automatique

Une bibliothèque de normes d'ingénierie pour rédiger et réviser des SKILL.md : frontmatter, style de description, allowed-tools, exit codes CLI, versionnage semver.

Points forts

  • Délimite clairement son rôle face au skill-creator officiel via un tableau de répartition et un index de passation
  • Couvre des points précis souvent mal traités : imbrication des metadata, longueur et ton de la description (100-300 caractères), allowed-tools
  • Fournit des standards CLI concrets (exit codes, protocole de sortie, configuration, permissions) et un workflow de breaking change semver
  • S'appuie sur des sources externes citées (dépôt anthropics/skills, Click, Typer, uv)

Limites

  • Ne fonctionne pas seul : il présuppose le workflow du skill-creator officiel déjà suivi
  • Ne traite pas le processus de création, les évaluations ni l'adaptation Claude.ai/Cowork, laissés au skill-creator
  • Le contenu fourni est partiellement tronqué (fin du §0.5), donc certaines références annexes ne sont pas détaillées ici
Quand l'utiliser

À charger en complément de skill-creator dès que vous rédigez, relisez ou corrigez le frontmatter, la description ou les standards d'un SKILL.

Quand l'éviter

À ne pas utiliser comme guide unique pour créer un skill de zéro, ni comme substitut au workflow et à l'outillage d'évaluation de skill-creator.

Analyse de sécurité

Sûr
Score qualité85/100

The skill is purely informational and uses only the Read tool; it contains no instructions for destructive actions, exfiltration, or execution of code, and therefore poses no security risk.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Fix frontmatter compliance
Review the frontmatter of my SKILL.md. The description is only 60 characters, metadata fields are flat instead of nested, and allowed-tools is malformed. Bring it in line with the SKILL engineering standards.
Add CLI standards to a skill
My skill wraps a Python CLI. Add the exit code conventions, output protocol, config handling, and permission notes from the CLI standards, and tell me which parts belong to skill-creator instead.
Plan a breaking change
I need to rename a section and change the description of my published skill. Walk me through the semver versioning and breaking-change workflow, including what to bump in metadata.version.

name: skill-dev-standard description: | Use when building, reviewing, or fixing any SKILL. Covers: frontmatter spec, description style (100-300 chars, pushy), metadata nesting, allowed-tools, CLI standards, versioning. Trigger for: SKILL.md authoring, undertriggering, structure questions. Do NOT use for: skill-creator workflow. license: MIT allowed-tools: [Read] metadata: version: "2.2.0" type: docs author: Shrek valid_until: evergreen source_urls: - "https://github.com/anthropics/skills" - "https://click.palletsprojects.com/" - "https://typer.tiangolo.com/" - "https://docs.astral.sh/uv/" tags: - skill-development - standards - engineering - frontmatter - cli - docs

SKILL Engineering Standards

This SKILL is your project's quality standards library for building AI Agent Skills. When creating or modifying any SKILL, load this alongside skill-creator — this SKILL provides engineering standards, skill-creator provides the development workflow.

What This SKILL Does

This SKILL does not replace the official Anthropic skill-creator. It is its engineering complement. The two are complementary and should be loaded together:

| Concern | Owner | | -------------------------------------------------------------------------------------------------- | ---------------------------- | | Development workflow (requirements capture, interviews, testing, evaluation, iteration, packaging) | skill-creator (official) | | Design philosophy (Progressive Disclosure, writing style) | skill-creator (official) | | Evaluation toolchain (eval-viewer, run_loop, benchmark) | skill-creator (official) | | Claude.ai / Cowork environment adaptation | skill-creator (official) | | CLI SKILL engineering standards (exit codes, output protocol, config, permissions) | this SKILL | | Output Schema (inter-SKILL contracts, reducing compose hallucinations) | this SKILL | | Docs SKILL freshness and quality (valid_until, golden-set) | this SKILL | | Frontmatter compliance details (metadata nesting, allowed-tools) | this SKILL | | Semver versioning and Breaking Change workflow | this SKILL | | Quality checklist (CLI / docs / general — three columns) | this SKILL |

Do NOT use this SKILL alone — it assumes you have already followed skill-creator's workflow through "requirements capture → draft → testing → iteration". This SKILL supplements engineering standards at each stage. Full hand-off index: see §0.5 below.

§0.5 Hand-off Index with skill-creator

Forward hand-off (skill-creator → this SKILL)

| skill-creator stage | Hand off to this SKILL | | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | After Capture Intent | Read §1 to choose SKILL type (CLI / docs / hybrid) | | Write the SKILL.md | Read references/skillmd-authoring.md §2.0–2.2 (progressive disclosure + description writing) | | Configure frontmatter | Read references/permissions.md §9 (permissions + allowed-tools) | | Choose CLI implementation language | Read references/cli-templates.md §4.0 (language-agnostic conventions), §4.6 (multi-language comparison) | | Need output templates / config boilerplates / payload samples | Read references/project-structure.md §3.5 (assets/ directory spec) | | Test Cases stage | CLI SKILL: read references/testing.md §10.1 (CliRunner); Docs SKILL: read §10.2 (golden-set) | | Iterate stage (bug fixing) | Read references/cli-runtime.md §7 (error handling), §8 (Output Schema) | | Before packaging | Read references/quality-and-release.md §12 quality checklist | | Version upgrade | Read references/quality-and-release.md §11 (Semver + breaking change workflow) | | MCP integration (optional) | Read references/quality-and-release.md §11.4 (MCP annotation alignment) |

Reverse hand-off (this SKILL → skill-creator)

| Trigger | Hand off to skill-creator | | ------------------------------------------------- | ------------------------------------------------------------------ | | Need requirements interview / scope clarification | "Capture Intent + Interview" section | | Need to run with-skill / baseline comparison | "Running and evaluating test cases" | | Need to measure description trigger rate | "Description optimization" (run_loop.py) | | Need to package into .skill file | "Package and Present" (package_skill.py) | | Need Claude.ai / Cowork environment adaptation | "Claude.ai-specific instructions" / "Cowork-Specific Instructions" |


§1 SKILL Type Decision

Classification

| Type | Purpose | Use When | Tech Stack | | ---------------- | ---------------------------------------- | ---------------------------------------------------- | --------------- | | CLI SKILL | Wraps CLI tools or APIs | System operations, API integrations, data processing | Click / Typer | | Docs SKILL | Wraps knowledge bases and reference docs | Domain knowledge, API docs, best practices | Markdown + code | | Hybrid SKILL | CLI + Docs combined | Scenarios requiring both operations and knowledge | CLI + Docs |

Decision Matrix

Choose CLI SKILL when:

  • Executing system commands or operations
  • Calling REST APIs for data interaction
  • Wrapping existing command-line tools
  • Needing CRUD operations
  • Data format conversion or processing

Choose Docs SKILL when:

  • Encapsulating domain knowledge and best practices
  • API reference documentation lookups
  • Coding conventions and pattern libraries
  • Architecture design guides
  • Troubleshooting guides

Choose Hybrid SKILL when:

  • Need both knowledge queries and operational execution
  • Docs contain executable code snippets
  • Dynamic queries and real-time operations need to be combined

See official examples: Anthropic skill-examples repository


Usage Steps

When creating a new SKILL, follow this order:

  1. Read §1 (this file) — decide type (CLI / docs / hybrid)
  2. Read references/skillmd-authoring.md §2.0 — understand Progressive Disclosure principles
  3. Read references/skillmd-authoring.md §2.2 — write description (trigger-first + pushy style + negative examples)
  4. Read references/project-structure.md §3 — set up directory structure
  5. Read references/cli-runtime.md §8, references/permissions.md §9 — declare output_schema and permissions
  6. Read references/permissions.md §9.4 — declare allowed-tools (top-level frontmatter field)
  7. Read references/testing.md §10 — write minimal test suite
  8. Use references/quality-and-release.md §12 checklist to validate, then hand to skill-creator to package

When modifying an existing SKILL:

  • Directly audit using references/quality-and-release.md §12 checklist
  • Fill in missing metadata.output_schema or metadata.permissions
  • Confirm allowed-tools is declared at the top level
  • Optimize description trigger keywords against references/skillmd-authoring.md §2.2

Quick Reference

description writing (highest priority)

The description is the core basis for Agent routing — how it is written directly determines recall rate. It must:

  • Start with verb + scenario enumeration, not a noun
  • Include 1–2 negative exclusions to help Agent avoid false triggers
  • 100–300 words recommended (hard limit: 1024 chars); keep key triggers in the first 30 words
  • No < or >: will be rejected by quick_validate.py (use { } for placeholders)
  • Pushy style: Claude defaults to undertriggering (not using SKILLs when it should). Actively list multiple user phrasings, related concepts, and implicit scenarios — not just a description of functionality.

Good example (CLI type):

Use this skill when generating Conventional Commits-compliant commit messages from git diff, staged changes, or change descriptions.
Covers: completing commit type prefixes (feat/fix/refactor/docs), inferring scope from multi-file diffs, generating multi-line commit bodies, appending BREAKING CHANGE annotations.
Also triggers when users say "how should I write this commit", "help me write a proper commit message", "format this as conventional commits".
Do NOT use for: actually running git commit, modifying git config, merging PRs.

Bad example:

Git commit tool that wraps commit message generation.

Full examples and rules → references/skillmd-authoring.md §2.2

Frontmatter compliant fields

Packaging validation only allows top-level fields: name, description, license, allowed-tools, metadata, compatibility

All custom fields (output_schema, permissions, valid_until, etc.) go inside metadata; allowed-tools is a top-level compliant field — do NOT put it inside metadata:

---
name: my-skill
description: "Use this skill when... Do NOT use for..."
license: MIT
allowed-tools: [Read, Bash]
metadata:
  version: "1.0.0"
  type: cli # cli | docs | hybrid
  valid_until: "2026-12-31" # or "evergreen"
  source_urls:
    - "https://docs.example.com"
  output_schema:
    format: json # json | text | mixed
  permissions:
    read_paths: ["~/.my-skill/"]
    write_paths: ["~/.my-skill/"]
    network_endpoints: ["https://api.example.com"]
    requires_elevation: false
    accesses_env_vars: ["MY_SKILL_TOKEN"]
---

Full template → references/skillmd-authoring.md §2.3

Directory naming conventions

| SKILL type | External reference dir | Knowledge base dir | | ------------ | ---------------------- | ------------------ | | CLI SKILL | docs/ | — | | Docs SKILL | — | references/ | | Hybrid SKILL | docs/ | references/ |

CLI SKILLs do NOT use references/ — avoids confusion with the docs SKILL knowledge base directory.

Full structure diagrams → references/project-structure.md §3.1–§3.4

Error output convention

All CLI SKILLs use JSON format for error output. Normal results → stdout, errors → stderr:

# Normal output
click.echo(json.dumps({"status": "ok", "data": result}))

# Error output
click.echo(json.dumps({"status": "error", "code": 1, "message": "..."}), err=True)
sys.exit(1)

Exit code convention: 0=success, 1=config error, 2=network error, 3=permission error, 4=param error, 99=unexpected error.

Full spec → references/cli-runtime.md §7


Reference Files Index

Read the relevant file on demand — no need to load everything:

| File | Coverage | When to read | | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | references/skillmd-authoring.md | §2.0 Progressive Disclosure; §2.1 required fields; §2.2 description writing; §2.3 full SKILL.md template; §2.4 docs SKILL specifics | When writing or reviewing any SKILL.md | | references/project-structure.md | §3.1–3.4 four structure diagrams (flat/modular/docs/hybrid); §3.5 assets/ spec (directory boundaries, placeholders, security) | When designing directory structure or needing output templates | | references/cli-templates.md | §4.0 language-agnostic conventions; §4.1 uv dependency management; §4.3 Click full template; §4.4 Typer template; §4.5 Click quick ref; §4.6 multi-language comparison | When implementing a CLI SKILL | | references/docs-development.md | §5.1 content organization; §5.2 quality standards; §5.3 freshness mechanism (valid_until); §5.4 doc templates | When implementing a Docs SKILL | | references/cli-runtime.md | §6 config management (priority + class template); §7 error handling (exit codes + JSON format); §8 Output Schema (TypedDict + JSON Schema) | When implementing config loading, error handling, or declaring output structure | | references/permissions.md | §9.1–9.3 permissions fields; §9.4 allowed-tools (top-level field) | When declaring permission boundaries | | references/testing.md | §10.1 CliRunner unit test template; §10.2 golden-set Q&A pairs; §10.3 test directory; §10.4 minimum test requirements | When writing tests | | references/quality-and-release.md | §11 Semver + Breaking Change + MCP annotation; §12 quality checklist (CLI/docs/general); §13 minimal templates; Appendix A references | Before packaging or on version upgrades |

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/skill-engineering-standards-mrwakaar/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/skill-engineering-standards-mrwakaar' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/skill-engineering-standards-mrwakaar/download' --output '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md.part' && mv '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md.part' '.skill-downloads/skill-engineering-standards-mrwakaar/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.

Extrait original : Quick Reference

description writing (highest priority)

The description is the core basis for Agent routing — how it is written directly determines recall rate. It must:

  • Start with verb + scenario enumeration, not a noun
  • Include 1–2 negative exclusions to help Agent avoid false triggers
  • 100–300 words recommended (hard limit: 1024 chars); keep key triggers in the first 30 words
  • No < or >: will be rejected by quick_validate.py (use { } for placeholders)
  • Pushy style: Claude defaults to undertriggering (not using SKILLs when it should). Actively list multiple user phrasings, related concepts, and implicit scenarios — not just a description of functionality.

Good example (CLI type):

Use this skill when generating Conventional Commits-compliant commit messages from git diff, staged changes, or change descriptions.
Covers: completing commit type prefixes (feat/fix/refactor/docs), inferring scope from multi-file diffs, generating multi-line commit bodies, appending BREAKING CHANGE annotations.
Also triggers when users say "how should I write this commit", "help me write a proper commit message", "format this as conventional commits".
Do NOT use for: actually running git commit, modifying git config, merging PRs.

Bad example:

Git commit tool that wraps commit message generation.

Full examples and rules → references/skillmd-authoring.md §2.2

Frontmatter compliant fields

Packaging validation only allows top-level fields: name, description, license, allowed-tools, metadata, compatibility

All custom fields (output_schema, permissions, valid_until, etc.) go inside metadata; allowed-tools is a top-level compliant field — do NOT put it inside metadata:

---
name: my-skill
description: "Use this skill when... Do NOT use for..."
license: MIT
allowed-tools: [Read, Bash]
metadata:
  version: "1.0.0"
  type: cli # cli | docs | hybrid
  valid_until: "2026-12-31" # or "evergreen"
  source_urls:
    - "https://docs.example.com"
  output_schema:
    format: json # json | text | mixed
  permissions:
    read_paths: ["~/.my-skill/"]
    write_paths: ["~/.my-skill/"]
    network_endpoints: ["https://api.example.com"]
    requires_elevation: false
    accesses_env_vars: ["MY_SKILL_TOKEN"]
---

Full template → references/skillmd-authoring.md §2.3

Directory naming conventions

SKILL typeExternal reference dirKnowledge base dir
CLI SKILLdocs/—
Docs SKILL—references/
Hybrid SKILLdocs/references/

CLI SKILLs do NOT use references/ — avoids confusion with the docs SKILL knowledge base directory.

Full structure diagrams → references/project-structure.md §3.1–§3.4

Error output convention

All CLI SKILLs use JSON format for error output. Normal results → stdout, errors → stderr:

# Normal output
click.echo(json.dumps({"status": "ok", "data": result}))

# Error output
click.echo(json.dumps({"status": "error", "code": 1, "message": "..."}), err=True)
sys.exit(1)

Exit code convention: 0=success, 1=config error, 2=network error, 3=permission error, 4=param error, 99=unexpected error.

Full spec → references/cli-runtime.md §7


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

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md' && test -s '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/skill-dev-standard' && cp -R '.skill-downloads/skill-engineering-standards-mrwakaar' '.claude/skills/skill-dev-standard'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/skill-engineering-standards-mrwakaar'

openskills read 'skill-engineering-standards-mrwakaar'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

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/skill-engineering-standards-mrwakaar/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