Workflows enable users to define a series of steps to guide Cascade through a repetitive set of tasks, such as deploying a service or responding to PR comments.
These Workflows are saved as markdown files, allowing users and their teams an easy repeatable way to run key processes.
Once saved, Workflows can be invoked in Cascade via a slash command with the format of /[name-of-workflow]
Rules generally provide large language models with guidance by providing persistent, reusable context at the prompt level.
Workflows extend this concept by providing a structured sequence of steps or prompts at the trajectory level, guiding the model through a series of interconnected tasks or actions.
To execute a Workflow, users simply invoke it in Cascade using the /[workflow-name]
command.
Upon invocation, Cascade sequentially processes each step defined in the Workflow, performing actions or generating responses as specified.
To get started with Workflows, click on the Customizations
icon in the top right slider menu in Cascade, then navigate to the Workflows
panel. Here, you can click on the + Workflow
button to create a new Workflow.
Workflows are saved as markdown files within the repository root of .windsurf/workflows/
and contains a title, description, and a series of steps with specific instructions for Cascade to follow.
Workflow files are limited to 12000 characters each.
You can also ask Cascade to generate Workflows for you! This works particularly well for Workflows involving a series of steps in a particular CLI tool.
There are a myriad of use cases for Workflows, such as:
This is a Workflow our team uses internally to address PR comments:
Commit using predefined formats and create a pull requests with standardized title and descriptions using the appropriate CLI commands.
Automate the installation or updating of project dependencies based on a configuration file (e.g., requirements.txt, package.json).
Automatically run code formatters (like Prettier, Black) and linters (like ESLint, Flake8) on file save or before committing to maintain code style and catch errors early.
Run or add unit or end-to-end tests and fix the errors automatically to ensure code quality before committing, merging, or deploying.
Automate the steps to deploy your application to various environments (development, staging, production), including any necessary pre-deployment checks or post-deployment verifications.
Integrate and trigger security vulnerability scans on your codebase as part of the CI/CD pipeline or on demand.