Ir al contenido

Contribuir con un Plugin

Esta guía explica cómo crear un nuevo plugin y añadirlo al marketplace f5-sales-demo.

Cada plugin reside en su propio directorio dentro de plugins/ y sigue esta estructura:

  • Directorioplugins/
    • Directorioexample-plugin/
      • Directorio.claude-plugin/
        • plugin.json
      • Directorioskills/
        • Directorioexample-skill/
          • SKILL.md
          • Directorioreferences/
            • reference-data.md
      • Directoriocommands/
        • example-command.md
      • Directorioagents/
        • example-agent.md
      • README.md
  1. Crear el directorio del plugin

    Ventana de terminal
    mkdir -p plugins/example-plugin/.claude-plugin
    mkdir -p plugins/example-plugin/skills
    mkdir -p plugins/example-plugin/commands
  2. Escribir plugin.json

    Crear 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. Añadir skills

    Crear plugins/example-plugin/skills/example-skill/SKILL.md con frontmatter:

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

    Coloque los datos de referencia en un subdirectorio references/ junto a SKILL.md.

  4. Añadir comandos

    Crear 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. Añadir el plugin a marketplace.json

    Añadir una entrada al array plugins en .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. Probar localmente

    Pruebe su plugin sin publicarlo apuntando Claude Code al directorio local:

    Ventana de terminal
    claude --plugin-dir ./plugins/example-plugin

    Verifique que los skills se activan en el contexto correcto y que los comandos producen la salida esperada.

  1. Crear un issue en GitHub describiendo el nuevo plugin
  2. Crear una rama de funcionalidad a partir de main
  3. Añadir el directorio de su plugin y actualizar marketplace.json
  4. Añadir una página de documentación en docs/plugins/example-plugin.mdx
  5. Abrir un PR vinculado al issue con Closes #N
  6. Corregir los fallos de CI y fusionar una vez que las comprobaciones pasen
  • Mantenga los skills enfocados — un skill debe hacer una sola cosa bien
  • Use archivos de referencia — coloque conjuntos de datos grandes, esquemas y tablas de búsqueda en references/ en lugar de incluirlos directamente en SKILL.md
  • Defina el alcance de forma inteligente — compruebe si hay cambios sin confirmar para reducir el conjunto de trabajo cuando sea posible
  • Agrupe la salida por severidad — use los niveles ERROR, WARNING e INFO para que los usuarios puedan priorizar las correcciones
  • Escriba un README — incluya ejemplos de uso y una descripción de lo que hace cada skill y comando