Skip to content

Workflow

In Rover, a workflow defines a set of steps to complete a certain kind of task. They’re like templates that tell the agent how to work - for example, the Software Engineering / swe workflow guides the agent through software engineering tasks.

Each workflow is designed for a specific use case and guides AI coding agents to complete it autonomously. Currently, Rover includes the following workflows:

  • Software Engineering (swe): Guides the agent through software engineering tasks, such as writing code, fixing bugs, and implementing features.
  • Technical Writing (tech-writer): Helps the agent create technical documentation, such as developer documentation, end-user guides, and tutorials.

You can check the available workflows by running the following command:

Terminal window
rover workflows list
# Rover (v1.4.1) · /home/angel/Workspace/rover
# --------------------------------------------
# Name Description Steps Inputs
# ───────────────────────────────────────────────────────────────────────────────────────────────────
# swe Complete software engineering workflow with ada... 6 description
# tech-writer Write documentation and tutorials for your tech... 4 description, audience, format

To use a specific workflow, you can specify it when creating a new task:

Terminal window
rover task --workflow tech-writer

Workflows are defined using YAML files that specify:

  1. Inputs: The parameters required to start the workflow (e.g., description, audience, format)
  2. Outputs: The expected results of the workflow (e.g., documentation files)
  3. Configuration: Settings that control how the workflow operates (e.g., model settings, time limits)
  4. Steps: The sequence of actions the agent will take to complete the workflow (e.g., research, draft, review, finalize)

If you want to check a full workflow definition, checkout the Workflow File Reference.

When you create a task, Rover copies the selected workflow into the task folder. Then, the Rover agent manager that runs in the sandboxed environment reads the workflow file and executes each step sequentially.

This tool ensures that the coding agent follows the defined process, using the specified inputs and producing the expected outputs. It validates each step’s completion before moving to the next one.

To check it, you can retrieve the task logs and check the different steps:

Terminal window
rover logs <task-id>
# =======================================
# 🚀 Running Workflow
# =======================================
# Loading inputs from /inputs.json
#
# Agent Workflow
# ├── Name: tech-writer
# └── Description: Write documentation and tutorials for your technical projects
#
# User inputs
# ├── title=Document rover.json and settings.json configuration files
# ├── description=Create high-level documentation explaining the purpose ...
# ├── audience=end users (default)
# └── format=markdown (default)
#
# Steps
# ├── 0. Context Analysis
# ├── 1. Outline
# ├── 2. Draft
# └── 3. Review
#
# 🤖 Running Context Analysis > claude
# ✓ Step 'Context Analysis' completed successfully
#
# 📊 Step Results: Context Analysis
# ├── ID: context
# ├── Status: ✓ Success
# ├── Duration: 171.34s
# └── Outputs:
# ├── context_file: /output/context.md
# └── context_file_content: # Documentation Context...
#
# 🤖 Running Outline > claude
# ...

You can adapt workflows that are Rover built-in, or you can create workflows of your own. Custom workflows can either be saved to the global store, or local to current project. By default, workflows are added locally to the current project, but you can use the --global flag to refer to the global workflows when you are in a project.

Custom workflows are required to follow the Workflow YAML file format documented here.

If you want to start from an existing workflow, you can first dump its contents to a file in the filesystem:

Terminal window
rover workflows inspect swe --raw > improved-swe.yaml

Make the changes you want on the improved-swe.yaml, and import it.

Terminal window
rover workflows add --name improved-swe improved-swe.yaml

You can now refer to this workflow normally, for example:

Terminal window
rover task --workflow improved-swe 'Improve the installation script to check that the user has root permissions'

You can follow the Write workflows guide in order to create your own workflows that accomodate your custom use cases or needs.