Ajouter une compétence skills.sh comme plugin

VérifiéPrudence

Installe une compétence skills.sh dans un répertoire de plugin via bunx skills add, puis configure plugin.json.

Spar Skills Guide Bot
DeveloppementIntermédiaire
28/07/2026
Claude Code
#claude-code-plugins#skill-installation#marketplace#cli-automation#github

Recommandé pour

Synthèse automatique

Cette skill transforme une skill publiée sur skills.sh en plugin Claude Code en l'installant dans plugins/<nom>/ puis en générant le fichier plugin.json correspondant.

Points forts

  • Valide les arguments (nom de plugin, URL GitHub, noms de skills) et détecte les conflits avec un dossier existant ou marketplace.json avant toute écriture
  • Délègue l'installation à `bunx skills add` dans le répertoire du plugin et référence `.agents/skills/` via le champ `skills`, ce qui évite toute copie manuelle de fichiers
  • Vérifie l'installation en contrôlant la présence des SKILL.md et en relisant skills-lock.json, puis demande confirmation avant de créer le plugin
  • Récupère description et licence via `gh api` et la frontmatter de la skill pour remplir plugin.json de façon pertinente

Limites

  • Dépend d'outils externes et authentifiés : `bunx skills`, `gh` et un dépôt accessible sur GitHub uniquement
  • Ne met pas à jour `.claude-plugin/marketplace.json` : elle vérifie seulement l'absence de conflit, l'enregistrement au marketplace reste à faire
  • Refuse un nom de plugin déjà présent, donc une ré-exécution nécessite un nettoyage manuel du dossier
Quand l'utiliser

À utiliser lorsqu'on veut ajouter rapidement une ou plusieurs skills d'un dépôt GitHub comme plugin packagé dans un marketplace Claude Code.

Quand l'éviter

À éviter pour des skills hébergées ailleurs que sur GitHub, ou si l'on attend de la commande qu'elle enregistre elle-même le plugin dans marketplace.json.

Analyse de sécurité

Prudence
Score qualité90/100

The skill automates adding third-party skills to a plugin marketplace, requiring network access and execution of `bunx skills add` from user-provided GitHub repos. While the intent is legitimate and no destructive or exfiltrating actions are explicitly instructed, the use of external package installation and shell execution from arbitrary repos warrants caution.

Points d'attention
  • •Uses `bunx skills add` to install skills from arbitrary GitHub repositories, which may execute code or install scripts from the remote source.
  • •Runs network commands (`gh api`) and modifies multiple project files (`plugin.json`, `marketplace.json`, `release-please-config.json`, `README.md`).
  • •User-supplied repository URLs and skill names are used directly in shell commands; validation is limited to format, not trustworthiness of the source.
Comment cette analyse est faite

Exemples

Single skill plugin
/add-skill slack-agent https://github.com/vercel-labs/slack-agent-skill
Multiple skills from one repo
/add-skill agent-skills https://github.com/vercel-labs/agent-skills --skill pr-review commit
Natural language request
Package the vercel-labs/agent-skills repo as a plugin called agent-skills, installing the pr-review and commit skills.

description: Add a skills.sh skill as a plugin to the marketplace. Installs the skill inside the plugin directory using bunx skills add, then configures plugin.json with the skills field — no file copying required.

Add a skills.sh skill as a plugin to the marketplace.

Arguments: $ARGUMENTS (format: <plugin-name> <github-repo-url> [--skill <skill-name> [<skill-name2> ...]])

Examples:

  • /add-skill slack-agent https://github.com/vercel-labs/slack-agent-skill
  • /add-skill slack-agent https://github.com/vercel-labs/slack-agent-skill --skill slack-agent
  • /add-skill agent-skills https://github.com/vercel-labs/agent-skills --skill pr-review commit

Step 1 — Parse & Validate Input

