Plan DAG
The plan is the compiled artifact produced by ciz plan. It is the boundary between planning and execution.
What the plan contains
A rendered plan includes:
- metadata such as name, namespace, timestamp, and checksum
- execution settings such as concurrency, fail-fast behavior, and state-file name
- concrete jobs with stable IDs like
web-app@production.deploy - ordered steps with
runoruseinstructions - fully resolved dependencies between jobs
Example structure
{
"apiVersion": "ciz.io/v1",
"kind": "Plan",
"metadata": {
"name": "microservices-deployment",
"checksum": "sha256-..."
},
"execution": {
"concurrency": 4,
"failFast": true,
"stateFile": ".ciz-state.json"
},
"jobs": [
{
"id": "web-app@production.deploy",
"runsOn": "ubuntu-22.04",
"dependsOn": ["common-services@production.deploy"],
"steps": [
{
"id": "deploy",
"phase": "main",
"run": "helm upgrade --install ..."
}
]
}
]
}
Why the plan is important
The plan is where all implicit behavior becomes explicit. That gives you a stable artifact to:
- review in pull requests
- diff between intent revisions
- archive as a deployment record
- execute through different backends without recompiling
Plan views during compilation
The plan command can render alternate views without changing the compiled output:
ciz plan --view dag
ciz plan --view dependencies
ciz plan --view component=web-app
Use those views for review and debugging when you need to understand the dependency graph before execution.
Read execution model next to see how plans are previewed and executed.