knowledge-lintv0.1.0

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: assets
Checking 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)).
  • lint
  • warning
  • sops

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_secret
Checking 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.
  • lint
  • errors
  • status vocabulary

Strip demo content

examples/output/clean-knowledge-base.txtDetail: Strip demo content
knowledge-lint clean knowledge-base
Cleaned: 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.
  • clean