ciz documentation
Compile policy-aware intent into execution DAGs you can review, diff, and run anywhere.
ciz separates desired state, composition logic, and runtime execution. Platform teams define intent once,
validate it against schemas, bind it to reusable compositions, and materialize a deterministic plan that can run on a
local shell, inside Docker, or through a GitHub Actions-compatible backend.
Intent stays declarative
Keep policy, environment defaults, and component subscriptions in intent files instead of leaking execution details into app repos.
Compositions stay reusable
Each composition pairs a schema with one or more job definitions, so platform teams can evolve execution contracts centrally.
Plans stay deterministic
The generated plan is an immutable DAG with explicit jobs, steps, dependencies, retries, and state-file metadata.
Runtimes stay swappable
Compile once, then preview or execute through the local shell, a Docker runner, or GitHub Actions compatibility mode.
What ciz is for
Use ciz when you need a planner that can scale from a single repository to a platform estate without collapsing intent, validation, and execution into one format.
- Define desired state in
intent.yamlplus discoveredcomponent.yamlfiles. - Validate platform contracts through JSON schema.
- Bind component types to reusable job registries under a compositions directory.
- Render a reviewable
plan.jsonbefore anything executes. - Run the plan in dry-run or execute mode with explicit backend selection.
Mental model
intent.yaml + component.yaml + compositions/
↓
load, normalize, validate
↓
expand environment × component matrix
↓
bind jobs and resolve dependencies
↓
render immutable plan.json
↓
dry-run or execute with a runner
Intent and components
Intent declares environments, group-level policy, discovery roots, inline components, and change-scoping inputs. Component manifests declare type, inputs, labels, overrides, and dependencies.
Compositions and schemas
Each composition directory contains a schema for validation and a job registry for runtime behavior. That keeps platform logic versioned and reusable.
Plan DAG
The plan records explicit jobs, step order, phase boundaries, dependencies, and runtime hints. It is the artifact you diff, archive, and execute.
Typical workflow
./ciz validate \
--intent examples/intent.yaml \
--config-dir assets/config/compositions
./ciz plan \
--intent examples/intent.yaml \
--config-dir assets/config/compositions \
--output /tmp/ciz-plan.json
./ciz run --plan /tmp/ciz-plan.json
The default run mode is a dry-run, so teams can inspect the resolved jobs and steps before enabling --execute.
How to read these docs
Getting started
Install the CLI, compile the example intent, and inspect the generated plan before executing anything.
Concepts and architecture
Understand the separation between intent, compositions, plans, and runners before authoring your own platform contracts.
CLI and reference
Use the command reference, schema reference, and environment variable matrix when integrating ciz into CI or platform automation.
Next steps
- Follow the installation guide.
- Run the repository-backed quick start.
- Read intent model and plan DAG before writing new compositions.