references

Par refly-ai · refly

npx skills add https://github.com/refly-ai/refly --skill references

Référence des Skills

Commandes CLI

Découverte

# Lister les packages de skills
refly skill list [options]
  --status <status>     # Filtre : draft, published, deprecated
  --mine                # Afficher uniquement mes packages
  --tags <tags>         # Filtrer par tags (séparés par des virgules)
  --page <number>       # Numéro de page (défaut : 1)
  --page-size <number>  # Taille de page (défaut : 20)

# Rechercher des packages publics
refly skill search <query> [options]
  --tags <tags>         # Filtrer par tags (séparés par des virgules)
  --page <number>       # Numéro de page (défaut : 1)
  --page-size <number>  # Taille de page (défaut : 20)

# Obtenir les détails du skill
refly skill get <skillId> [options]
  --include-workflows   # Inclure les détails des workflows
  --share-id <shareId>  # ID de partage pour les skills privés

Cycle de vie

# Créer un package de skill (voir « Modes de création de skills » ci-dessous)
refly skill create [options]
  --name <name>                 # Nom du skill (obligatoire)
  --version <version>           # Version sémantique (défaut : 1.0.0)
  --description <desc>          # Description du skill
  --triggers <triggers>         # Phrases déclencheurs (séparées par des virgules)
  --tags <tags>                 # Tags de catégorie (séparés par des virgules)
  --workflow <workflowId>       # Lier un seul workflow
  --workflow-ids <ids>          # Lier plusieurs workflows (séparés par des virgules)
  --workflow-spec <json>        # Spec JSON du workflow
  --workflow-query <query>      # Description en langage naturel
  --verbose                     # Inclure les détails du workflow en sortie

# Publication
refly skill publish <skillId>   # Rendre public
refly skill unpublish <skillId> # Rendre privé
refly skill delete <skillId> [options]
  --force                       # Ignorer la confirmation

# Gestion locale
refly skill sync [options]      # Synchroniser le registre avec le système de fichiers
  --dry-run                     # Aperçu des modifications uniquement
  --prune                       # Supprimer les entrées orphelines

refly skill validate [path] [options]
  --fix                         # Tenter de corriger les problèmes

Installation

# Installer un skill
refly skill install <skillId> [options]
  --version <version>   # Version spécifique
  --share-id <shareId>  # ID de partage pour les skills privés
  --config <json>       # Config JSON d'installation

# Lister les installations
refly skill installations [options]
  --status <status>     # Filtre : downloading, initializing, ready, error, disabled
  --page <number>       # Numéro de page (défaut : 1)
  --page-size <number>  # Taille de page (défaut : 20)

# Désinstaller
refly skill uninstall <installationId> [options]
  --force               # Ignorer la confirmation

Exécution

# Exécuter un skill installé
refly skill run <installationId> [options]
  --input <json>                # JSON d'entrée pour le skill
  --workflow <skillWorkflowId>  # Exécuter un workflow spécifique uniquement
  --async                       # Exécuter de manière asynchrone

Modes de création de skills

Mode 1 : Générer un workflow à partir d'une requête

refly skill create --name <name> --workflow-query "<query>"

Comportement :

  1. Appelle le backend IA pour générer le workflow
  2. Crée le skill et lie le workflow
  3. Retourne skillId + workflowId

Métadonnées optionnelles (ne génèrent pas le workflow par elles-mêmes) :

  • --description, --triggers, --tags

Exemple :

refly skill create \
  --name comfyui-refly-skill \
  --workflow-query "ComfyUI image generation workflow collection" \
  --description "ComfyUI image workflow collection" \
  --triggers "comfyui,text to image,image generation,image to image" \
  --tags "image,comfyui"

Mode 2 : Lier un workflow existant

refly skill create --name <name> --workflow <workflowId>

Lier plusieurs workflows :

refly skill create --name <name> --workflow-ids "<workflowId1,workflowId2>"

Exemple :

