Les Workflows permettent aux utilisateurs de définir une série d’étapes pour guider Cascade dans l’exécution de tâches répétitives, comme le déploiement d’un service ou la réponse à des commentaires de PR. Ces Workflows sont enregistrés sous forme de fichiers Markdown, offrant aux utilisateurs et à leurs équipes un moyen simple et reproductible d’exécuter des processus clés. Une fois enregistrés, les Workflows peuvent être invoqués dans Cascade via une commande slash au format « /[name-of-workflow] ».

Fonctionnement

Les règles fournissent généralement aux grands modèles de langage des consignes en offrant un contexte persistant et réutilisable au niveau de l’invite. Les Workflows étendent ce concept en définissant une séquence structurée d’étapes ou d’invites au niveau de la trajectoire, guidant le modèle à travers une série de tâches ou d’actions interconnectées.
Pour exécuter un Workflow, les utilisateurs l’appellent simplement dans Cascade à l’aide de la commande /[workflow-name].
Vous pouvez appeler d’autres Workflows depuis un Workflow !

Par exemple, /workflow-1 peut inclure des instructions comme « Appeler /workflow-2 » et « Appeler /workflow-3 ».
Lors de l’appel, Cascade traite chaque étape définie dans le Workflow, séquentiellement, en exécutant les actions ou en générant les réponses spécifiées.

Comment créer un Workflow

Pour commencer avec les Workflows, cliquez sur l’icône Customizations dans le menu coulissant en haut à droite de Cascade, puis ouvrez le panneau Workflows. Vous pouvez ensuite cliquer sur le bouton + Workflow pour créer un nouveau Workflow. Les Workflows sont enregistrés sous forme de fichiers Markdown dans les répertoires .windsurf/workflows/ et contiennent un titre, une description et une série d’étapes avec des instructions spécifiques à suivre par Cascade.

Découverte des workflows

Windsurf découvre automatiquement des workflows à partir de plusieurs emplacements pour offrir une organisation flexible :
  • Workspace actuel et sous-répertoires : Tous les répertoires .windsurf/workflows/ dans votre workspace actuel et ses sous-répertoires
  • Structure du dépôt Git : Pour les dépôts Git, Windsurf recherche également jusqu’à la racine du dépôt afin de trouver des workflows dans les répertoires parents
  • Prise en charge de plusieurs workspaces : Lorsque plusieurs dossiers sont ouverts dans le même workspace, les workflows sont dédupliqués et affichés avec le chemin relatif le plus court

Emplacements de stockage des workflows

Les workflows peuvent être stockés dans l’un des emplacements suivants :
  • .windsurf/workflows/ dans le répertoire de votre workspace actuel
  • .windsurf/workflows/ dans n’importe quel sous-répertoire de votre workspace
  • .windsurf/workflows/ dans les répertoires parents jusqu’à la racine Git (pour les dépôts Git)
Lorsque vous créez un nouveau workflow, il est enregistré dans le répertoire .windsurf/workflows/ de votre workspace actuel, pas nécessairement à la racine Git. Les fichiers de workflow sont limités à 12 000 caractères chacun.

Générer un workflow avec Cascade

Vous pouvez aussi demander à Cascade de générer des workflows pour vous ! Cela fonctionne particulièrement bien pour les workflows qui comportent une série d’étapes dans un outil CLI donné.

Exemples de workflows

Il existe une myriade de cas d’usage pour les workflows, tels que :

/address-pr-comments

Voici un workflow que notre équipe utilise en interne pour traiter les commentaires de PR :
1. Récupérez la branche de la PR : `gh pr checkout [id]`

2. Récupérez les commentaires de la PR

 bash
 gh api --paginate repos/[owner]/[repo]/pulls/[id]/comments | jq '.[] | {user: .user.login, body, path, line, original_line, created_at, in_reply_to_id, pull_request_review_id, commit_id}'

3. Pour CHAQUE commentaire, procédez comme suit. N’oubliez pas de traiter un commentaire à la fois.
 a. Affichez : « (index). De [user] sur [file]:[lines] — [body] »
 b. Analysez le fichier et l’intervalle de lignes.
 c. Si vous ne comprenez pas le commentaire, ne modifiez rien. Demandez-moi simplement des précisions, ou de l’implémenter moi-même.
 d. Si vous pensez pouvoir faire la modification, effectuez-la AVANT de passer au commentaire suivant.

4. Une fois tous les commentaires traités, résumez ce que vous avez fait et indiquez ceux qui nécessitent l’attention de l’UTILISATEUR.

/git-workflows

Validez en utilisant des formats prédéfinis et créez des pull requests avec des titres et descriptions standardisés à l’aide des commandes CLI appropriées.

/dependency-management

Automatisez l’installation ou la mise à jour des dépendances du projet à partir d’un fichier de configuration (p. ex. requirements.txt, package.json).

/code-formatting

Exécutez automatiquement des formateurs de code (comme Prettier, Black) et des analyseurs (comme ESLint, Flake8) à l’enregistrement du fichier ou avant le commit afin de maintenir un style de code cohérent et de détecter les erreurs tôt.

/run-tests-and-fix

Exécutez ou ajoutez des tests unitaires ou de bout en bout et corrigez automatiquement les erreurs pour garantir la qualité du code avant de valider, fusionner ou déployer.

/deployment

Automatisez les étapes de déploiement de votre application vers différents environnements (développement, préproduction, production), y compris les vérifications nécessaires avant le déploiement et les validations après le déploiement.

/security-scan

Intégrez et déclenchez des analyses de vulnérabilités sur votre base de code dans le cadre du pipeline CI/CD ou à la demande.