Showcase
Each example shows real output produced by knowledge-lint itself, from files in the project repository. Input on the left, output on the right.
Passing knowledge base
examples/output/lint-knowledge-base.txtDetail: Passing knowledge base →# Categories of this sample knowledge base. A new category is a new entry
# here — no code change in knowledge-lint.
status_values: [current, deprecated]
active_status: current
categories:
decisions:
kind: knowledge_entry
type: decision
review_interval_days: 365
processes:
kind: knowledge_entry
type: process
review_interval_days: 180
glossary:
kind: knowledge_entry
type: glossary
review_interval_days: 365
secrets:
kind: sops_secret
assets:
kind: assetsChecking knowledge-base/secrets/example-credential.yaml Checking knowledge-base/processes/entry-review.md Checking knowledge-base/decisions/2026-01-vector-store.md Checking knowledge-base/glossary/rag.md Checking knowledge-base/glossary/chunking.md WARNING: last_reviewed is 469 days old (> 365), but the entry is marked 'current' Checking knowledge-base/_attachments.yml 3 of 4 knowledge entries are marked public. All checks passed (1 warning(s)).
Broken knowledge base
examples/output/lint-broken-knowledge-base.txtDetail: Broken knowledge base →# A knowledge base with deliberate mistakes, to show what knowledge-lint
# reports. It uses its own status vocabulary instead of the default.
status_values: [draft, stable, deprecated]
active_status: stable
categories:
decisions:
kind: knowledge_entry
type: decision
review_interval_days: 365
glossary:
kind: knowledge_entry
type: glossary
review_interval_days: 365
secrets:
kind: sops_secretChecking broken-knowledge-base/secrets/api-token.yaml ERROR: file in a sops_secret category has no `sops:` metadata field — not SOPS-encrypted? Checking broken-knowledge-base/decisions/2024-03-hosting.md WARNING: last_reviewed is 927 days old (> 365), but the entry is marked 'stable' ERROR: related link '../glossary/cdn.md' points to a file that doesn't exist Checking broken-knowledge-base/decisions/2026-02-backups.md ERROR: status 'current' is not one of the allowed values (draft, stable, deprecated) ERROR: type 'process' does not match category 'decisions' (expected: 'decision') Checking broken-knowledge-base/glossary/embedding.md WARNING: possible API key with prefix 'sk-' found — check whether this is a real secret ERROR: source is missing ERROR: last_reviewed '12.01.2026' is not a valid date (YYYY-MM-DD) Checking broken-knowledge-base/meetings/ ERROR: category 'meetings' is not declared in _types.yml Checking broken-knowledge-base/_attachments.yml WARNING: attachment 'contract-scan' has no description ERROR: attachment 'contract-scan': path './assets/contract-2026.pdf' does not exist ERROR: attachment 'contract-scan': referenced_by entry 'decisions/2026-03-hosting-contract.md' points to a file that doesn't exist 0 of 3 knowledge entries are marked public. 9 error(s), 3 warning(s) found.
Strip demo content
examples/output/clean-knowledge-base.txtDetail: Strip demo content →knowledge-lint clean knowledge-baseCleaned: knowledge-base/secrets/ Cleaned: knowledge-base/assets/ Cleaned: knowledge-base/decisions/ Cleaned: knowledge-base/glossary/ Cleaned: knowledge-base/processes/ Reset: knowledge-base/_attachments.yml Done. _template.md remains as the scaffold for new entries.