atmos.yaml Gets a JSON Schema That Can't Go Stale
Editing atmos.yaml has always been a matter of trust. Misspell a key, indent a section one level too deep, or put a string where a map belongs, and nothing tells you — unknown keys are silently ignored, and you discover the mistake only when Atmos doesn't behave the way you expected. Stack manifests solved this with a published JSON Schema and editor auto-completion, but the CLI configuration itself — a surface that has grown far larger than stack manifests — had no schema at all. Now it does: a schema generated from the very code that reads the configuration, validated by default, published with every release, and wired into your editor with one comment line.
The Problem
Your atmos.yaml is the control plane for everything Atmos does — stacks, components, commands, auth, toolchains, integrations. It's also the file where mistakes hide best:
- A typo like
worfklows:is ignored without a warning, and the real setting silently keeps its default. - Nothing in your editor tells you what keys exist, what type they expect, or what they mean.
- Configuration is spread across
atmos.yaml,atmos.d/fragments, and profiles — partial files that no hand-written schema handled. - Hand-maintained schemas rot. Every release adds configuration options, and a schema updated by memory falls behind the moment someone forgets.
