The contract: one source, generated artifacts, four consumers
Everything an agent needs to know about Airframe comes out of one bundle. Validate, Tower's forms, the agent tools and the docs all read it, so they can never disagree.
Principle honored
Single source of truth. Today the same rules live in values.yaml comments, the schema, Tower's TypeScript and the quickstarts, and they drift.
What changes
A CRD structural schema rejects unknown x- keys, so owners, risks, outputs and verify checks live in sidecar meta files.
Schema-first: values.yaml and the reference docs are generated from the schema, not the other way round.
The bundle is versioned with each Airframe tag, so a tool can ask "what was true at v0.3.90".
Check first
Unverified: that Helm ignores unknown x-hangar keywords inside values.schema.json. Check with helm lint before relying on it; if not, keep them in the sidecar too.