Let an assistant write it. We check its work.
Point your assistant at Dagweave over MCP and ask for a workflow. What comes back has been through the quality gates every workflow here passes, and what you review is a graph rather than ninety lines of YAML.
An LLM will write you Argo YAML. It won't tell you where it guessed.
A task that depends on a step whose name is spelled almost right. A template reference that resolves to nothing. A field the schema has never had. All of it looks right.
You find out at admission, or four minutes into a run on a real cluster, or in review when somebody happens to spot it.
A draft goes through the gates your own workflows go through
A manifest a model wrote seconds ago gets exactly the checks a workflow drawn on the canvas gets, before it's saved and long before it reaches a cluster.
- Template references that resolve to nothing, and DAG edges naming tasks that are not there.
- Fields the Argo Workflows schema has never had, wherever the model picked them up.
- A step compiled without a container image, which your cluster would take and then fail on with nothing useful to say.
- There's no easier path for a model. Its draft gets the same checks as yours.
error tasks[2].template no template named "load-warehouse"
error tasks[2].depends "transfrom" is not a task in this DAG
error tasks[2].retries not a field on a DAG task
warning parameters[1] "region" is declared and never usedIt gets told what's wrong, in terms it can act on
Handing a model the schema and hoping doesn't work. A short list of what's wrong, and where, does. It fixes those lines and checks again.
- Checking a draft stores nothing. It can check as often as it likes.
- The compiled result comes back with the faults, so it can see what its draft actually becomes.
- Saving is a separate ask, under a scope you granted on purpose.
valid true
kind CronWorkflow
graph extract -> transform -> load
retry load: 3 attempts, OnTransientErrorRead a graph, not a manifest you didn't write
The workflow opens on the same canvas as everything else. The shape is what you wanted to check, and the canvas is where the shape is.
- What lands in your repo is ordinary Argo Workflows YAML. Nothing in it says a model wrote it.
- It runs when you dispatch it, and not a moment before.
dag:
tasks:
- name: extract
template: extract-orders
- name: transform
template: transform-orders
depends: extract
- name: load
template: load-orders
depends: transformIt reaches exactly as far as the person holding the token
Writing is its own scope. A read token stays a read token.
- A model sees the workflows its token's owner sees, and no others.
- Checking a draft asks for the same read scope as listing them, and stores nothing.
- Starting a run needs its own scope, and every run records who started it.
- Everything an assistant reads or changes goes in the audit log, refusals included.
check a draft workflows:read nothing is stored
list workflows workflows:read what your token can already see
save a workflow workflows:write granted on purpose, audited
start a run runs:write audited, and its own scopeLet it draft. You still decide.
Dagweave is in early access. Leave an email and we will bring you on as we open it up.