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 les données de référence dans un sous-répertoire references/ situé à 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 dans le tableau plugins de .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 localement

    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 dans docs/plugins/example-plugin.mdx
  5. Ouvrir une PR en la liant à l’issue avec Closes #N
  6. Corriger les échecs CI et fusionner une fois les vérifications réussies
  • 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 une portée intelligente — vérifiez l’existence de modifications non validées pour restreindre le périmètre de travail lorsque c’est possible
  • Regroupez les sorties par gravité — 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