$ okfctl bundle init mykb
Initialized OKF bundle in mykb
$ okfctl node new concepts/tannin.md --type Reference --title "Tannin" --bundle mykb
Created mykb/concepts/tannin.md
$ okfctl node list --bundle mykb
concepts/tannin.md Reference
$ okfctl index build mykb
Wrote 2 index.md file(s) under mykb
$ okfctl validate mykb
OK: bundle conforms to the OKF spec floor
# a node whose frontmatter lost its required `type`
$ okfctl validate mykb
FAIL concepts/aging.md: missing or empty required field: type
okfctl: 1 conformance finding(s)
$ echo $?
1
# the floor is non-negotiable — it fails with or without --strict.
# git drift and the opt-in template overlay stay advisory unless you ask:
$ okfctl validate --templates --strict ./bundles/knowledge
$ okfctl lint mykb
missing-xref: concepts/oak.md mentions "tannin" but does not link to concepts/tannin.md
1 lint finding(s)
$ echo $?
0 # advisory by default
$ okfctl lint --strict mykb
missing-xref: concepts/oak.md mentions "tannin" but does not link to concepts/tannin.md
1 lint finding(s)
okfctl: 1 lint finding(s)
$ echo $?
1 # the same finding, now a CI gate
# the first gate that touches provenance, not just format:
# grade-missing · grade-vocabulary · uncited · citation-unresolved
$ okfctl eval transparency mykb
uncited: concepts/aging.md carries no citations of any kind
grade-missing: concepts/aging.md has neither an epistemic nor an authority grade
$ echo $?
0 # advisory by default, like lint
$ okfctl eval transparency --strict mykb
okfctl: 2 transparency finding(s)
$ echo $?
1 # the CI gate
# Transparency is the one TACA dimension a no-model tool can gate.
# Accuracy, Calibration and Alignment are SCAFFOLDED for a human
# or an out-of-band judge — okfctl never computes a truth verdict.
$ okfctl eval sample --changed-since origin/main mykb
# a real corpus, not a fixture
$ okfctl bundle info bundles/knowledge
nodes: hundreds
okf_version: 0.2
$ okfctl validate bundles/knowledge
OK: bundle conforms to the OKF spec floor
$ okfctl analyze bundles/knowledge | head -6
# OKF Corpus Analysis
Thousands of internal link(s). Stale threshold: 180d.
## Coverage gaps — dangling forward-links (research opportunities)
✓ none