OKF Integrity Audit — knowledge/ against @dossier/okf parse() (2026-06-14)
okf-integrity-audit-2026-06-14
OKF Integrity Audit — 2026-06-14
Type note.
referenceis a custom concept type (see TypeScript Toolchain Competitive Landscape — June 2026 Scan / Dossier — The Knowledge Model (v0)): a dated, provenance-bearing snapshot. This one records what our own KB looks like under our own parser — it is not a decision. The judgment it surfaces (the reversibility schema gap) is recorded separately as Reconcile the decision reversibility field — free-text prose vs. the @dossier/okf enum.
What was run
The keystone parser — @dossier/okf parse() (Extraction runtime architecture — the moat) — was run over all of knowledge/**/*.md. This is dogfooding the platform's schema-as-code on Dossier's own institutional memory.
Result (reproduced, not asserted)
- Before this session: 11 of 21 atoms passed
parse(). - After the two YAML fixes below: 12 pass; the remaining 9 fail schema validation (not YAML parsing).
Failures and disposition
1. YAML-malformed — 2 atoms — FIXED this session
Both broke YAML parsing itself (failed js-yaml in Astro and the eemeli yaml lib in @dossier/okf).
- Add a Forward Deployed Engineer function (subagent) + the first slash command (/fde) — the
descriptionfield. - TypeScript Toolchain Competitive Landscape — June 2026 Scan — the
sourcefield.
Cause: an unquoted plain YAML scalar containing ": " (colon-space), which is invalid per the YAML spec.
Fix: single-quoted the affected scalar values — meaning-preserving, no content changed. Both now pass okf.parse.
Worth capturing: these two records were committed without passing the keystone parser. The site renderer (
js-yaml) and the platform parser (eemeliyaml) both rejected them, so this was a real conformance gap in committed memory, not a tooling quirk. Suggests a pre-commit / CI parse gate overknowledge/**is warranted (not yet decided — flagged).
2. Schema-validation failures — 9 atoms — NOT fixed (needs adjudication)
The reversibility field carries free text (e.g. two-way door (a subagent + a slash command are easily changed or removed; …)), but DecisionSchema in packages/okf/src/schema.ts expects the enum one-way door | two-way door | one-way | two-way. YAML parses fine; Zod validation rejects the prose.
Affected (verified by grep over knowledge/decisions/): 0004, 0008, 0009, 0011, 0012, 0013, 0014, 0015, 0016. (The bare-enum records — 0001, 0002, 0003, 0005, 0006, 0007, 0010 — pass.)
Impact: the docs site renders all of these fine (the YAML is valid); this is an OKF-conformance gap, not a site blocker.
Disposition: deliberately NOT rewritten. This is a knowledge-model call — relax the schema to allow a parenthetical note, OR split into a reversibility enum + a separate rationale field, OR normalize the data. Owned as the open question Reconcile the decision reversibility field — free-text prose vs. the @dossier/okf enum for the knowledge-architect to adjudicate. The records were left intact so no tacit rationale is lost before the call is made.
Provenance
Run, failure causes, and the affected-record list were reproduced and inspected this session, not inferred — hence confidence: verified. Snapshot dated 2026-06-14; re-run after Reconcile the decision reversibility field — free-text prose vs. the @dossier/okf enum is resolved.