# car-workflow
Declarative multi-stage workflow orchestration for [Common Agent Runtime](https://github.com/Parslee-ai/car).
## What it does
Composes `car-multi` agent coordination patterns and `car-engine` action proposals into a named, conditional, compensable stage graph.
## Key types
| `Workflow` | top-level definition: stages + conditional edges |
| `Stage` / `StageStep` | what each step does — pattern, proposal, sub-workflow |
| `Edge` | conditional transition between stages (reuses `car_ir::Precondition`) |
| `CompensationHandler` | saga-style rollback per stage |
| `WorkflowEngine` | executes the workflow graph |
| `verify_workflow` | static analysis before execution |
## Example (JSON definition)
```json
{
"id": "review-deploy",
"name": "Review and Deploy",
"start": "review",
"stages": [
{ "id": "review", "name": "Code Review",
"step": { "type": "pattern", ... } },
{ "id": "deploy", "name": "Deploy",
"step": { "type": "proposal", ... } }
],
"edges": [
{ "from": "review", "to": "deploy",
"conditions": [{"key": "stage.review.succeeded", "operator": "eq", "value": true}] }
]
}
```
## Where it fits
Surfaced via the WebSocket `workflow.run` and `workflow.verify` methods. Use `car-multi` directly for ad-hoc coordination patterns; reach for `car-workflow` when you want a named, persistable, compensable definition with conditional flow control.