Skip to content

DR-019 — OKF conformance posture: documented deliberate superset of upstream OKF (v0.2 target since S545)

The bundle is genuine OKF (Google knowledge-catalog SPEC.md v0.1) — 9/15 dimensions conformant. Keep the OKF name; do not strip the extensions. The two deliberate divergences (both spec-legal producer-side strictness) are:

  1. Closed, validator-enforced type taxonomy — per-bundle-class type sets since DR-079 (producer/validator.py:240-247: system_baseline = {schema, tool, api, navigation, playbook}; playbook stays a facet tag for client_business, validator.py:145-147). Closed and enforced, not one universal set.
  2. “Distil, never store” (BI-1) — evidence reports/s436-okf-adjudications/s436-okf-conformance.md:85,:117 (migrated S507 out of canonical’s gitignored scratch; lines shifted +4 by the added frontmatter — the S504 F1 lossy-provenance caveat no longer applies).

House rules: ISO-8601 for the timestamp field + log.md dates (UK format in body prose only); okf_version: "0.1" in the bundle-root index; a bundle CONFORMANCE.md documents the supersets.

Amended 2026-07-15 (type posture corrected; §7 + §9.1 divergences resolved) and 2026-07-26 (S498 audit: the second divergence had been mis-named as the canonical:// scheme — the entry’s own evidence rates that CONFORMANT). Full amendment archaeology: this file’s git history.

Two changes, both from DR-141:

  1. The version target moves to OKF v0.2. Upstream shipped v0.2 on 2026-07-24 (780fe9d30b, 3fcbb9f828); we are vendored at the 2026-06-12 v0.1 import (ee67a5ca27). The 2026-07-26 amendment above landed two days after v0.2 and did not notice it, so this entry has been asserting v0.1 by inertia — the one posture it forbids. Migration is scoped as its own task: generated: { by, at } supersedes timestamp, frontmatter sources[] supersedes the body # Citations trailer, and okf_version re-stamps. v0.2 §5.1 widens resource to admit “a population or scope descriptor [the consumer] cannot” follow~~, which legitimises the canonical:// scheme rather than threatening it~~. [Corrected 2026-08-09 (S546), measured against upstream 3fcbb9f: the widened field is sources[].resource — §5.1 is “Provenance: sources”, and §6.2 states “a sources[].resource may instead be a scope descriptor (§5.1), in which case it is not a path” — while the top-level resource is “carried forward unchanged” (§13.2). The scheme is therefore conformant only inside sources[]. Owner ruling F2-B (S546): the producer drops the top-level resource: emission for DB-backed concepts; the canonical:// pointer lives only in sources[]. The SPEC-bearing pin for the re-vendor is 3fcbb9f828 (2026-07-24); 780fe9d30b is PR #227’s migration commit, not the last commit touching okf/SPEC.md.]
  2. Divergence 1 — the closed, validator-enforced type taxonomy — is WITHDRAWN. It was ratified here as spec-legal producer-side strictness, and that reading of conformance was right; it answered the wrong question. OKF lists “defining a fixed taxonomy of concept types” under §1 Non-goals so a knowledge base can grow organically, and validator.py’s own comments record the closure being routed around three times with facet tags rather than reopened. Reasoning and the replacement enumeration model: DR-141.

Divergence 2 (“distil, never store”) and the house rules stand, except that the CONFORMANCE.md requirement is re-opened — the file documents supersets DR-141 removes.

Reconciled against the shipped v0.2 producer (S546, id-426 AC-2)

Section titled “Reconciled against the shipped v0.2 producer (S546, id-426 AC-2)”

The original house-rules line above is superseded in part by the landed implementation (canonical 27829392e): timestamp is replaced by generated: { by, at } (ISO-8601 holds for generated.at and log.md); the bundle-root index stamps okf_version: "0.2"; provenance is frontmatter sources[] plus [^id] footnotes (the # Citations trailer is gone, F1-A). The CONFORMANCE.md house rule remains re-opened with id-431. No other divergence between the S545 amendment and the shipped producer was found; the §5.1 correction above stands.