ADR 0003: Workflow syntax

Status: accepted, 2026-10-06

Context

The site shows a workflow file, and the pitch is "deploys you can read" and "no copy-pasted YAML". What it shows is indentation-based key: value with aligned columns, a step header that puts the kind on the same line (build: oci.image), typed declarations (replicas: int = 2), references (build.digest), interpolation ({git.sha}), team handles (@platform), duration tuples (healthy, 5m), enum literals (low | medium | high) and small boolean expressions (risk is low ≥ 0.95 and plan.destroys == 0). It reads like YAML and is not YAML: build: oci.image followed by indented keys is not a YAML mapping.

The question (#4, blocking #22) is whether that is what we commit to, and two details have to be settled with it:

The front end already exists: ks-lang parses this syntax with a hand-written lossless tree, and docs/LANGUAGE.md carries the EBNF the parser was written from. The decision is therefore partly a ratification and partly a statement of what the syntax may never grow into.

Decision

Consequences