Workflows permitem definir uma série de etapas para orientar o Cascade em um conjunto recorrente de tarefas, como implantar um serviço ou responder a comentários em PRs. Esses Workflows são salvos como arquivos Markdown, oferecendo a usuários e equipes uma forma fácil e reproduzível de executar processos essenciais. Depois de salvos, os Workflows podem ser acionados no Cascade por meio de um comando com a sintaxe /[name-of-workflow]

Como funciona

As regras geralmente orientam os modelos de linguagem ao fornecer um contexto persistente e reutilizável no nível do prompt. Os Workflows ampliam esse conceito ao definir uma sequência estruturada de etapas ou prompts no nível da trajetória, guiando o modelo por uma série de tarefas ou ações interconectadas.
Para executar um Workflow, basta acioná-lo no Cascade usando o comando /[workflow-name].
Você pode chamar outros Workflows de dentro de um Workflow!

Por exemplo, /workflow-1 pode incluir instruções como “Chame /workflow-2” e “Chame /workflow-3”.
Ao ser acionado, o Cascade processa sequencialmente cada etapa definida no Workflow, executando ações ou gerando respostas conforme especificado.

Como criar um Workflow

Para começar a usar Workflows, clique no ícone Customizations no menu deslizante no canto superior direito do Cascade e, em seguida, vá ao painel Workflows. Lá, você pode clicar no botão + Workflow para criar um novo Workflow. Os Workflows são salvos como arquivos Markdown dentro dos diretórios .windsurf/workflows/ e incluem um título, uma descrição e uma série de etapas com instruções específicas para o Cascade executar.

Descoberta de Workflows

O Windsurf descobre automaticamente workflows em vários locais para oferecer uma organização flexível:
  • Workspace atual e subdiretórios: Todos os diretórios .windsurf/workflows/ dentro do seu workspace atual e de seus subdiretórios
  • Estrutura do repositório Git: Para repositórios Git, o Windsurf também pesquisa até o diretório raiz do Git para encontrar workflows em diretórios pai
  • Suporte a múltiplos workspaces: Quando várias pastas estão abertas no mesmo workspace, os workflows são desduplicados e exibidos com o caminho relativo mais curto

Locais de armazenamento de workflows

Workflows podem ser armazenados em qualquer um destes locais:
  • .windsurf/workflows/ no diretório do workspace atual
  • .windsurf/workflows/ em qualquer subdiretório do workspace
  • .windsurf/workflows/ em diretórios superiores até a raiz do Git (para repositórios Git)
Ao criar um novo workflow, ele será salvo no diretório .windsurf/workflows/ do workspace atual, não necessariamente na raiz do Git. Os arquivos de workflow têm limite de 12.000 caracteres cada.

Gerar um Workflow com o Cascade

Você também pode pedir ao Cascade para gerar Workflows para você! Isso funciona especialmente bem para Workflows que envolvem uma série de etapas em uma ferramenta de CLI específica.

Exemplos de Workflows

Há uma infinidade de casos de uso para Workflows, como:

/address-pr-comments

Este é um Workflow que nossa equipe usa internamente para tratar comentários em PRs:
1. Faça checkout do branch do PR: `gh pr checkout [id]`

2. Obtenha os comentários do 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. PARA CADA comentário, faça o seguinte. Lembre-se de tratar um comentário por vez.
 a. Imprima o seguinte: "(índice). De [user] em [file]:[lines] — [body]"
 b. Analise o arquivo e o intervalo de linhas.
 c. Se você não entender o comentário, não faça alterações. Apenas me peça esclarecimentos ou para eu mesmo implementar.
 d. Se achar que consegue fazer a alteração, faça-a ANTES de passar para o próximo comentário.

4. Após processar todos os comentários, resuma o que foi feito e quais comentários precisam da atenção do USUÁRIO.

/git-workflows

Faça commits usando formatos predefinidos e crie pull requests com títulos e descrições padronizados usando os comandos de CLI apropriados.

/dependency-management

Automatize a instalação ou atualização das dependências do projeto com base em um arquivo de configuração (por exemplo, requirements.txt, package.json).

/code-formatting

Execute automaticamente formatadores de código (como Prettier, Black) e linters (como ESLint, Flake8) ao salvar arquivos ou antes de fazer commit para manter o estilo do código e detectar erros antecipadamente.

/run-tests-and-fix

Execute ou adicione testes unitários ou de ponta a ponta e corrija os erros automaticamente para garantir a qualidade do código antes de fazer commit, mesclar ou implantar.

/deployment

Automatize as etapas para implantar sua aplicação em vários ambientes (desenvolvimento, homologação, produção), incluindo quaisquer verificações necessárias antes da implantação ou validações após a implantação.

/security-scan

Integre e acione varreduras de vulnerabilidade de segurança na sua base de código como parte do pipeline de CI/CD ou sob demanda.