refly skill create \
  --name my-skill \
  --description "My custom skill" \
  --workflow c-zybbx65ydi5npo7xevjx1wlr \
  --triggers "custom,workflow" \
  --tags "internal"

Mode 3b : Lier plusieurs workflows (explicite)

refly skill create --name <name> --workflow-ids "<workflowId1,workflowId2>"

Exemple :

refly skill create \
  --name multi-workflow-skill \
  --description "Multiple workflow entry points" \
  --workflow-ids "c-aaa111,c-bbb222" \
  --triggers "multi,entry" \
  --tags "batch,workflow"

Mode 3 : Utiliser une spec de workflow (structurée)

refly skill create --name <name> --workflow-spec '<json>'

Exemple :

refly skill create \
  --name pdf-processor \
  --workflow-spec '{
    "nodes": [
      {"id": "n1", "type": "start", "data": {"title": "Start"}},
      {"id": "n2", "type": "skillResponse", "data": {"title": "Process PDF", "metadata": {"query": "Extract and summarize PDF content"}}}
    ],
    "edges": [
      {"id": "e1", "source": "n1", "target": "n2"}
    ]
  }'

Remarque : Les exemples utilisent start et skillResponse. D'autres types de nœuds peuvent être supportés par le backend.

Mode 4 : Skill local uniquement (sans package cloud)

À utiliser quand vous voulez uniquement un répertoire de skill local et une entrée dans le registre.

# Créer les fichiers de skill locaux manuellement, puis synchroniser
refly skill sync

Vous pouvez ensuite créer un package de skill cloud avec :

refly skill create --name <name> --workflow <workflowId>

Logique de génération de workflow

Quand aucun de --workflow, --workflow-ids, --workflow-spec, ou --workflow-query n'est spécifié, la CLI retournera skill.create.needs_workflow avec des options suggérées et des exemples.


Structure des répertoires

~/.refly/skills/
├── base/                       # Fichiers de skill base (cible du symlink pour 'refly')
│   ├── SKILL.md
│   └── rules/
│       ├── workflow.md
│       ├── node.md
│       ├── file.md
│       └── skill.md
└── <skill-name>/               # Répertoires de skills de domaine
    └── SKILL.md

~/.claude/skills/
├── refly → ~/.refly/skills/base/           # Symlink du skill base
└── <skill-name> → ~/.refly/skills/<name>/  # Symlinks des skills de domaine

Fonctionnement des symlinks

  • Skill base : ~/.claude/skills/refly~/.refly/skills/base/
  • Skills de domaine : ~/.claude/skills/<name>~/.refly/skills/<name>/

Claude Code découvre les skills via les symlinks dans ~/.claude/skills/. Chaque skill est un symlink pointant vers le répertoire de skill réel dans ~/.refly/skills/.


Modèle de skill de domaine

Localisation : ~/.refly/skills/<skill-name>/SKILL.md (accédé via ~/.claude/skills/<skill-name>/SKILL.md)

---
name: <skill-name>
description: <résumé sur une ligne, moins de 100 caractères>
workflowId: <workflow-id>
triggers:
  - <phrase-1>
  - <phrase-2>
tags:
  - <tag-1>
author: <author>
version: 1.0.0
---

# <Skill Name>

## Quick Start

<Exemple minimal de code>

## Run

```bash
refly skill run <installationId> --input '<json>'
```

## Advanced

**Feature A**: See [FEATURE_A.md](FEATURE_A.md)
**API Reference**: See [REFERENCE.md](REFERENCE.md)

Bonnes pratiques

Nommage : minuscules, tirets, max 64 caractères (pdf-processing, doc-translator)

Description : verbe + quoi + quand, troisième personne, moins de 100 caractères

  • Bon : "Extracts text from PDF files. Use when processing PDF documents."
  • Mauvais : "I can help you with PDFs"

Triggers : 3-6 phrases hautement pertinentes, mélanger EN/ZH si nécessaire

