Conformance
July 31, 2026 · View on GitHub
OKF (§11) sets a deliberately low bar. A bundle conforms with OKF v0.2 if:
- Every non-reserved
.mdfile has parseable YAML frontmatter; - That frontmatter has a non-empty
type; and - Any reserved files present follow their structures (index §8, log §9).
That is the entire required producer obligation. type is the only always-required key.
Changed from v0.1. This section was §9 in v0.1; it is §11 in v0.2. The three hard requirements are unchanged, but v0.2 adds SHOULD-level rules for the optional provenance / trust / lifecycle (§5) and computation (§10) families, and expands the list of things consumers MUST NOT reject over.
When the optional families are present
When the trust, lifecycle, provenance, or computation families appear, producers SHOULD follow §5 through §10, and consumers:
- MUST treat a bare
verifiedmapping as a one-element list (§5.2). - MUST NOT reject a concept for missing any optional family (§5.3).
- SHOULD derive trust tiers and staleness only from the fields specified in the spec.
- SHOULD surface, not silently drop, a failing attestation (§10.5).
Trust tiers (§5.3)
Consumers derive an advisory trust tier from verified, lowest to highest:
- No
verifiedkey ⇒ unverified. verifiedby non-human:actors only ⇒ machine-confirmed.verifiedby ahuman:<id>actor ⇒ human-reviewed.
A concept with no trust frontmatter is still consumable. Trust tiers are advisory signals, not access control.
What consumers MUST NOT reject over
To keep OKF tolerant and forward-compatible, consumers MUST NOT reject a bundle for any of:
- missing optional frontmatter fields;
- unknown
typevalues; - unknown additional frontmatter keys (and SHOULD preserve them when round-tripping);
- broken links; or
- missing index files.
Checklist for this bundle
The lint operation and the repo's conformance check verify:
- every concept document has frontmatter with a non-empty
type; - reserved
index.md/log.mdcarry no frontmatter (except the root index'sokf_version); - the root index declares
okf_version: "0.1"(this bundle is authored in v0.1 while documenting v0.2); - log date headings use
YYYY-MM-DD.
Broken links are reported by lint as a health signal but, per §6 and §11, never affect conformance.