Skip to content

Releases

0.45.1

Changed

  • knowledge-apply.sh indents 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.sh lists 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.sh applies a set on a rewrite as it does on a patch. 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 members moves 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-run prints the patch even while a librarian pull request is open.
  • knowledge-apply.sh writes a log line once, however many operations give it. A patch can also carry one log line for every operation that gives none, so a change made to many concepts no longer leaves one identical bullet for each.
  • knowledge-apply.sh writes 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 and log.md.
  • The sidecar’s .lokf/.gitignore leaves 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.sh keeps 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.sh writes 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.sh ends 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.sh keeps a host’s own schema := 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.sh reports a sibling whose bundle fails lokf-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.yaml and domain.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 is docs/context-layer.md, and the first host is noelmcloughlin/ktl-federation.

Changed

  • docs/install.md: one gh skill install --all line with --agent, the GitHub CLI 2.90.0 floor, and when npx skills fails behind a proxy. The contract keeps every tracked SKILL.md under skills/ktl-*/, so --all installs 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/ktl rather than as Markdown files on GitHub.

Fixed

  • scripts/sync-sidecar.sh carries .lokf/justfile. It keeps the sibling’s first line, which names the host, so a recipe change such as the v0.38.0 schema variable 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 .md added and every link a full address, so llms.txt sends 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_TAG option, and to the release itself.
  • A ktl-website page and its retelling offer each other as reading levels. A PAGES entry’s retells names the page it retells, and in the bundle a concept with an audience field or an audience- tag retells the concept its derivedFrom names; both pages open with a Reading level line.

Changed

  • GitHub’s dark theme shows the -dark figures. Every <picture> dark source in the README and the docs pages names the -dark set, which the site already showed, so a figure is the same on GitHub and on the site. The sync no longer swaps a -dimmed source for its -dark neighbour; the -dimmed set 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_iri is https://w3id.org/ktl/knowledge/. It replaces the knowledge-trust-ladder.example placeholder, 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.sh sets 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_iri no 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. SCHEMA renders the pages gen-doc writes, found through a gen-doc recipe 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. BROWSE names 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 its plugins settings.

Changed

  • The knowledge website workflow also runs weekly, and on a change to a justfile, a pyproject.toml or a uv.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.md is 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 variable AGENT_PROMPT_FLAG names the flag, or arg for 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. LOGO now defaults to "auto", which takes a knowledge-trust-ladder-logo.svg the repository already has, or else the light and dark copies the template now carries. null still 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_bundle doorway once instead of narrating the link. No skill change.

Fixed

  • sync-sidecar.sh writes each sibling’s sync on a branch of its own. It starts sync-<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 on main or 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 four lokf export files 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 once KNOWLEDGE_WEBSITE_ENABLED is true. 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 variable KNOWLEDGE_WEBSITE_ENABLED to be true.

Fixed

  • A concept’s source link keeps its leading dot. A source such as .github/workflows/validate.yml linked github/... 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 to docs/install.md.
  • The retelling for readers aged 13 to 18 sits beside the page it retells. docs/architecture.en-simple.md retells docs/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.