Open Knowledge CLI Documentation
Frontmatter5 fields
Trust
UnverifiedDefault
Status
StableDefault
type
Command Documentation
title
openknowledge validate
description
Validate a knowledge base against an Open Knowledge Format spec.
timestamp

openknowledge validate

Validate an OKF bundle. An error causes exit status 1. A warning does not cause a failure.

Usage

okn validate [key-or-path]
okn validate --format json Wiki
okn validate --format json --out report.json Wiki
okn validate --rule link-target=error Wiki
okn validate --quiet Wiki
OptionDefaultDescription
key-or-path.Registry key or bundle directory.
--spec <version>latestOKF spec version.
--format <format>texttext or json. --json is an alias.
--out <file>stdoutAtomically write a JSON report. Requires JSON output.
--rule <id=severity>config/defaultOverride a rule. Repeatable.
--quietoffPrint only errors.

Checks

RuleVersionsDefaultChecks
bundle-read0.1, 0.2errorThe target is a readable directory with no symlink escape.
utf-80.1, 0.2errorMarkdown files contain valid UTF-8.
frontmatter0.1, 0.2errorYAML frontmatter parses as one mapping.
concept-frontmatter0.1, 0.2errorConcept pages include frontmatter.
concept-type0.1, 0.2errorConcept pages define a non-empty type.
index-frontmatter0.1, 0.2errorNon-root indexes use only allowed publication metadata.
log-frontmatter0.1, 0.2errorlog.md has no concept frontmatter.
log-date0.1, 0.2errorLevel-two log headings use YYYY-MM-DD.
publish-metadata0.1, 0.2fixed errorPublication flags and targets use supported boolean values.
insight-contract0.1, 0.2fixed errorPrivate insight metadata, targets, provenance, and lifecycle are valid for the selected version.
rule-catalog0.1, 0.2errorCustom maintenance rules and enabled IDs are valid.
frontmatter-format0.1, 0.2warningParseable frontmatter follows clean formatting.
markdown-syntax0.1, 0.2warningLinks, code spans, tables, and fences look complete.
okf-version0.1, 0.2warningRoot okf_version matches the selected spec.
okf-0.2-metadata0.2warningOptional 0.2 metadata follows its defined shapes.
link-target0.1, 0.2warningLocal Markdown links resolve inside the bundle.

The scan includes .md and .markdown files. It skips .git. It classifies index.md and log.md as reserved files.

A symbolic link below the bundle root fails the scan. This rule also applies to links that have non-Markdown asset names.

Severity policy

Configure persistent overrides in .openknowledge.toml:

[validation.rules]
link-target = "error"
markdown-syntax = "off"

CLI --rule values have priority. Canonical severities are off, warn, and error. Every checker rule belongs to an explicit spec-version profile. Configuration can contain a configurable rule from any supported profile. Validation applies only rules from the selected profile and ignores known inactive rules. An explicit CLI override must belong to the selected profile. See .openknowledge.toml for accepted compatibility aliases and strict configuration behavior.

publish-metadata and insight-contract are mandatory checks. You cannot override them with --rule or configuration.

JSON report

JSON output uses schemaVersion: "1". It includes the root, spec version, active policy, check results, counts, and issues. Each issue can identify its file, line, rule, severity, and message. The validation.schema.json file defines the contract.

{
  "schemaVersion": "1",
  "root": "/work/project-memory",
  "specVersion": "0.2",
  "summary": {
    "status": "pass",
    "errorCount": 0,
    "warningCount": 0,
    "issueCount": 0
  },
  "issues": []
}

Validation is deterministic. Use okn prompt review rules for an advisory rule review. That review does not affect validation status.

Powered by OpenKnowledge.sh