Releases
0.3.2
As it stood at this release: the repository · the docs · the knowledge bundle · the release
Security
- The sidecar copies, the website’s copies and the skills pin match
v0.41.0. The scheduled librarian takes an agent that wants its prompt somewhere other than after-p, named by the repository variableAGENT_PROMPT_FLAG. It writes its patch with the agent’s own file tool, so an agent refused a shell write no longer gives up. Both came with thev0.40.0copies, which 0.3.1 included without an entry. The website’s copies show the schema’s pages under a Schema topic and draw their class diagrams, and its workflow also runs weekly and on a change to a justfile, apyproject.tomlor auv.lock. No application change.
0.3.1
Changed
- Four docs pages lose their dead sentences. The crosswalk, graph, contribution and status paragraphs say the fact and stop. No application change.
0.3.0
Added
- A website for the knowledge bundle, in
website/, laid down by the ktl-website skill. Each concept has a page with its trust label, beside a health page, the knowledge graph and search by trust and type. The four fileslokf exportwrites are served under/knowledge/, and the README, the docs pages and this changelog become pages too.knowledge-website.yamlbuilds it on every pull request and publishes it to GitHub Pages onceKNOWLEDGE_WEBSITE_ENABLEDistrue.
Changed
- The README is a doorway, in the style of Knowledge Trust Ladder’s. It keeps the couplet, the tagline, the opening paragraph and the agents note, and links the quick start, the architecture page and the caveats. The catalogue story, the four doors, where the project sits and the credits moved to
docs/architecture.md, and the install and quick start steps todocs/install.md. No application change.
0.2.2
Security
- The sidecar copies and the skills pin match
v0.39.0. The preflight looks for ktl-website among the installed skills. The librarian and release workflows say their variables go under Repository variables, never on an environment, which neither job can read, and the scheduled librarian installs a ktl-librarian whose setup page says the same. No application change.
0.2.1
Security
- The sidecar copies and the skills pin match
v0.38.2. The registrar, librarian and release workflows run the justfile’slokf-check-refsrecipe, and their actions move to newer pinned releases. The docent’s Copilot instructions prefer a retelling for a younger reader, and give the adult concept’s label with it. The pen no longer adds a second “edited since” note to a log line that already has one. The scheduled librarian installs a ktl-librarian that retells a confirmed concept for younger readers when the curation policy declares a band. No application change.
0.2.0
Changed
- The CLI and the API are generated from the schema, not from a hand-written OpenAPI file.
lib/api/api.yamlnames the 22 exposed classes and the six hand paths; every slot of a class is a filter, an enum slot offers its values, andlib/test/test_cli_api_identity.pyproves both doors expose the same surface. The contract is the server’s/openapi.json, written todocs/openapi.jsonbyjust gen-openapiand served by Scalar at/scalartoo. - A scope lists every instance of its class, wherever the data file put it.
controlis every RiskControl including the Actions (1,102),modelevery LargeLanguageModel including the Adapters (58),requirementthe Requirements alone (51), andgroupevery Group subclass (183). The expected counts follow ai-atlas-nexus 1.2.5, which is now the minimum. - The web UI’s entity list is generated.
just gen-ui-configwritesentities.jsonfrom the exposure file, so a UI key is an API route by construction; labels, groups and filters stay a hand-written overlay, and eleven filters that were not slots of their class are gone. - The web UI’s record form is generated from the JSON Schema.
RecordForm.svelterenders the endpoint’s class with @sjsf and its daisyUI 5 theme and checks it with ajv before saving, while the taxonomy file, the stamped dates and the read-only class designator work as before.app.cssnow loads daisyUI for the components the form uses, so the existingbtnandinputclasses in the pagination and the filter panel take daisyUI’s styles too. - The Cypher export is fetched, not generated.
just fetch-cypherdownloads the export ai-atlas-nexus commits at the installed version’s tag, with a provenance header;--byodwith it is refused, since that artefact holds the packaged data only.
Added
- A DuckDB store behind the listings.
just load-storeloads the data through linkml-store, one collection per concrete class, in about fifteen seconds; the listings read it whenAI_LINKMO_DATA_SOURCEisstore, or by default once it exists, andlib/test/test_data_source.pyshows the store and the library answer alike.just validate-storereads linkml-store’s findings rather than its exit code, and CI runs it with the 30 upstream data findings as the ceiling.just index-storebuilds a trigram index,GET /searchand./ai searchquery it, andjust dump-storewrites the store as YAML. - A browse UI over the data.
just build-browsebuilds two SQLite databases from the schema’sgen-sqltablestables, with each record in its class’s table and every ancestor’s so that a reference to an abstract parent resolves, and Datasette metadata generated from the schema.just browseserves them with Datasette on port 8001. - Class pages with an example from the data.
just gen-docwrites the schema’s pages withgen-doc, and each concrete class that has records shows the record whose identifier sorts first, validated against its class byjust gen-examples.
Removed
lib/api/openapi.yaml,server_dynamic.py, the 22 per-class handlers,validate_handlers.py,graph/cypher/export.py, the committed Cypher file, and thecympledependency.
0.1.9
Security
- The sidecar copies and the skills pin match
v0.37.1. The provenance gate reads averifiedorgeneratedevent that spans lines, or that sits behind a byte order mark or CRLF line endings, so a forged confirmation cannot hide in either. The unattended check follows a renamed concept. The pen refuses a provenance key in any letter case, and keeps a curator’s send-back. The report reads every timestamp and event layout, names a retired concept’s successor, marks a concept a reader disputed, and counts reliance through all thirteen relation fields. Conventions rule 14 refuses a commit that records a person’s confirmation and also changes what the concept says.
0.1.8
Security
- The sidecar copies and the skills pin match
v0.34.2. The preflight reads the CI variables by indirect expansion rather thaneval, so a scanner that searches forevalfinds none, and its output is unchanged. Whenknowledge-feedback.shorknowledge-report.shis missing, it names ktl-curator and an earlier ktl-docent as the skills that need it, since ktl-docent now runs its own copies. The scheduled librarian installs a ktl-librarian that reads LOKF’s schema from a commit rather than a tag (Snyk W012). No application change.
0.1.7
Security
- The sidecar copies and the skills pin match
v0.34.1. The Copilot docent’s instructions,.lokf/m365/ktl-docent-m365.md, label a concept as the report script does. A retired concept carries no other label, edited since a person last confirmed it takes the place of confirmed by a person, and an emptyverifiedlist reads as nobody has checked this yet. A Miss in its gap report starts with the reader’s question and says whether a concept looked relevant fromindex.md. No application change.
0.1.6
Security
-
The sidecar copies and the skills pin match
v0.34.0. The pin names the tag’s commit too, inTRUST_LADDER_SKILLS_SHA, and the librarian’s install step installs nothing unless the tag still names that commit. The librarian workflow has a third job,earlier, which reads the workflow’s earlier pull requests under a token that reads pull requests and nothing else. A scheduled run then opens no second pull request beside an open one, and does not propose again what a person declined. The pen refuses a patch that would change a person’s record, and writes each frontmatter value back as the file held it. The registrar gate and the release workflow install the toolkit withuv sync --locked, and the conventions script and the pen pin PyYAML. A week is quiet again once the librarian has asked about a source it cannot act on.SECURITY.mddescribes the three jobs and the two pin values, andCONTRIBUTING.mdsays the two move together and no longer says the librarian workflow carries local changes. No application change.