Skip to main content
Workflows and stacks are the two building blocks you use to configure dotbot for a project. A workflow describes what dotbot does — a sequence of typed tasks wired together with dependencies, form configuration, and commit rules. A stack describes what technology your project uses — adding skills, verify scripts, and MCP tools relevant to a specific tech. You can install multiple workflows and multiple stacks in the same project and they all coexist independently.

What workflows are

A workflow is a named pipeline defined by two JSON files: workflow.json holds the pipeline (form, requirements, and tasks) and manifest.json holds the metadata used by dotbot list. dotbot ships with these built-in workflows: start-from-prompt is the default workflow recorded for a new project. Each workflow declares its name and version, a form configuration for the launch dialog, environment and tooling requires, and a tasks list.

Anatomy of a workflow.json

The start-from-prompt workflow shows the structure. Each task names a type, the prompt file or script it runs, its dependencies, and how its output is committed:
More complex workflows like start-from-jira also declare environment variables, MCP server dependencies, and CLI tool requirements under a requires block:

Task types

Every entry in tasks has a type field that selects the executor dotbot uses to run it. Executors are a plugin system indexed by task_type, so each type has its own contract.
The script, mcp, task_gen, and barrier types run deterministically without a provider session and skip verification hooks. They still run inside the task’s isolated git worktree, so their output is committed the same way as any other task.

What stacks are

A stack is a named extension that overlays technology-specific content on top of a workflow. Stacks can add:
  • Skills — reusable guidance injected into the agent prompt, for example how to write Entity Framework migrations
  • HooksStart-Dev.ps1, Stop-Dev.ps1, and numbered verify scripts
  • MCP tools — additional tools the MCP server discovers
  • Recipes — agent personas and prompts tailored to the technology
dotbot ships with three built-in stacks:

How stacks compose with extends

Stacks can declare an extends field to automatically pull in a parent stack. dotnet-blazor and dotnet-ef both extend dotnet:
When you install dotnet-blazor, dotbot resolves and applies the dotnet parent first. You do not need to list both.

Settings merge order

Each workflow and stack can ship its own settings/settings.default.json. These overlay through a deep merge, with later layers taking precedence:
Your workflow can override a default setting, and a stack can override both the default and the workflow setting. Project-level state in .bot/.control/settings.json wins last.
Run dotbot doctor to confirm the resolved settings for your project. It reports whether the merged configuration is valid and carries both the execution and analysis blocks.

Installing workflows and stacks

Use dotbot init with --workflow and --stack flags to install into a project:
Installed workflows are materialised under .bot/content/workflows/<name>/, and stacks under .bot/content/stacks/<name>/. You can add, remove, list, and run workflows independently:
You can also source workflows and stacks from enterprise registries. Use dotbot registry add to link a git-hosted or local registry, then list and update registered registries with dotbot registry list and dotbot registry update.