Publish Skill
skills.sh n'a pas de file d'attente de soumission — il découvre les compétences en parcourant les dépôts GitHub publics à la recherche de fichiers skills/<slug>/SKILL.md bien formés. "Publier" signifie donc : le dépôt est public, chaque SKILL.md a un frontmatter valide, et (optionnellement) la compétence est également synchronisée vers un marketplace/organisation secondaire qui indexe les dépôts directement.
Valider
Exécutez depuis ce répertoire de compétence :
python3 scripts/skill_publisher.py validate --workspace /chemin/vers/depot --fail-on block
Vérifie chaque skills/<slug>/SKILL.md : le frontmatter commence et se termine par ---, name est présent et en minuscules kebab-case, name correspond à son répertoire, description est présent et contient entre 20 et 1024 caractères, et le corps après le frontmatter contient des instructions réelles (pas seulement un stub).
Utilisez --fail-on revise pour une validation plus stricte, --format json pour une consommation machine.
Générer le Manifeste d'Installation
python3 scripts/skill_publisher.py manifest --workspace /chemin/vers/depot
Résout le slug GitHub du dépôt à partir de git remote origin et affiche une ligne npx skills add <proprietaire>/<depot> --skill <nom> par compétence valide. C'est ce qu'il faut distribuer (ou coller dans un README/annonce) comme instructions "installer depuis skills.sh" — il n'y a pas d'étape de soumission séparée.
all exécute validate puis manifest en un seul appel et partage la même porte --fail-on.
Publier Toute une Organisation en une Commande
python3 scripts/skill_publisher.py org --org farfun-skill --workspaces-dir /chemin/vers/farfun-skill
C'est le point d'entrée "tout publier" en un seul coup. Il liste chaque dépôt public, non fork dans --org via gh repo list, clone ceux qui ne sont pas déjà extraits sous --workspaces-dir (ne télécharge ni ne modifie jamais un clone existant), ignore les dépôts sans répertoire skills/, exécute validate sur les autres, et affiche le manifeste d'installation combiné pour toute l'organisation. --workspaces-dir par défaut est le répertoire parent de --workspace, donc l'exécuter depuis un dépôt situé à côté de ses voisins sur le disque ne nécessite pas de drapeaux supplémentaires.
Ajoutez --register pour également exécuter localement npx skills add <proprietaire>/<depot> --skill <nom> -y pour chaque compétence ayant passé la validation — c'est le mécanisme réel qui alimente la télémétrie/classement d'installation de skills.sh (il n'y a pas d'API de soumission) et il installe également la compétence dans les répertoires de compétences de l'agent de cette machine, donc ne l'utilisez que lorsque cet effet secondaire est souhaité.
Ajoutez --mirror-to <org> pour également forker/synchroniser chaque dépôt validé dans une organisation secondaire (voir ci-dessous).
Synchroniser vers une Autre Plateforme
python3 scripts/skill_publisher.py mirror --workspace /chemin/vers/depot --target-org farfun-skills
Forke le dépôt dans --target-org (par défaut farfun-skills) sous la forme <proprietaire>--<depot> lors de la première exécution, et re-synchronise ce fork à partir de la source à chaque exécution ultérieure — correspondant à la façon dont cette organisation synchronise déjà les dépôts farfun-skill/* pour la découverte secondaire. Nécessite gh authentifié avec les autorisations de créer des dépôts dans l'organisation cible. C'est le seul sous-commande qui modifie l'état distant de GitHub ; exécutez d'abord validate et ne synchronisez qu'un dépôt qui a réussi.
Retourner les Résultats
Retournez allow, revise ou block depuis validate, les vérifications réussies, et les chemins de réparation concrets pour chaque constatation (quel fichier, quel champ, quoi changer). manifest et mirror sont des sorties informatives/d'action, pas des portes — ne bloquez pas sur elles.