You declare your categories, entry types and status words in _types.yml. knowledge-lint lint reads it, goes through every folder of the knowledge directory and checks it by the kind you declared: Markdown entries, encrypted secrets or plain assets. A folder that is not declared is an error. Last, it checks the attachment list.
Each problem is printed under the file it belongs to. Errors fail the run with exit code 1, so a CI job stops; warnings, such as an entry that is due for review, are reported without failing it.