---
type: Playbook
id: https://w3id.org/ktl/registrar/knowledge/playbooks/knowledge-sources
title: Knowledge Sources
resource: .
description: Map of the repository files and outside sources this bundle is derived from, which concepts each feeds, how a refresh re-checks each, which files are left out on purpose, and which have no concept yet.
generated:
  by: process:ktl-librarian
  at: "2026-10-27T01:34:19Z"
verified:
  - by: process:ktl-librarian
    at: "2026-10-27T01:14:26Z"
---

# Sources

Each row names the files a concept is derived from, the concepts they feed, and how a refresh re-checks them.

| Source | Feeds | Re-check by |
| --- | --- | --- |
| `README.md`, `docs/architecture.md`, `docs/for-the-curious.md` | `explanation/why-ktl-registrar.md`, `policies/no-telemetry.md` | re-read on any change to the README or the docs pages; the README links the docs pages on the website |
| `docs/using.md`, `src/main.ts` | `references/commands-and-settings.md`, `services/ktl-registrar-plugin.md` | compare the command table and the settings list with the ids in `src/main.ts` and the groups in `src/settings.ts` |
| `docs/install.md` | `playbooks/install-ktl-registrar.md` | re-read on any change to the page; compare the Obsidian version with `minAppVersion` in `manifest.json` |
| `src/validator.ts`, `src/report-view.ts`, `src/settings.ts`, `src/vocab.ts` | the four Service concepts | re-read each file; a new or removed rule group, settings group or relation field is a gap |
| `manifest.json`, `package.json` | plugin identity, `minAppVersion`, the npm scripts | compare with `playbooks/contributing.md`, `services/settings-tab.md` and `playbooks/install-ktl-registrar.md` |
| `CONTRIBUTING.md`, `scripts/smoke-test.ts`, `eslint.config.mts`, `.github/workflows/build.yml`, `.lokf/scripts/knowledge-sync.sh`, `.github/workflows/knowledge-sync.yaml` | `playbooks/contributing.md` | compare the checklist and the import-free module list with what the smoke test imports, `npm run check` with the steps `build.yml` runs, and what a pin move copies with the sync script's and the sync workflow's headers |
| `.github/workflows/semantic-release.yml`, `.github/workflows/release.yml`, `.releaserc.json` | `playbooks/releasing.md` | compare the jobs, permissions and triggers |
| `.github/workflows/lint-and-docs.yaml`, `.markdownlint-cli2.jsonc`, `.github/dependabot.yml` | `playbooks/quality-gates.md` | compare the job steps, the disabled rules, the ignored folders and the ecosystems |
| `.github/workflows/knowledge-registrar.yaml`, `.lokf/justfile`, `.lokf/curators/` | `playbooks/knowledge-registrar-gate.md` | compare the three jobs with the `ktl-sidecar` template at the pinned release |
| `.github/workflows/knowledge-librarian.yaml`, `.lokf/scripts/knowledge-librarian.sh` | `playbooks/scheduled-librarian.md` | compare the jobs and the wrapper with the template; `SECURITY.md` says the copy differs only in the pin |
| `website/README.md`, `website/site.config.mjs`, `.github/workflows/knowledge-website.yaml` | `playbooks/knowledge-website.md` | compare what each page is built from, the preview commands, the options, the triggers, the two jobs and the deploy switch |
| `SECURITY.md` | the gate, librarian, releasing and no-telemetry concepts | compare the surface table's rows and links |
| `AI_COVENANT.md`, `CODE_OF_CONDUCT.md` | the two policy concepts | diff against knowledge-trust-ladder's copies; the code of conduct is identical and the covenant is adapted |
| The OKF and LOKF specifications, the `lokf` toolkit, Obsidian's plugin guidelines | the four Reference concepts and the glossary | fetch the URL; for Obsidian's guidelines, read the Markdown in `obsidianmd/obsidian-developer-docs` |
| `.lokf/pyproject.toml`, `.lokf/justfile` | `references/lokf-toolkit.md` | compare the `lokf[build]>=` floor and the recipes |
| PyPI `lokf` | the `lokf[build]>=` floor in `.lokf/pyproject.toml` | `uvx --from pip pip index versions lokf` |

# Left out on purpose

- The other modules in `src/` implement features the Service concepts describe at command level, for example `propose.ts` behind *Promote body links*, `public-api.ts` behind the read-only `api`, and `scaffold-modal.ts` behind the header command's two-choice modal.

- `.assets/*.svg` holds the logo and the pictures in `docs/architecture.md`, which carry no claim of their own.

- Repository plumbing with no claim of its own: `community-plugin-entry.json`, `NOTICE`, `LICENSE`, `lychee.toml`, `.editorconfig`, `esbuild.config.mjs`, `tsconfig.json`, `version-bump.mjs`, `versions.json`, `obsidian.code-workspace`, `.github/ISSUE_TEMPLATE/`, `.github/pull_request_template.md`, `.github/scripts/changelog-release.mjs` (described in `playbooks/releasing.md`), `scripts/build-vocab.mjs`, `scripts/fixtures/`, `.gitignore`, `.npmrc`, `package-lock.json` and `styles.css`. `src/lokf-vocab.json` is generated by `npm run build-vocab`, which `playbooks/contributing.md` describes.

- The rest of `website/` (`astro.config.mjs`, `package.json`, `package-lock.json`, `tsconfig.json`, `NOTICE`, `.gitignore`, `scripts/` and `src/`), the site's build code and house style, which `website/README.md` describes and `playbooks/knowledge-website.md` covers.

- The sidecar's own tooling under `.lokf/` (`scripts/`, `m365/`, `README.md`, `queries.http`), which are copies of the `ktl-sidecar` templates.

- `CHANGELOG.md`, the release history, read when a concept needs a date.

# Gaps

- `.github/workflows/knowledge-release.yaml` has no concept. `SECURITY.md` lists it as the template's jobs, inert until dispatched or turned on by `KNOWLEDGE_RELEASE_ENABLED`, with `attach` the only job that can write.

- `llms.txt`, the agent context file, has no concept.

- `.github/workflows/knowledge-sync.yaml` and its pull request template, `.github/PULL_REQUEST_TEMPLATE/knowledge-sync.md`, have no concept of their own; `playbooks/contributing.md` says what a pin move copies. The workflow's header says it keeps the sidecar's copies and the skills pin at the newest release of Knowledge Trust Ladder each week, and opens one pull request with the `KNOWLEDGE_SYNC_TOKEN` secret. `SECURITY.md` now lists it in the surface table, alongside `knowledge-website.yaml`.
