K9: Self-Validating Components

Configuration that knows what it is and proves what it does.

Kennel Pure data, safe anywhere
Yard Contracts and types
Hunt Execution, signed

What is K9?

K9 is a configuration format where every component carries a pedigree — a machine-readable declaration of its name, version, and security level. Unlike YAML, TOML, or JSON, K9 files are not passive blobs of data waiting for some external tool to interpret them. They declare what they are and what they are allowed to do.

At the simplest level, a .k9 file is structured data (like YAML). At the highest level, a .k9.ncl file is a Nickel program with formal contracts, type checking, and even executable recipes — but only when cryptographically signed. The security level is not an annotation bolted on after the fact; it is intrinsic to the file format.

Three Security Levels

K9 organises trust into three graduated levels:

Every Component Has a Pedigree

Every K9 file starts with the magic bytes K9! and carries a pedigree containing at minimum:

This pedigree is not metadata hidden in a comment. It is part of the format, validated by tooling, and queryable by machines.

Where K9 is Used

K9 is designed for anywhere configuration meets trust:

Tooling Ecosystem

K9 is not a specification without implementation. The tooling exists today:

> K9 closes the gap between "configuration as data" and "configuration as code" > by making the boundary explicit, graduated, and auditable.