Parse $ARGUMENTS to extract:

  • PLUGIN_NAME: first token (e.g. agent-skills)
  • REPO_URL: second token (e.g. https://github.com/vercel-labs/agent-skills)
  • SKILL_NAMES: all space-separated values after --skill flag until the end of arguments (e.g. pr-review commit → ["pr-review", "commit"]). Defaults to [PLUGIN_NAME] if --skill is not provided.
  • OWNER_REPO: short form of the URL (e.g. vercel-labs/agent-skills)

Validate:

  • Both PLUGIN_NAME and REPO_URL are present. If not, stop and show:
    Usage: /add-skill <plugin-name> <github-repo-url> [--skill <skill-name> [<skill-name2> ...]]
    
  • REPO_URL matches https://github.com/<owner>/<repo>. Normalize to <owner>/<repo> short form.
  • PLUGIN_NAME contains only alphanumeric characters, hyphens, and underscores.
  • Each name in SKILL_NAMES contains only alphanumeric characters, hyphens, and underscores.

Check for conflicts:

  • plugins/<PLUGIN_NAME>/ must NOT already exist
  • PLUGIN_NAME must NOT already be in .claude-plugin/marketplace.json

If either check fails, stop and report the conflict.

Step 2 — Install Skills inside Plugin Directory

Create the plugin directory and install each skill into it. Run the following for each name in SKILL_NAMES:

mkdir -p plugins/<PLUGIN_NAME>
(cd plugins/<PLUGIN_NAME> && bunx skills add <OWNER_REPO> --skill <SKILL_NAME> --agent 'universal' -y)

bunx skills add run from plugins/<PLUGIN_NAME>/ will:

  • Install skill files to plugins/<PLUGIN_NAME>/.agents/skills/<SKILL_NAME>/
  • Append to (or create) plugins/<PLUGIN_NAME>/skills-lock.json scoped to this plugin

If any command fails, stop and show the error.

Verify installation:

For each skill in SKILL_NAMES, check that the SKILL.md exists:

ls plugins/<PLUGIN_NAME>/.agents/skills/<SKILL_NAME>/SKILL.md

Then read skills-lock.json:

cat plugins/<PLUGIN_NAME>/skills-lock.json

Read skills-lock.json to extract the source value (e.g. "vercel-labs/agent-skills") — used as reference for the plugin's upstream origin.

Display the installed skill files and ask for confirmation to continue:

Installed skills in plugins/<PLUGIN_NAME>/.agents/skills/:
  <SKILL_NAME_1>/
    - SKILL.md
    - README.md
    - ...
  <SKILL_NAME_2>/
    - SKILL.md
    - ...

skills-lock.json created at plugins/<PLUGIN_NAME>/skills-lock.json
  source: <OWNER_REPO>

Proceed to create plugin? (yes/no)

Step 3 — Create plugin.json

Fetch repo metadata for description and license:

gh api repos/<owner>/<repo> --jq '{description: .description, license: (.license.spdx_id // "NOASSERTION")}'

Also read the first skill's plugins/<PLUGIN_NAME>/.agents/skills/<FIRST_SKILL_NAME>/SKILL.md frontmatter — the description field there may give a better description than the repo's.

Create plugins/<PLUGIN_NAME>/.claude-plugin/plugin.json:

{
  "name": "<PLUGIN_NAME>",
  "version": "1.0.0",
  "description": "<description from skill frontmatter or repo>",
  "license": "<SPDX from repo, or NOASSERTION if unknown>",
  "keywords": ["<PLUGIN_NAME>"],
  "skills": "./.agents/skills/"
}

The "skills" field tells Claude Code to load all skill directories from .agents/skills/ relative to the plugin root — no file copying needed.

Step 4 — Add Entry to .claude-plugin/marketplace.json

Read .claude-plugin/marketplace.json and add the new plugin entry to the plugins array:

{
  "name": "<PLUGIN_NAME>",
  "description": "<description>",
  "source": "./plugins/<PLUGIN_NAME>"
}

Use the Edit tool to insert the new entry before the closing ].

Step 5 — Add Entry to release-please-config.json

Read release-please-config.json and add the new plugin package to the packages object after the last existing plugins/* entry:

"plugins/<PLUGIN_NAME>": {
  "release-type": "simple",
  "component": "<PLUGIN_NAME>",
  "extra-files": [
    {
      "type": "json",
      "path": ".claude-plugin/plugin.json",
      "jsonpath": "$.version"
    }
  ]
}

Step 6 — Update Documentation

README.md

Read README.md and add an entry for the new plugin inside the Built-in Plugins section, immediately before the closing ## Installation heading (or after the last #### ... plugin entry in that section):

#### <Human-readable Plugin Name>
<description from plugin.json>

**Install:** `/plugin install <PLUGIN_NAME>@pleaseai` | **Source:** [plugins/<PLUGIN_NAME>](https://github.com/pleaseai/claude-code-plugins/tree/main/plugins/<PLUGIN_NAME>)

Use the Edit tool to insert the block after the last plugin entry or at the end of the Built-in Plugins list.

CLAUDE.md

Read CLAUDE.md and check whether any section needs updating:

  • If CLAUDE.md contains a submodule or plugin source list (e.g. external-plugins/* mappings), add the new plugin's source repo there.
  • If no relevant section exists, no update is required — skip silently.

Step 7 — Summary Report

✓ Skill plugin added: <PLUGIN_NAME>

Source:
  https://github.com/<owner>/<repo>
  Installed via: bunx skills add <OWNER_REPO> --skill <SKILL_NAME_1>
                                               --skill <SKILL_NAME_2>
                                               ...

Plugin structure:
  plugins/<PLUGIN_NAME>/
  ├── .agents/skills/
  │   ├── <SKILL_NAME_1>/   ← skill files (managed by skills.sh)
  │   │   └── SKILL.md
  │   └── <SKILL_NAME_2>/
  │       └── SKILL.md
  ├── skills-lock.json       ← version lock (managed by skills.sh)
  └── .claude-plugin/
      └── plugin.json        ← "skills": "./.agents/skills/"

Changes made:
  plugins/<PLUGIN_NAME>/.claude-plugin/plugin.json   (created)
  .claude-plugin/marketplace.json                    (updated)
  release-please-config.json                         (updated)
  README.md                                          (updated)
  CLAUDE.md                                          (updated, if applicable)

To update the skills in the future:
  cd plugins/<PLUGIN_NAME> && bunx skills update

To test:
  /plugin install <PLUGIN_NAME>@pleaseai

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/add-a-skills-sh-skill-as-a-plugin-ms47vqp1/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/add-a-skills-sh-skill-as-a-plugin-ms47vqp1' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/add-a-skills-sh-skill-as-a-plugin-ms47vqp1/download' --output '.skill-downloads/add-a-skills-sh-skill-as-a-plugin-ms47vqp1/SKILL.md.part' && mv '.skill-downloads/add-a-skills-sh-skill-as-a-plugin-ms47vqp1/SKILL.md.part' '.skill-downloads/add-a-skills-sh-skill-as-a-plugin-ms47vqp1/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/add-a-skills-sh-skill-as-a-plugin-ms47vqp1/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