Skip to content

Releases

0.25.0

Changed

  • The release workflow attaches the bundle as a zip file. knowledge-<tag>-<repository>.zip with its .sha256 replaces the tarball, since every operating system opens a zip. It stays reproducible across time zones and umasks, and stores links as links. Layout test 5 runs the pack.

0.24.0

Added

  • knowledge-release.yaml, a third sidecar workflow. It attaches .lokf/knowledge to a GitHub release as a reproducible archive with a checksum, after the registrar’s checks pass, and attests it on a public repository. It skips an unchanged bundle unless force is set, and runs by hand or, with KNOWLEDGE_RELEASE_ENABLED, on each release. publish.yml dispatches it here.
  • The librarian template has a slot for the agent’s credential. AGENT_API_KEY_ENV names the variable the agent reads. The credential is the AGENT_API_KEY secret or, with AGENT_USE_JOB_TOKEN, the job’s own token for Copilot CLI. The wrapper exports it under that name only and refuses a name that gh, git or the runner also read. Layout test 1c exercises it.

Fixed

  • The librarian validates relation targets before it opens a pull request. Its validate step now runs lokf validate --check-refs, as the registrar gate does, because the gate never fires on the librarian’s own pull request.
  • The sidecar README’s layout tree names everything Step 5 lays down. It stopped at justfile and feedback.md; scripts/, queries.http and curators/ were missing.

0.23.1

Fixed

  • The librarian template no longer installs the pinned skill in noelmcloughlin/knowledge-trust-ladder. The install step put a copy in .agents/skills/, which the wrapper searches before skills/, so scheduled runs used that old release instead of the source. The step checks the repository name, not a file a host could commit. This repository’s workflow now matches the template apart from its skills pin, and check 11 enforces it.
  • The release commit moves the skills pin in the template only. GITHUB_TOKEN may not push a change under .github/workflows/, so moving it in this repository’s workflow as well made the 0.23.1 release fail.
  • The preflight no longer reports a different skills pin as drift. A host moves TRUST_LADDER_SKILLS_REF on its own schedule, so its librarian workflow is compared with the template’s apart from that one value.

0.23.0

Added

  • knowledge-feedback.sh, a sixth sidecar script. It files a reader’s Miss or Disagreement in .lokf/feedback.md under today’s UTC date, newest first, and prints only a kind, a date and a count. The preflight names a sidecar that predates it; check 12a exercises it.

Changed

  • ktl-docent records a gap by running that script and never reads feedback.md. A host on an older sidecar runs the ktl-sidecar repair; until then the preflight says so and the hand-written format stands.
  • The README, docs pages, skill introductions and workflow comments are restyled for the reader: shorter sentences, steps before rationale, plain statements. The critics page is arranged by criticism with a verdict table and sources by DOI, and the host-by-host layouts live once in docs/obsidian.md.

Fixed

  • The librarian template pins a tag that carries the skill. TRUST_LADDER_SKILLS_REF read v0.21.0, where the skills are still lokf-*, so the install step’s skills/ktl-librarian was not there and every scheduled run on a scaffolded host failed at it. The pin moves to v0.22.0, and check 15 now reads the pinned tag for that path.

Security

  • Reader feedback no longer reaches the docent’s context. Keeping feedback.md newest first made an entry a read, an edit and a write back, so outsider-written text entered the session, guarded by prose alone (Snyk W011). The script does the insertion instead; ktl-librarian is the only skill that still reads an entry.

0.22.0

Added

  • A dark counterpart for all seven diagrams, *-dark.svg beside each original. Same geometry and wording; only the palette differs, re-toned role for role from the light one.
  • A dimmed counterpart too, *-dimmed.svg: the same geometry on warm grey paper rather than a dark one.
  • The markdown picks by theme. Every diagram is a <picture> with a prefers-color-scheme: dark source over the existing file, so the light original stays the fallback and its path is unchanged.

