Reference
OKF compatibility
Open Knowledge Format editions, document semantics, compatibility limits, and migration behavior in the current stable Superbee release.
Scope
Use this page to check which Open Knowledge Format behavior Superbee reads, authors, validates, and
preserves. It describes the current stable release against
OKF v0.2 at revision 4bc03b7.
OKF defines the portable Markdown and YAML format. Superbee adds authoring, querying, validation, concurrency, Kinds, recipes, and presentation. A valid OKF bundle does not require Superbee, and a Superbee extension remains an ordinary producer-defined frontmatter field unless this page says otherwise.
Edition support
| Bundle condition | Stable Superbee behavior |
|---|---|
| New bundle with no edition override | Authors okf_version: '0.2' in the root index.md. |
Explicit --okf-version 0.1 | Authors a legacy-compatible v0.1 bundle. Use this only for a consumer that requires v0.1. |
| Existing v0.1 bundle | Reads and mutates it without changing the declared edition. |
No root okf_version | Treats document writes and governed mutations as v0.1 compatibility behavior. |
| Declared v0.2 bundle | Reads and mutates with v0.2 document policy. |
| Another declared version | Attempts read and transport. Initialization and governed mutation refuse to claim or author an unsupported edition. |
The root declaration must be a non-empty YAML string. Use okf_version: '0.2'; an unquoted YAML
number is not recognized as the edition by the stable parser.
Initialization supports only 0.1 and 0.2. Reopening an existing bundle leaves its root
index.md unchanged. Changing that one file does not migrate the documents, Kinds, saved queries,
or View code within the bundle.
Bundle structure and reserved files
An OKF bundle is a directory tree. Every non-reserved .md file is a concept document. Its concept
ID is the bundle-relative path with the final .md removed. For example,
evidence/launch-probe.md has ID evidence/launch-probe.
Superbee recognizes the two OKF reserved filenames at every directory level:
| Filename | OKF role | Superbee treatment |
|---|---|---|
index.md | Optional directory listing; the root copy may declare okf_version. | Excluded from concept queries and concept writes. The root copy supplies the bundle edition. |
log.md | Optional chronological update log. | Excluded from concept queries and concept writes. |
Superbee separates reserved files from concept documents. The stable health report does not perform
a complete structural validation of every index.md or log.md body against the OKF specification.
OKF includes non-reserved Markdown beneath dot-prefixed files and directories. Superbee's
filesystem discovery deliberately skips every dot-prefixed path segment. Such concepts are absent
from list, query, graph projections, and status, even though another OKF consumer may include
them. Keep portable concepts on visible paths when Superbee must discover them.
Concept IDs entering the core must be canonical and bundle-relative. They use forward slashes and
reject absolute paths, . or .. segments, duplicate slashes, trailing slashes, and a non-final
path segment ending in .md. CLI entry points can accept a file-like spelling and normalize it
before the canonical identity reaches storage.
Concept documents
Every conformant concept document is UTF-8 Markdown with a YAML frontmatter block. OKF v0.2 always
requires a non-empty type; all other standard fields are optional.
Stable Superbee enforces a non-empty string type on writes. It tolerates unknown type values and
preserves producer-defined frontmatter keys. A missing or malformed optional OKF family does not
make an otherwise readable document disappear, although malformed YAML is reported and skipped by
whole-bundle queries such as status.
The Markdown body has no required OKF sections. A bundle-owned Kind may impose additional fields, enumerated values, headings, or relationship expectations for documents of one type. Those Kind rules are Superbee conventions layered on the portable document.
Standard v0.2 metadata
| Field family | OKF v0.2 meaning | Stable Superbee behavior |
|---|---|---|
sources | Materials from which the concept derives. | Preserved as frontmatter, including unknown nested keys and date-only values. Superbee does not compute a credibility score. |
generated | Actor and meaningful-change time for the current content. | Optional. A mutation preserves by; a meaningful content or provenance change advances at. A verification-only change does not advance it. |
verified | One or more independent verification events. | Preserved across a mutation when the candidate omits it. Stable Superbee does not currently expose an OKF trust-tier projection. |
status | draft, stable, or deprecated; absence means stable in OKF. | Preserved as the standard lifecycle field. Superbee does not insert stable when the field is absent. |
stale_after | Absolute instant on or after which the concept is stale. | Preserved. superbee status includes it in the freshness sweep. |
When generated is newly supplied through the governed mutation path, generated.by must use
human:<id>, process:<id>, or <producer>/<version>. On document creation, a supplied
generated.at must be a string accepted by JavaScript Date.parse. This check is looser than OKF's
requirement for an explicit UTC offset. Existing-document mutation advances or preserves the clock
instead of separately validating a candidate spelling. Use the official timestamp grammar when
authoring portable metadata. Imported metadata is consumed permissively: unknown keys and unusual
legacy actor spellings remain available instead of being silently discarded.
Superbee records its advisory mutation attribution separately. In v0.2, --actor can persist
superbee_updated_by; it does not replace the provenance actor in generated.by.
Superbee preserves a bare verified mapping as supplied. Code that derives the OKF trust tier must
apply the specification's rule that a bare mapping is equivalent to a one-element list.
Links and relationships
OKF relationships are standard Markdown links in the body. Superbee resolves both supported forms:
[Root-relative release evidence](/sources/current-release.md)
[Relative release evidence](../sources/current-release.md)The stored link is directed from the current document to the target concept. Superbee derives backlinks from those bodies and does not store a second edge database. Links to missing concepts remain valid unresolved relationships, consistent with OKF's allowance for not-yet-written knowledge.
External URLs, mailto: links, in-page anchors, non-Markdown targets, image links, and links to
reserved index.md or log.md files do not become concept edges. Link text carries the
relationship meaning; Kinds may add a typed relationship vocabulary without changing the stored
Markdown form.
The derived edge and backlink graph recognizes inline [text](href) body links whose href contains
no whitespace. Reference-style Markdown links and path-valued frontmatter such as
sources[].resource, computation, executor.resource, and attester.resource remain preserved
data but do not become graph edges. The graph is therefore a bounded Superbee projection rather
than a complete projection of every OKF relationship-bearing value.
Validation boundaries
superbee status is a read-only bundle health report. It reports malformed YAML, Kind conformance,
unresolved links, freshness, graph expectations, View registration problems, and relevant legacy
findings. Findings do not make the command fail after the analysis completes.
The stable release is a permissive OKF consumer. It does not claim a complete schema validator for
every optional sources, verified, lifecycle, or attested-computation field. Use the official OKF
specification when producing those families, and preserve unknown fields when integrating another
producer's bundle.
Attested Computation fields are parsed, preserved, queried, and transported as producer frontmatter. Stable Superbee does not execute computations, run attesters, validate receipts, or derive attestation verdicts.
Superbee's authoring paths add stricter rules where they own a mutation:
generic writes require a non-empty
type;a Kind-aware
newoperation validates the declared Kind strictly;generic writes can warn or use
--strictwhen a Kind governs the type;compare-and-swap versions protect a write from replacing a newer document; and
unsupported authoring editions are rejected before a new bundle is created.
Normalization and byte behavior
Superbee reads local document bytes as UTF-8, parses YAML frontmatter, and keeps YAML date and
date-time scalars as strings so a date-only value such as 2026-07-27 does not become a midnight
timestamp. The legacy top-level timestamp field is normalized to an ISO 8601 string when the YAML
parser identifies it as a timestamp.
A document mutation serializes the parsed frontmatter and Markdown body into Superbee's canonical form. Unknown values remain semantically present, but YAML comments, quoting choices, spacing, key order, and other source formatting are not a byte-preservation promise. Read-only query and transport probes do not rewrite the source bundle.
The core document store does not declare an OKF document-size maximum in the stable release. Bounded presentation channels have separate limits:
| Surface | Stable limit or behavior | Complete-content path |
|---|---|---|
Default superbee doc read <id> receipt | Body preview is limited to 1,000 characters and reports truncation. | superbee doc read <id> --out <file> |
| Shared Markdown renderer | Parses at most 262,144 body characters, renders at most 20,000 nodes, and limits nesting depth to 40. | Use the raw document channel when the complete body is required. |
Local doc read --out | Copies the source document's bytes. | Already complete. |
Remote doc read --out | Reconstructs canonical Markdown from parsed frontmatter and body because the stable wire protocol has no raw-document endpoint. | Semantically complete, without a byte-identical promise for hand-formatted YAML. |
These presentation limits do not shorten the stored document. A rendered view that reports
bounded: true is incomplete and should not be used as a full-fidelity export.
v0.1 compatibility and migration
OKF v0.2 supersedes the v0.1 timestamp clock with generated.at and the body # Citations list
with sources. Both v0.2 families are optional, so imported v0.1 content remains readable.
Superbee's v0.1 write policy supplies a top-level timestamp when it is missing. The v0.2 policy
does not invent timestamp, sources, or verified.
The largest field collision is workflow progress. OKF v0.2 owns top-level status for the
draft | stable | deprecated lifecycle. Superbee exposes the logical field name
progress_status for a Kind that declares the edition-specific storage coordinate:
| Edition | Physical workflow field | Agent-facing logical field |
|---|---|---|
| v0.1 or no declaration | status | progress_status |
| v0.2 | superbee_progress_status | progress_status |
The alias is declaration-driven. It applies only when the document's governing Kind declares the
physical workflow field, and it never reclassifies a v0.2 lifecycle status value as workflow
progress.
Before changing a v0.1 bundle's root edition:
Commit or back up the bundle.
Run
superbee statusand inspectokf_upgrade.Move Kind-governed workflow fields from physical
statustosuperbee_progress_status, while continuing to use the logicalprogress_statusinterface.Audit ungoverned documents, saved queries, and View code separately; the current finding cannot infer their intended use of
status.Decide whether legacy
timestampand# Citationscontent should be expressed throughgeneratedandsources.Change the root
okf_versiononly after all dependent surfaces agree.Run
superbee statusagain and exercise the workflows and Views that depend on the migrated fields.
Stable Superbee does not perform this multi-document edition migration automatically. Continue to use a v0.1 bundle when the audit is incomplete.
Related
Evidence
Official OKF v0.2 specification at
4bc03b7Stable bundle engine
Stable frontmatter parser
Stable v0.2 mutation policy
Stable concept identity and reserved-file rules
Stable link resolver
v0.2 read compatibility tests
v0.2 write contract tests
Workflow progress compatibility tests
Stable status implementation
Stable document-read implementation