Releases
0.45.1
Changed
knowledge-apply.shindents a list under its key. PyYAML put the dashes at the key’s own column, which yamllint’s default rules reject, so each concept the pen writes now takes the indented form.
Fixed
knowledge-apply.shlists a concept with no description by its link alone. Its index bullets ended in a bare “ - “, the separator for a description that was not there.knowledge-apply.shapplies aseton arewriteas it does on apatch. It used to drop the key without a word while the dry run passed, and now every operation refuses a key it does not take, naming it.knowledge-federate.py membersmoves a member’s text with its version. The patch now moves the old tag, zip name and release day in the description and body too, calls a member “confirmed” only when a person confirmed it as it stands, and--dry-runprints the patch even while a librarian pull request is open.knowledge-apply.shwrites a log line once, however many operations give it. A patch can also carry onelogline for every operation that gives none, so a change made to many concepts no longer leaves one identical bullet for each.knowledge-apply.shwrites a bare web address in a log line or an open question as an autolink. ai-linkmo’s markdownlint refused the bare addresses a question carried into the concept andlog.md.- The sidecar’s
.lokf/.gitignoreleaves out.cache/. A domain host’s federation build keeps the members’ release zips there, and the first domain host committed four of them.
0.45.0
Changed
- A skill page’s word budget no longer counts table pipes or separator rows. A table is the densest way to state a vocabulary, and a plain word count taxed it hardest. The budgets are unchanged.
- A confirmed concept that a question put back to draft reads “reopened”, not “still a draft”.
knowledge-report.shkeeps the rung a person’s confirmation earned and adds a flag naming the day, the asker and how many questions wait; the health line counts those under Reopened. The curator’s and docent’s tables, the SPARQL page, the ladder figure and the website’s card say the same, and the card now shows the open questions beside the label.
Fixed
-
scripts/sync-sidecar.shwrites the sibling’s changelog entry in full. It names the copies the sync changed, or says the pin moved alone. It used to print a placeholder, which two plugins released unfilled. -
The repository contract skips a sibling’s website build output. Its copies of the curator’s pages quote two links inside folded YAML strings, which the check read as links ending in a backslash and failed on.
-
scripts/sync-sidecar.shends the entry with “No plugin change” only for an Obsidian plugin. ai-linkmo and gist are not plugins, so their entries end with what changed. -
scripts/sync-sidecar.shkeeps a host’s ownschema :=line in its justfile. It copied the template’s empty one, so a domain host’s members were validated on LOKF core and failed. -
scripts/sync-sidecar.shreports a sibling whose bundle failslokf-check-refs. It printed lokf’s verdict and still passed, because only the last check’s status counted.
0.44.0
Added
- Federation templates for a domain host. ktl-sidecar gains
knowledge-federate.py,knowledge-federation.yamlanddomain.yaml, which build one workspace from the released bundles a domain names, with one named graph per bundle and a gate on links no member owns. The design isdocs/context-layer.md, and the first host isnoelmcloughlin/ktl-federation.
Changed
docs/install.md: onegh skill install --allline with--agent, the GitHub CLI 2.90.0 floor, and whennpx skillsfails behind a proxy. The contract keeps every trackedSKILL.mdunderskills/ktl-*/, so--allinstalls the ktl- skills only.
Fixed
- ktl-website’s link check reads an address in a code span without its closing backtick. A concept that named the site’s address in backticks failed the build with a broken link in
llms.txt.
0.43.1
Changed
- The README links the website’s pages. The quick start, the architecture page and the shorter version open on
w3id.org/ktlrather than as Markdown files on GitHub.
Fixed
scripts/sync-sidecar.shcarries.lokf/justfile. It keeps the sibling’s first line, which names the host, so a recipe change such as the v0.38.0schemavariable reaches every sibling; check 11 holds this repository’s copy to the template the same way.
0.43.0
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Added
- A ktl-website site serves the whole bundle as
llms-full.txt. Each concept’s text follows its trust label, its type, its addresses and its sources, so a model that reads the file at once can tell a draft from a confirmed concept. The site’s link check reads the text files too. - A ktl-website site offers the bundle log as an Atom feed,
knowledge/log.xml. Each day of the log is an entry, titled and categorised by the kinds of change it holds and dated from git, so a reader can follow the bundle without watching the repository. - A ktl-website concept page links the concept’s history and names its licence. The record links every commit to the concept’s file up to the built one, and gives the bundle’s licence, or the concept’s own, which the page head names too. The overview page, the feed and the two text files name the bundle’s licence by its short name.
- A ktl-website concept page opens the knowledge graph on the concept. The record and the neighbourhood map link
/graph/?concept=<id>, which selects the concept and frames its neighbours, and the address follows the selected node, so a view can be shared. - A ktl-website page previews a concept link. A link to a concept shows the concept’s title, type, trust label and definition while the pointer or the keyboard focus rests on it, from
knowledge/previews.json, which the sync writes; Escape dismisses it. - A ktl-website site serves each docs page as Markdown beside it. The home page and the extra pages too, at the page’s path with
.mdadded and every link a full address, sollms.txtsends a model to the words rather than the HTML. - A ktl-website release page links the repository, the docs and the bundle as they stood at the release. The links go to the release’s tag on GitHub, named by the new
RELEASE_TAGoption, and to the release itself. - A ktl-website page and its retelling offer each other as reading levels. A
PAGESentry’sretellsnames the page it retells, and in the bundle a concept with anaudiencefield or anaudience-tag retells the concept itsderivedFromnames; both pages open with a Reading level line.
Changed
- GitHub’s dark theme shows the
-darkfigures. Every<picture>dark source in the README and the docs pages names the-darkset, which the site already showed, so a figure is the same on GitHub and on the site. The sync no longer swaps a-dimmedsource for its-darkneighbour; the-dimmedset stays in.assets/, unreferenced.
Fixed
- The ktl-website graph explorer fits the graph to its stage once the layout settles. The re-fit waited for an event that had already fired, so it never ran.
0.42.0
Changed
- The README, the architecture page and the plugin’s homepage link to the site at
https://w3id.org/ktl/. The persistent address redirects to the GitHub Pages site. - The README lists Exhibitions, the sites that show a repository’s collection. It names this repository’s own bundle and AI-LinkMO’s.
- The bundle’s
base_iriishttps://w3id.org/ktl/knowledge/. It replaces theknowledge-trust-ladder.exampleplaceholder, so every concept’s IRI resolves to its page, its JSON-LD or its Markdown file. - A ktl-website data page opens Datasette Lite in a new tab. The site stays open while Datasette Lite downloads Datasette and the database.
Fixed
sync-sidecar.shsets its next steps apart. A blank line now comes before the changelog entry to add and before the commit commands, so each step reads on its own.- A move of the bundle’s
base_irino longer reads as an edit of every confirmed concept. Conventions rule 13 compares each id and relation target by its path under the base each commit held, so the migration ktl-librarian’s Rule 2 describes keeps every confirmation. - A release’s changelog lists each entry once. A pull request stacked on another still carries the other’s entries under Unreleased, and the promotion no longer folds them into the pending section a second time.
0.41.0
Added
- A ktl-website site shows a LinkML schema’s pages under a Schema topic.
SCHEMArenders the pagesgen-docwrites, found through agen-docrecipe by default and built by the sync when missing. A mermaid diagram on any page is drawn in the browser. - A ktl-website site can serve the data as SQLite databases to open in Datasette Lite.
BROWSEnames their folder and the command that builds it, and stays off until set, since the databases go on the public site. Their Datasette metadata is published without itspluginssettings.
Changed
- The knowledge website workflow also runs weekly, and on a change to a justfile, a
pyproject.tomlor auv.lock. A schema or data change it cannot see, and a promoted changelog, reach the site within a week.
0.40.0
Added
- A ktl-website home page offers an Architecture button when the docs have an architecture page. The default buttons are now Browse the bundle, Architecture when
docs/architecture.mdis on the site, Bundle health and Knowledge graph. - The scheduled librarian takes an agent that wants its prompt somewhere other than after
-p. The repository variableAGENT_PROMPT_FLAGnames the flag, orargfor an agent such as Codex CLI that takes the prompt as its last argument. The sidecar’s automation page now states the five conditions any agent must meet, beside the Copilot CLI and Claude Code commands it vouches for.
Changed
- A ktl-website site shows the Knowledge Trust Ladder logo unless its configuration names another.
LOGOnow defaults to"auto", which takes aknowledge-trust-ladder-logo.svgthe repository already has, or else the light and dark copies the template now carries.nullstill shows the title as text. - The README and docs pages lose their dead sentences. The install, Obsidian, Copilot and releasing pages say the step and stop, and the Obsidian page names the
knowledge_bundledoorway once instead of narrating the link. No skill change.
Fixed
sync-sidecar.shwrites each sibling’s sync on a branch of its own. It startssync-<tag>from the sibling’s default branch as origin has it, skips a sibling with uncommitted changes, and names the files to stage, so the diff is never left onmainor inside a feature branch.- The scheduled librarian writes its patch with the agent’s own file tool. The wrapper’s prompt now says so. An agent that tried a shell write first was denied and gave up without writing the patch. The documented Claude Code command drops
Write(.lokf/patch.yaml), which Claude Code ignores;Edit(.lokf/patch.yaml)already covers the Write tool.
0.39.0
Added
- ktl-website lays a website down for any repository’s knowledge bundle. The skill copies the site from its templates into
website/: a page per concept with its trust label, a health page, the knowledge graph, search by trust and type, and the fourlokf exportfiles served beside the pages, with the README, the docs and the changelog when the repository has them. Its workflow,knowledge-website.yaml, builds the site on every pull request and publishes to GitHub Pages onceKNOWLEDGE_WEBSITE_ENABLEDistrue. This repository’s own site is the template’s first copy, which the contract holds byte-identical, and a smoke test builds the template on the sidecar’s dummy bundle.
Changed
- The website reads the repository’s values and options from
website/site.config.mjs. The README, the docs pages, the changelog, the figures and the logo are each optional there, so the same site builds for any repository with a knowledge bundle, and this repository’s site is unchanged. - This repository’s website workflow,
website.yml, is a copy of the skill’s template. Its deploy now waits for the repository variableKNOWLEDGE_WEBSITE_ENABLEDto betrue.
Fixed
- A concept’s source link keeps its leading dot. A source such as
.github/workflows/validate.ymllinkedgithub/...on GitHub, which is no file there;.and./still read as the whole repository.
0.38.2
Changed
- The README is a doorway, in the style of LinkML’s. It keeps the poem and the opening paragraph, names LOKF and LinkML as inspirations beside the poem, and links the website, the quick start and the retelling for readers aged 13 to 18. The library, museum and roles story moved to
docs/architecture.md, which leads the website’s Architecture group, and the quick start moved todocs/install.md. - The retelling for readers aged 13 to 18 sits beside the page it retells.
docs/architecture.en-simple.mdretellsdocs/architecture.md, which links it, and the website still serves it at/simple/. - The website’s home page keeps four buttons: Browse the bundle, Architecture, Glossary and Quick start. The site’s header already links GitHub, and the context layer is in the Architecture group, which opens with the architecture page as its overview.
Fixed
- The pen adds its edited-since note to a log line once. It now looks for the note whatever its case, so a log line that already carries it gets no second copy.