Skip to main content

Compiler pipeline

ciz follows a deterministic compiler pipeline from desired state to executable plan.

Stages

StageWhat happens
LoadParse intent, component manifests, and composition assets
NormalizeCanonicalize component and environment fields
ValidateEnforce schema constraints for each component type
ExpandMaterialize environment × component instances
PlanBind compositions to jobs and resolve dependency edges
DAG checksDetect cycles and compute execution order
RenderMaterialize the final JSON or YAML plan

Why the pipeline is explicit

This separation gives you clear failure boundaries:

  • schema errors fail during validation
  • dependency errors fail during planning or DAG checks
  • runtime issues fail only after a valid plan exists

That structure also makes the planner easier to test and reason about in CI.

Commands and stages

  • validate focuses on load, normalize, and validate
  • debug exposes internal views of planning stages
  • plan executes the full compile pipeline and writes the artifact
  • run operates only on the compiled plan

Read execution runtime for what happens after the plan is rendered.