Changed

  • The skills take the ktl- prefix: ktl-curator, ktl-docent, ktl-librarian and ktl-sidecar, formerly lokf-curator, lokf-docent, lokf-librarian and lokf-sidecar. The Obsidian plugins are KTL Registrar and KTL Curator (obsidian-ktl-registrar, obsidian-ktl-curator).
  • A host upgrading from 0.21.0 reinstalls the skills under the new names, removes the lokf-* copies, rewrites its bundle’s process:lokf-librarian and process:lokf-curator actors to the ktl- names, and moves TRUST_LADDER_SKILLS_REF to the first release that carries them.
  • The dark-mode source is the dimmed set. Every prefers-color-scheme: dark source now points at *-dimmed.svg; the *-dark.svg files stay in .assets/ but nothing references them.

Fixed

  • A dark copy carries no stale content credential. The originals embed a C2PA manifest that signs their own bytes; recolouring changes those, so the copies ship without one rather than with a signature that cannot verify.
  • The dimmed ink follows the dimmed paper. The light diagrams sit right on 4.5:1, so darkening only the backgrounds would have dropped every faint label under it.
  • Two labels that never met 4.5:1 now do, in the three-lines and plugin-card diagrams - the darker ink reaches them as well.

0.21.0

Added

  • Skill descriptions end in a Keywords: list. Skills catalogs have no tag field: gh skill search matches name and description, and skills.sh matches file text. OKF, Open Knowledge Format, knowledge graph, provenance and trust ladder now find these skills. Check 3c holds the list, and the spec’s 1024 characters.
  • A Claude Code plugin manifest. .claude-plugin/ offers the four skills as one plugin, knowledge-trust-ladder, with a keywords array for plugin catalogs. Nothing under skills/ changes.

Fixed

  • The librarian’s publish job accepts a concept named outside ASCII. It listed the patch’s paths with git’s default quoting, so such a path arrived C-quoted and was refused as outside the bundle. It now lists with core.quotePath off, as the provenance gates do; the layout tests prove both outcomes.
  • The skills pin moves with each release. semantic-release.yml sets TRUST_LADDER_SKILLS_REF to the newest tag when it promotes the changelog, so check 15 no longer fails main one release later.
  • The docent treats entries already in .lokf/feedback.md as untrusted, the guard the librarian and the curator already carry for that file.

0.20.0

Changed

  • The relation audit uses the toolkit’s own flag. just lokf-check-refs ran a hand-written SPARQL query; both justfiles and both registrar workflows now call lokf validate --check-refs.
  • An external source or definedBy is no longer a dangling target. Both slots are documented as taking an off-site URL; the query reported them as missing concepts.
  • The predicate list cannot go stale again. --check-refs reads the relation slots from the schema, so reified relations and a domain schema’s own slots are covered too.
  • The registrar gate validates once. --check-refs rides on the existing validate step, replacing a second lokf validate run through uvx --from rust-just just.
  • A domain schema passes --schema to lokf-check-refs too. The librarian’s recipe said that audit was unaffected by one, which stopped being true when it moved onto lokf validate.

Fixed

  • The librarian template pins v0.19.7, the release it ships in. It pinned v0.19.6 because v0.20.0’s tag did not exist while that release was being published; a host scaffolded now installs the current librarian.

0.19.7

Fixed

  • The librarian template pins v0.19.6, the release it ships in. It pinned v0.19.5 because v0.19.6’s tag did not exist while that release was being published; a host scaffolded now installs the current librarian.

0.19.6

Added

  • A logo mark, .assets/knowledge-trust-ladder-logo.svg: a ladder rising out of an open book, its top rung the check mark, the rungs grey then amber then the curator’s blue. Shared byte-for-byte with both plugin repositories, and the mark to use as the repository avatar.
  • Every diagram carries the mark and the wordmark, from one shared definition. The social-preview card’s title is the wordmark and a tagline, not the repository slug.
  • docs/install.md: the gh skill commands, the per-skill prerequisites and the pinning rule, moved out of the README.
  • The README states the runtime claim. OKF’s fourth goal asks for frontmatter that makes a corpus trustable “without prescribing any runtime”; this is such a runtime.
  • The README names its order of work: specification first, schema first, interoperability first - nothing here invents a field, a format or a validator.
  • The README names the context layer, and the question that layer comes back to - who is responsible for the quality of this context - as the one the trust ladder answers.
  • The README claims the domain schemas OKF puts out of scope, in scope here by construction, and points at the curator’s domain-schemas.md for the flag and the recipe.

