Aller au contenu

Contribuer un plugin

Ce guide explique comment créer un nouveau plugin et l’ajouter à la place de marché f5-sales-demo.

Chaque plugin réside dans son propre répertoire sous plugins/ et suit cette structure :

  • Répertoireplugins/
    • Répertoireexample-plugin/
      • Répertoire.claude-plugin/
        • plugin.json
      • Répertoireskills/
        • Répertoireexample-skill/
          • SKILL.md
          • Répertoirereferences/
            • reference-data.md
      • Répertoirecommands/
        • example-command.md
      • Répertoireagents/
        • example-agent.md
      • README.md
  1. Créer le répertoire du plugin

    Fenêtre de terminal
    mkdir -p plugins/example-plugin/.claude-plugin
    mkdir -p plugins/example-plugin/skills
    mkdir -p plugins/example-plugin/commands
  2. Rédiger plugin.json

    Créer plugins/example-plugin/.claude-plugin/plugin.json :

    {
    "name": "example-plugin",
    "description": "What this plugin does",
    "version": "1.0.0",
    "author": {
    "name": "f5-sales-demo"
    },
    "homepage": "https://github.com/f5-sales-demo/marketplace/tree/main/plugins/example-plugin",
    "keywords": ["relevant", "keywords"],
    "license": "Apache-2.0",
    "repository": "https://github.com/f5-sales-demo/marketplace"
    }
  3. Ajouter des compétences (skills)

    Créer plugins/example-plugin/skills/example-skill/SKILL.md avec un en-tête frontmatter :

    ---
    name: example-skill
    description: One-line description of what this skill does
    ---
    Detailed instructions for Claude when this skill activates.

    Placez toutes les données de référence dans un sous-répertoire references/ à côté de SKILL.md.

  4. Ajouter des commandes

    Créer plugins/example-plugin/commands/example-command.md :

    ---
    description: What this command does
    argument_hint: "[optional-args]"
    allowed_tools:
    - Read
    - Glob
    - Grep
    ---
    Instructions for Claude when the user invokes this command.
  5. Ajouter le plugin à marketplace.json

    Ajouter une entrée au tableau plugins dans .claude-plugin/marketplace.json :

    {
    "name": "example-plugin",
    "description": "What this plugin does",
    "version": "1.0.0",
    "author": { "name": "f5-sales-demo" },
    "source": "./plugins/example-plugin",
    "category": "productivity",
    "homepage": "https://github.com/f5-sales-demo/marketplace/tree/main/plugins/example-plugin",
    "license": "Apache-2.0",
    "keywords": ["relevant", "keywords"],
    "tags": ["searchable", "tags"],
    "repository": "https://github.com/f5-sales-demo/marketplace"
    }
  6. Tester en local

    Testez votre plugin sans le publier en pointant Claude Code vers le répertoire local :

    Fenêtre de terminal
    claude --plugin-dir ./plugins/example-plugin

    Vérifiez que les compétences s’activent dans le bon contexte et que les commandes produisent le résultat attendu.

  1. Créer une issue GitHub décrivant le nouveau plugin
  2. Créer une branche de fonctionnalité à partir de main
  3. Ajouter votre répertoire de plugin et mettre à jour marketplace.json
  4. Ajouter une page de documentation à docs/plugins/example-plugin.mdx
  5. Ouvrir une PR en la liant à l’issue avec Closes #N
  6. Corriger les éventuels échecs de CI et fusionner une fois les vérifications passées
  • Gardez les compétences ciblées — une compétence doit bien faire une seule chose
  • Utilisez des fichiers de référence — placez les jeux de données volumineux, les schémas et les tables de correspondance dans references/ plutôt qu’en ligne dans SKILL.md
  • Définissez la portée intelligemment — vérifiez la présence de modifications non validées pour réduire le périmètre de travail lorsque c’est possible
  • Regroupez la sortie par sévérité — utilisez les niveaux ERROR, WARNING et INFO afin que les utilisateurs puissent prioriser les corrections
  • Rédigez un README — incluez des exemples d’utilisation et une description de ce que fait chaque compétence et chaque commande