Structure : Chaque skill est un répertoire avec skill.md comme entrée ; repousser les détails vers les fichiers adjacents

Création de workflow :

  1. Être précis dans la requête de workflow - aide l'IA à générer un workflow exact
  2. Inclure des triggers diversifiés - couvrir les variations EN/ZH
  3. Tester avant de publier - installer puis exécuter (refly skill install -> refly skill run)
  4. Utiliser --workflow-spec pour les scénarios complexes nécessitant un contrôle précis

Skills locaux vs skills cloud

Type Localisation Gestion Cas d'usage
Local ~/.refly/skills/<name>/ Symlinks Itération rapide
Cloud Backend SkillPackage API Distribution et versioning

Flux d'intégration :

  1. Créer un skill cloud -> refly skill create (génère un workflow + symlink local)
  2. Publier le skill -> refly skill publish -> rend le skill découvrable
  3. Installer pour exécuter -> refly skill install -> crée SKILL.md local + symlink
  4. Exécuter le skill -> refly skill run <installationId>

Exemples de sortie

Sortie de liste

{
  "ok": true,
  "type": "skill.list",
  "version": "1.0",
  "payload": {
    "skills": [
      {
        "skillId": "skp-xxx",
        "name": "my-skill",
        "version": "1.0.0",
        "description": "Skill description",
        "status": "published",
        "isPublic": true,
        "downloadCount": 10,
        "createdAt": "2026-01-19T00:00:00Z"
      }
    ],
    "total": 10,
    "page": 1,
    "pageSize": 20,
    "hasMore": false
  }
}

Sortie des installations

{
  "ok": true,
  "type": "skill.installations",
  "version": "1.0",
  "payload": {
    "installations": [
      {
        "installationId": "skpi-xxx",
        "skillId": "skp-xxx",
        "skillName": "my-skill",
        "skillVersion": "1.0.0",
        "status": "ready",
        "installedAt": "2026-01-19T00:00:00Z"
      }
    ],
    "total": 3,
    "page": 1,
    "pageSize": 20,
    "hasMore": false
  }
}

Sortie d'exécution

{
  "ok": true,
  "type": "skill.run",
  "version": "1.0",
  "payload": {
    "executionId": "skpe-xxx",
    "installationId": "skpi-xxx",
    "status": "completed",
    "workflowExecutions": [
      {
        "skillWorkflowId": "skw-xxx",
        "workflowId": "c-xxx",
        "status": "completed"
      }
    ],
    "result": {},
    "error": null
  }
}

Détails de la synchronisation des skills

refly skill sync va :

  • Valider les symlinks existants dans ~/.claude/skills/
  • Vérifier les symlinks cassés (pointant vers des répertoires inexistants)
  • Vérifier les répertoires orphelins (répertoires sans symlinks)
  • Avec --fix : recréer les symlinks cassés
  • Avec --prune : supprimer les symlinks cassés

Détails de la validation des skills

refly skill validate [path] va :

  • Valider le schéma du frontmatter et les champs obligatoires
  • Retourner les erreurs et avertissements par fichier
  • Fournir un résumé des fichiers valides/invalides

Exemple de sortie :

{
  "ok": true,
  "type": "skill.validate",
  "version": "1.0",
  "payload": {
    "path": "/path/to/skills",
    "summary": {
      "total": 3,
      "valid": 2,
      "invalid": 1,
      "warnings": 1
    }
  }
}

Gestion des erreurs

Code d'erreur Cause Solution
VALIDATION_ERROR Paramètres manquants ou format invalide Vérifier --name et d'autres paramètres obligatoires
ACCESS_DENIED Pas de permission pour la ressource Vérifier la connexion et la propriété de la ressource
INTERNAL_ERROR Erreur serveur Réessayer plus tard ou contacter le support

Remarque : Un JSON invalide dans --workflow-spec causera l'échec de la commande ; assurez-vous que le JSON est valide.

Skills similaires