Okf lint
Validate an Open Knowledge Format (OKF) knowledge base (a wiki/ bundle of Markdown + YAML frontmatter) for spec conformance and house rules. Use when the user wants to check, validate, or lint their wiki / knowledge base, or after editing KB pages. Triggers: "lint my wiki", "validate the knowledge base", "check the OKF bundle", "is my wiki conformant", "run the okf linter". Reports errors (must fix) and warnings (review), with a non-zero exit on failure.From its SKILL.md
npx -y skills add thattimc/skills --skill okf-lintAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `python3 tools/okf_lint.py` and 2 more.
SKILL.md
2.2 KB, 490 tokens by cl100k_base, as published. Nobody here has run it
Lint an OKF knowledge base
Validate a wiki/ OKF bundle. A copy of the validator ships with this skill at
scripts/okf_lint.py; if the target repo already has tools/okf_lint.py, prefer that one
(it's the repo's pinned copy).
Run it
# In the KB repo (bundle defaults to ./wiki):
python3 tools/okf_lint.py # repo's copy, if present
# or, standalone, using this skill's bundled copy:
python3 "<this skill dir>/scripts/okf_lint.py" --bundle <path-to>/wiki
Flags: --bundle <dir> (default wiki), --quiet (summary only), --strict (warnings fail
too — good for CI). Exit code is non-zero on failure, so it can gate commits/CI.
pip install pyyaml gives maximum parsing fidelity; without it a built-in fallback parser is
used (results are kept identical between the two).
Interpreting output
RESULT: PASS, 0 errors → OKF-conformant and house-rule-clean.- Errors (must fix): missing/empty
type(the one OKF-required field), missingtitle/description/timestamp(house rule),tagsas a comma-string instead of a list, a reserved file (index.md/log.md) carrying frontmatter (rootindex.mdmay carry onlyokf_version). - Warnings (review, usually fix): broken links, orphan pages, non-ISO timestamps,
[[wikilinks]], leading-slash links, non-canonical frontmatter key order, odd or non-lowercase slugs, aSourcemissing itsresource. Broken links only warn because OKF tolerates not-yet-written targets.
Make it automatic (suggest to the user)
Wire it into a git pre-commit hook so bad edits never land:
# .git/hooks/pre-commit
#!/bin/sh
python3 tools/okf_lint.py --quiet || { echo "okf_lint failed"; exit 1; }
Or run --strict in CI.
What ships with it: 2 files
14.2 KB alongside SKILL.md, 1 of them executable
agents/
- openai.yaml110 B
scripts/
- okf_lint.pyruns14.1 KB
Gives 0 of the 12 instructions most quality gates skills give in 490 tokens
Counted across 1,524 of the 2,830 authors here whose files we hold, read 2026-09-06
- Read full output and check exit codein 45 of 1524, across 40 files
- Verify output confirms the claimin 44 of 1524, across 39 files
- Identify the command that proves the claimin 43 of 1524, across 39 files
- Execute the full verification commandin 36 of 1524, across 30 files
- Produce a verification reportin 34 of 1524, across 18 files
- Review git diff changesin 30 of 1524, across 16 files
- Fix build failures immediatelyin 29 of 1524, across 9 files
- Group findings by severityin 28 of 1524
- State claim only with evidencein 27 of 1524, across 22 files
- Verify regression tests with red-green cyclein 26 of 1524, across 22 files
- Run the full test suitein 26 of 1524, across 25 files
- Run test suite with coveragein 25 of 1524, across 10 files
Said here and by no other author read
- Run the validator script on the knowledge base
- Prefer the repository's local validator copy
- Install pyyaml for better parsing fidelity
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.