Examples: ktl-docent answering questions
Eight questions asked against this repository’s own .lokf/knowledge/ bundle, following skills/ktl-docent/SKILL.md exactly. That means: read the bundle first, widen along typed relations before searching the repo, and verify exact values at the source before stating them. State each concept’s trust label, and fall back, out loud, only when the bundle has no answer. The answers are captured output.
Trust labels here mean what skills/ktl-curator/references/trust-fields.md defines. At the time these were run, no concept in this bundle had been confirmed by a person yet, since ktl-curator had not been run. So every answer below is at most “checked by automation only” or “nobody has checked this yet”, which examples 2 and 6 themselves demonstrate. The answers are what the docent said then. Some of the pages it checked have been rewritten since (CONTRIBUTING.md is now a shorter checklist), so take the sources named as current, not the values quoted.
1. “What is LOKF?”
Section titled “1. “What is LOKF?””LOKF (Linked Open Knowledge Format) is a semantic profile of OKF in which every field, type, and relationship is bound to a public vocabulary, so the same Markdown expands losslessly to JSON-LD and RDF (bundle:
glossary/lokf.md, checked by automation only).
One concept fully answers the question, so the answer skips the full footer per the skill’s own rule for that case.
2. “What does OKF require of a concept file?”
Section titled “2. “What does OKF require of a concept file?””OKF (Open Knowledge Format) requires only that a concept file’s path serve as its ID and that its YAML frontmatter carry a
typefield - everything else is optional. A consumer must never reject a bundle for missing optional fields, unknown types, unknown keys, or broken cross-links.
From the bundle:- OKF (glossary/okf.md) - checked by automation only- OKF specification (v0.2) (references/okf-specification.md) - nobody has checked this yetTwo related concepts, two different labels. The glossary term was re-verified against its internal resource file this session; the Reference concept’s resource is an external URL that was not re-fetched, so it carries no verified event yet.
3. “I have a repo with no .lokf/ yet - which skill do I run first?”
Section titled “3. “I have a repo with no .lokf/ yet - which skill do I run first?””Run
ktl-sidecarfirst. It’s the one-shot bootstrap that creates the.lokf/sidecar - tooling, docs, and a dummy skeleton - from bundled templates, then hands off toktl-librarianto fill it with real knowledge.
From the bundle:- ktl-sidecar skill (playbooks/ktl-sidecar-skill.md) - checked by automation only4. “How do ktl-librarian and ktl-curator relate?”
Section titled “4. “How do ktl-librarian and ktl-curator relate?””
ktl-curatordependsOnktl-librarian: the curator’s job - recording a person’s verdicts - only makes sense once the librarian has derived concepts to review. The relationship also marks the boundary between them: the librarian deals in facts about the repository and never vouches for them; the curator deals in judgments a person made and never derives facts itself.
From the bundle:- ktl-librarian skill (playbooks/ktl-librarian-skill.md) - checked by automation only- ktl-curator skill (playbooks/ktl-curator-skill.md) - checked by automation only (dependsOn -> ktl-librarian-skill)5. “How do I contribute a change to these skills?”
Section titled “5. “How do I contribute a change to these skills?””There’s no build step - the skills are Markdown, YAML, and one shell script. Clone the repo and run
bash scripts/validate-repository.sh. Before opening a pull request, run five checks: the repository-contract script,gh skill publish --dry-run(if the GitHub CLI is installed),shellcheckon any changed script,actionlinton any changed workflow (including the templates underskills/ktl-sidecar/templates/github/), and aCHANGELOG.mdentry under[Unreleased]if the change alters behavior.
From the bundle:- Contributing (playbooks/contributing.md) - checked by automation onlyChecked at source: CONTRIBUTING.md's "Before opening a pull request" section - all five items match exactly what the bundle claims.6. “What GitHub CLI version do I need for gh skill?”
Section titled “6. “What GitHub CLI version do I need for gh skill?””The bundle’s Reference concept says
gh skillwas added in GitHub CLI v2.90.0, andREADME.mdindependently states the same figure. I opened the concept’s actual source to confirm the number directly, but the manual page atcli.github.com/manual/gh_skill_installdocuments current behavior, not a changelog - it doesn’t state a version number itself, so I can’t independently confirm v2.90.0 from that specific page. Both places in this repository agree, but I’d check the GitHub CLI release notes before relying on the exact number.
From the bundle:- gh skill (GitHub CLI) (references/gh-skill-cli.md) - nobody has checked this yetChecked at source: cli.github.com/manual/gh_skill_install - does not state a version numberGap recorded: none - the bundle's claim isn't contradicted, just unconfirmable at this pageThis is “verify exact values at the source” when the source lacks the value to confirm: the answer says so, rather than repeating the bundle’s number as fact.
7. “What’s the roadmap for a fifth skill after ktl-docent?”
Section titled “7. “What’s the roadmap for a fifth skill after ktl-docent?””I don’t see anything in the bundle about a planned fifth skill - the Explanation concept on why there are four roles explains the current design, not a roadmap, and I searched the rest of the repository too. There’s no mention of a fifth skill anywhere. This looks like a genuine gap rather than something I missed.
From the bundle: (none relevant)Gap recorded: Miss - "What's the roadmap for a fifth skill after ktl-docent?" - no answer found anywhere in the bundle or repository.The docent asked once this session whether to record gaps in .lokf/feedback.md; the answer was yes, so this one was written there: see
.lokf/feedback.md. ktl-librarian’s next run will either turn it into a concept or note that no roadmap exists.
Since this capture the repository has gained a fifth skill, ktl-prose. The answer above stays as it was given, and the librarian’s next refresh records the new skill.
8. “Who do I contact to report a security issue, and is that policy confirmed by a person?”
Section titled “8. “Who do I contact to report a security issue, and is that policy confirmed by a person?””Use GitHub’s private vulnerability reporting (linked from
SECURITY.md) rather than a public issue or a direct email - that’s the documented channel, not the maintainer’s personal contact. The bundle records the maintainer as Noel McLoughlin (the bundle’spublisher). As for whether the security policy itself has been confirmed by a person: no - it’s still a draft, checked by automation only. Nobody has reviewed it by hand yet.
From the bundle:- Security policy (policies/security.md) - still a draft; checked by automation onlyChecked at source: SECURITY.md's "Reporting a vulnerability" section - matches exactlyWhich concept answers each question
Section titled “Which concept answers each question”The link checker follows each link below on every build, so a concept that is renamed or deleted fails the build with its question beside it. The librarian never derives from this page, since playbooks/knowledge-sources.md keeps docs/examples/ out of its sources, so the questions stay held out from the bundle they test.
| Question | Concept that answers it today |
|---|---|
| 1. What is LOKF? | glossary/lokf.md |
| 2. What does OKF require of a concept file? | glossary/okf.md, references/okf-specification.md |
| 3. Which skill do I run first? | playbooks/ktl-sidecar-skill.md |
| 4. How do ktl-librarian and ktl-curator relate? | playbooks/ktl-librarian-skill.md, playbooks/ktl-curator-skill.md |
| 5. How do I contribute a change? | playbooks/contributing.md |
| 6. What GitHub CLI version do I need? | references/gh-skill-cli.md |
| 7. What is the roadmap for a fifth skill? | playbooks/ktl-prose-skill.md, explanation/why-four-roles.md; a miss when captured, and the skill exists now |
| 8. Who do I contact about a security issue? | policies/security.md |
tests/docent-holdout.yaml holds the same pairs as data, tests/test_docent_holdout.py checks on every pull request that each concept still exists, and just docent-eval runs the docent on them weekly through claude plugin eval, from the cases under evals/.
Try these yourself once ktl-docent is installed, or ask your own: that is the point of the skill.