Changed

  • The README is a front door, not the manual. 1,792 words to 1,864: much the same length, a different shape. Install commands out to docs/install.md; the closing sections collapsed into one Read on table.
  • The opening says “collection”, not “library”, which this audience reads as a code library. A collection is what a librarian, a registrar, a curator and a docent all serve.
  • The opening names the whole system - four skills, the registrar automation, the lokf toolkit underneath - and the two Obsidian plugins as optional.
  • The sidecar bootstraps a fresh knowledge_bundle in the README’s words, the visible doorway, with .lokf/ named as what lies behind it.
  • This repository is now knowledge-trust-ladder, formerly lokf-agent-skills. Upstream LOKF ships its own bundled skills, and a third-party repository named after the format read as their official home.
  • The four skill names are unchanged - they are installed paths in every host. GitHub redirects the old clone and npx skills add paths.
  • TRUST_LADDER_SKILLS_REPO moves with the repository (renamed from LOKF_SKILLS_REPO, to match the repository’s own name). A host that copied the template earlier keeps working through the redirect until it copies again.
  • The bundle’s base_iri is https://knowledge-trust-ladder.example/knowledge/, which re-ids all 30 concepts and every typed-relation target.
  • lokf-trust-ladder.svg is now trust-ladder.svg: under the new repository name the old filename read as the project’s mark rather than the diagram’s.
  • The bundle’s log keeps the name the project had on each day. The rename pass had rewritten entries written weeks earlier, including the one recording the old base_iri; CHANGELOG.md was left alone, and the log is the bundle’s own record.
  • The repository contract refuses the old name (check 16). CHANGELOG.md, the bundle’s log.md and one “formerly” line in docs/install.md are the exceptions, because they record history.
  • The three-lines diagram is keyed to the legend it shares. Its bands made the first line green and the second blue, where green means agent work and blue a named person - so the registrar sat in the person’s colour and the curator in the agent’s. Neutral bands now, and each card takes the colour of whoever acts.
  • Labels no longer collide with their own boxes: six across four diagrams overflowed or came within 2px, one of them hidden behind a card painted over it.
  • The diagrams no longer glare. A pure-white canvas was the brightest thing on the page, with the tinted cards below it; all seven assets now use the warm #E4E1D7, an even three-step ramp from canvas to panel to card. Green and blue were rejected for it - in these diagrams they mean agent work and a named person.
  • Small grey labels are legible again: the faint ink moved from #888780 to #6E6D66, clearing 4.5:1 where it had been 3.6:1.
  • LOKF_SKILLS_REPO/LOKF_SKILLS_REF are now TRUST_LADDER_SKILLS_REPO/TRUST_LADDER_SKILLS_REF. The old names said “LOKF” for the repository itself, which is now knowledge-trust-ladder; the skills stay lokf-*, only the repository pointer is renamed. Each sibling’s own copy of the workflow needs the same rename before it next syncs from the template.

Fixed

  • The librarian template pins a release that exists. publish.yml promotes the top CHANGELOG.md heading before its tag exists, so pinning to that heading fails check 15’s own clone test until the tag lands; the template now pins v0.19.5, the newest release a host can actually clone.

0.19.5

Security

  • The curator counts reader feedback without reading it. Its report says how many entries wait in .lokf/feedback.md but gave no way to count them, so an agent read outsider-written free text into its session to get a number. It now counts with grep -c and never opens, quotes or acts on an entry.
  • The Snyk W011 finding on lokf-curator is acknowledged in the skill and the threat model: a real surface, now count-only, and every curator write is a live person’s verdict.