Workflows permitem que os usuários definam uma série de etapas para orientar o Cascade em um conjunto repetitivo de tarefas, como fazer o deploy de um serviço ou responder a comentários em PRs. Esses Workflows são salvos como arquivos Markdown, permitindo que usuários e suas equipes executem processos essenciais de forma fácil e repetível. Depois de salvos, os Workflows podem ser acionados no Cascade por meio de um comando com barra no formato /[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 fornecer 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 “Chamar /workflow-2” e “Chamar /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á até o 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: Em 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 seu workspace atual
  • .windsurf/workflows/ em qualquer subdiretório do seu 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 seu workspace atual, não necessariamente na raiz do Git. Cada arquivo de workflow é limitado a 12.000 caracteres.

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 sequência de etapas em uma ferramenta de linha de comando (CLI) específica.

Exemplos de Workflows

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

/address-pr-comments

Este é um Workflow que nossa equipe usa internamente para tratar comentários em PR:
1. Faça checkout da 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: "(index). 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 nenhuma alteração. Apenas me peça esclarecimentos ou que eu implemente eu mesmo.
 d. Se você achar que consegue fazer a alteração, faça-a ANTES de passar para o próximo comentário.

4. Depois que todos os comentários forem processados, resuma o que você fez 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 de 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 o arquivo ou antes de fazer commit para manter o estilo de 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 as verificações necessárias antes da implantação e as verificações após a implantação.

/security-scan

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