Bundle log
A feed reader can follow this log: log.xml holds its newest 20 days.
2026-10-29
Section titled “2026-10-29”- Changed: lokf toolkit gives the
>=0.9.0floor that.lokf/pyproject.tomlnow declares; LOKF and Trust engine count fourteen relation fields, withisReplacedBy.
2026-10-27
Section titled “2026-10-27”- Changed: Contributing describes the skills pin moving through
knowledge-sync.yamlandknowledge-sync.sh, which copy every template the release’sknowledge-sync.manifestlists, asCONTRIBUTING.mdhas said since #104, in place of the three-workflow copy step. - Resolved:
knowledge-sync.shreads the manifest out of the release tag and copies every listed template the repository carries, so the playbook describes that sync;CONTRIBUTING.mdsays the same since #104. - Changed: the source map’s sync row names
.lokf/scripts/knowledge-sync.shand feeds the contributing playbook, which now says what a pin move copies.
2026-10-19
Section titled “2026-10-19”- Changed: Settings tab adds
src/settings-model.tsas a source: theknownTypesdefaults and the upgrade-merge rule its description already describes live there, not insrc/settings.ts, and the coverage sweep found the file named in no concept.
2026-10-18
Section titled “2026-10-18”- Changed: Trust fields names the ktl-curator skill in Knowledge Trust Ladder’s bundle as the whole it is part of, since its resource is
skills/ktl-curator/references/trust-fields.mdin that skill; the first link from this bundle into another member of the KTL federation. - Changed: Review session names the ktl-curator skill in Knowledge Trust Ladder’s bundle as the whole it is part of, since its resource is
skills/ktl-curator/references/review-session.mdin that skill. - Changed: the trust-model page names its companion project as Knowledge Trust Ladder (KTL), as
docs/for-the-curious.mdnow does, so the later KTL Registrar reads as defined. - Question: the contributing playbook’s pin rule counts three sidecar workflows, and the sync script now copies whatever the release’s manifest lists,
knowledge-sync.yamlamong them. - Changed: the source map names
knowledge-sync.yamland its pull request template, which the sidecar syncs added, and listspackage-lock.jsonamong the build files left out.
2026-10-17
Section titled “2026-10-17”- Changed: the edits engine names what each paired function does:
applyConfirmappends the event andapplyStaleAfteronly setsstale_after, andparseCurationTallyreads back the countsupsertCurationLinewrites, assrc/edits.tsshows.
2026-10-16
Section titled “2026-10-16”- Prose: reworded 18 concept bodies in plain English. No fact, link, number or frontmatter changed.
- Changed: The OKF glossary term gains a description, so its index bullet says what it defines.
- Changed: The LOKF glossary term gains a description, so its index bullet says what it defines.
- Changed: The Diátaxis genre glossary term gains a description, so its index bullet says what it defines.
- Changed: Curator side panel says that a confirmed concept a question set back to draft reads “reopened” on the card and the active note, and gets the reopened hint in the queue, as
src/curator-view.tshas done since faa8d93. - Changed: In-editor aids says that a confirmed concept a question reopened keeps the confirmed tone, as
src/trust-label.tshas done since faa8d93. Its sources now list the seven files the source map names for it, so the work list seestrust-label.tsmove. - Changed: The trust-fields description names
docs/using.mdfor the health-line chips, which left the README when it became a doorway. - Rewrite: lokf toolkit follows what
lokf validatedoes in 0.8.0, a JSON Schema check with no SHACL pass, and addsscripts/build-vocab.mjs, the one maintenance step that reads the toolkit’s schema. - Changed: The lokf toolkit description drops the SHACL checks
lokf validatedoes not run, and its sources add the sidecar’spyproject.toml, its justfile andscripts/build-vocab.mjs. - Changed: LOKF specification says what the page holds today: no Golden Rules, which are the librarian skill’s, and a type table of fourteen classes, while the 0.8.0 schema adds
Role. - Changed: The LOKF glossary term counts the thirteen relation fields
src/bundle.tsreads, not ten, the countservices/trust-engine.mdalready gives, and citessrc/bundle.tsas its source. - Changed: Diátaxis genre now carries
genre: reference, which its body already said it had. - Changed: the source map adds
scripts/build-vocab.mjsto the lokf toolkit row, and names the repository files it leaves out on purpose. The reworded README and docs pages still match their rows. - Changed: the bundle’s
base_irimoved from the placeholderhttps://ktl-curator.example/knowledge/tohttps://w3id.org/ktl/curator/knowledge/, a namespace under Knowledge Trust Ladder’s w3id.org authority, so the bundle can join a federation; every id and relation target moved with it, and no concept’s text changed. - Added: Knowledge website, from
website/README.mdand.github/workflows/knowledge-website.yaml, which the ktl-website skill added in a259ac0. - Changed: the source map gains the knowledge website (
website/andknowledge-website.yaml, added in a259ac0), and the README row says the doorway now links the website’s pages. - Prose: reworded 12 concept bodies in plain English. No fact, link, number or frontmatter changed.
2026-10-15
Section titled “2026-10-15”- Changed: the OKF specification moved to
GoogleCloudPlatform/open-knowledge-format, which still serves v0.2; theknowledge-catalog/okf/copy is frozen. - Changed: the source map links the canonical OKF specification.
- Rewrite: Why KTL Curator exists follows
docs/for-the-curious.md, whichdocs/architecture.mdnow links to in place of the README, and adds what the plugin leaves to KTL Registrar and the librarian. - Rewrite: Contributing follows the current
CONTRIBUTING.mdchecklist: Node 20 or later, the changelog line, the vocab refresh, the skills pin sync and the releasing pull request title. - Changed: The Contributing description names the checklist items the concept now carries.
- Rewrite: the registrar gate follows the current workflow: validate runs the justfile recipe after
uv sync --lockedand passes the merge base to the conventions script; provenance reads whole events, removals included, and checks signatures against.lokf/curators/too; the copy now keeps the template’s jobs unchanged. - Changed: The registrar gate description covers removed confirmations, and its sources add
knowledge-provenance.sh. - Rewrite: the source map adds the docs pages, the release config, the sidecar’s other copies and the curator keys, and its registrar and skill-reference rows follow their current sources. The dated re-check notes are gone; the log keeps that history.
- Rewrite: Releasing adds the
workflow_dispatchpathrelease.ymlgained for a tag semantic-release pushed before failing, thesecurityrelease type, and theplanjob’s changelog and title checks. - Changed: The Releasing description names the hand-run dispatch path, and its sources add
.releaserc.json. - Rewrite: the no-telemetry policy follows
SECURITY.md’s current wording and citesdocs/architecture.md’s Privacy section, where the README’s former Privacy section now lives. - Changed: The no-telemetry description follows
SECURITY.md, and its sources adddocs/architecture.md. - Changed: Curator side panel names the trust-ladder icon its tab and the ribbon now carry.
- Changed: Edits engine says the caller writes the body through
vault.process, notvault.modify, and adds the four exported functions it left out. - Changed: KTL Curator plugin: the verbs write the body through
vault.process, the corrected guard ishasReviewedCardplushasChangedSinceCardOpened(nocanMarkCorrected), and all six commands and the ribbon icon are listed. - Changed: Settings tab adds the In-editor group, the trust-marker and autocomplete toggles it had left out.
- Changed: Trust engine: reliance counts the schema’s thirteen relation fields, once per relying concept with retired concepts left out, and an empty
verifiedlist reads as unchecked. - Resolved:
src/main.tswires the four modules as the concept says. Its Look up a LOKF field command opensFieldReferenceModaloverLOKF_FIELD_DOCS, it registerslokfTrustMarkerExtensionandKtlCuratorSuggest, and it renderstrustLabelandhandoffLabel.
2026-09-24
Section titled “2026-09-24”- Future-dated times corrected. 3
process:ktl-librariantimes were later than the commit that recorded them (round placeholders written as UTC). Each now carries that commit’s time, the latest moment git attests, so the bundle keeps the sidecar’s new conventions rule 11. - The signing setup moved to its own page in the skills.
knowledge-trust-ladder split the registrar gate out of
automation.mdintogate.md, soplaybooks/knowledge-registrar-gate.mdnow points there for the signing setup.
2026-09-23
Section titled “2026-09-23”-
The docent records a reader’s gap without reading the file it goes in.
.lokf/feedback.mdis kept newest first, so adding an entry meant reading it, editing it and writing it back, which put other readers’ free text into the docent’s session, held off by prose alone (Snyk W011). The sidecar now carriesknowledge-feedback.sh: the docent hands over its own entry and never opens the file. The script comes from thev0.23.0templates, the release that ships it, and the pin moved to that tag with it. -
The scheduled librarian installs its skill from a tag that has it. The pin still read
v0.21.0, where the skills are namedlokf-*; the rename toktl-*landed inv0.22.0. The install step copiesskills/ktl-librarianand is not gated onKNOWLEDGE_LIBRARIAN_ENABLED, so every weekly run has been failing there since the plugin took the KTL name, armed or not. The pin moves tov0.23.0, the release that also shipsknowledge-feedback.sh. The scripts under.lokf/scripts/andknowledge-registrar.yamlall match its templates.
2026-09-19
Section titled “2026-09-19”-
The logo now carries knowledge and trust. The first mark was three rungs alone: it drew ladder and left the other two words to the filename. The ladder now rises out of an open book, and its top rung is the check mark in the curator’s blue, so the mark reads draft, checked, vouched-for from bottom to top. Still byte-identical in all three repositories.
-
Both diagrams carry the mark and the wordmark in the top-left corner, from the same shared definition.
-
Text that collided with its own box. A headless-Chrome pass measured every label against its enclosing card: the curator card’s “a few at a time” was painted before the card and hidden behind it, and two labels in the plugins card came within 3px of their edges. Both diagrams now match the skills repository’s copy byte for byte.
-
Assets restacked, and the family logo added. The diagrams’ canvas was pure white while their cards were tinted, so the biggest area was the brightest and the cards read as sunken. The canvas is now
#E4E1D7and the faint ink#6E6D66, which also lifts 10px grey labels past 4.5:1. New.assets/knowledge-trust-ladder-logo.svg, identical in all three repositories. The.assets/*.svgsource-map row covers it. -
Skills repository renamed to
knowledge-trust-ladder, fromlokf-agent-skills, because upstream LOKF now ships its own bundled skills. Every deep link and the scheduled librarian’sLOKF_SKILLS_REPOfollow it, in one mechanical pass; noverifiedevent changed. This plugin’s own name, id andbase_iriare untouched - only references to the skills repository moved. Concepts naming it in prose were rewritten by the same pass; entries below this day keep the name the skills repository had when they were written, asCHANGELOG.mddoes. -
Reference audit moved onto the toolkit’s own flag:
just lokf-check-refsran a hand-written SPARQL query over ten relation predicates, which reported an externalsource:ordefinedBy:URL - correct usage for both slots - as a dangling target, and had drifted against the schema (missingholder,measures,memberOfand reifiedrelations). It callslokf validate --check-refsnow, so the slot list comes from the schema. Only Knowledge registrar gate changed here, to describe the recipe as it now runs; the workflow no longer invokes it throughuvx ... just: the gate’s third step is gone and--check-refsrides on its validate step. That change has not reached the skills template yet, so this copy is ahead of it and the preflight’scopiesline reports the file as drifted until it does. That concept described the recipe while citing only the workflow, the conventions script andSECURITY.md, so.lokf/justfileis now one of itssources.
2026-09-18
Section titled “2026-09-18”-
Resources repinned off runtime state:
references/trust-fields.mdandreferences/review-session.mdnamed their installed copies under.agents/, which git ignores, so the conventions gate failed in a clean CI checkout. Both now name the published file at thev0.19.2tag the workflow installs. -
Sidecar brought up to the skills templates: the scripts here were the pre-0.19 copies, so the wrapper lacked the
EXIT-trap restore and the registrar gate still read confirmations by theirby:line. Synced all five scripts, added.gitattributes, and bumpedLOKF_SKILLS_REFfromv0.9.0tov0.19.2. The release workflow now checks release notes and the pull request title on a releasing pull request. -
Open question closed:
references/trust-fields.mdasked whether the plugin was ahead of its pinned spec of record on “known vocabulary”. TheLOKF_SKILLS_REFbump tov0.19.2settles it - that release carries the wordingsrc/curator-view.tsuses.
2026-09-14
Section titled “2026-09-14”-
Steady-state refresh, against the now-committed
96cf5fe(“docs(security): improved layout”):SECURITY.mdwas slimmed and its design content moved to the skills repository’s newdocs/threat-model.md.playbooks/knowledge-registrar-gate.mdcorrected - two sentences namedSECURITY.mdas the design’s home when it now only links there; retitled to name the threat model directly.policies/no-telemetry.mdre-verified, its cited section unchanged by the rewrite.playbooks/knowledge-sources.md’sSECURITY.mdrow updated to describe the slimmed file. No new concept needed: this repository has always treatedSECURITY.mdas asourcesentry, not aPolicyconcept of its own. -
Steady-state refresh (librarian pass, no feedback pending), against the now-committed
feba4e0(“gate runs the conventions script and lokf-check-refs”): thevalidatejob in.github/workflows/knowledge-registrar.yamlgained two steps -scripts/knowledge-conventions.shandjust lokf-check-refs- thatplaybooks/knowledge-registrar-gate.mddid not yet describe; corrected, with the script added as asourcesentry. All other concepts re-checked against currentsrc/,CONTRIBUTING.md, and the pinned skill copy: no further drift.references/trust-fields.md’s open question (the installed copy still pinned toLOKF_SKILLS_REF: v0.9.0and reading “built-in vocabulary” againstsrc/curator-view.ts’s “known vocabulary”) re-checked and still holds, unchanged.just lokf-validate,just lokf-check-refs, andscripts/knowledge-conventions.shall pass. -
Steady-state refresh against an uncommitted working-tree change (
CONTRIBUTING.mdrewritten as a checklist under a word budget and pointing at the skills repository’sdocs/for release/signing detail;npm run check; four lint rules raised to error; a drift guard added toscripts/smoke-test.ts;build.yml/lint-and-docs.yamlhardened with a main-only push trigger, a concurrency group, and an action-pin check).playbooks/contributing.mdre-derived (the pure-module list grew from four to seven; CI’s mirror ofnpm run checkand the pin/link checks added).playbooks/releasing.md’sresourcemoved fromCONTRIBUTING.mdtosemantic-release.yml/release.yml, since the prose it was derived from no longer lives inCONTRIBUTING.md. Four source-map rows added for files that predate this pass but were never listed:CONTRIBUTING.md,build.yml/lint-and-docs.yaml,semantic-release.yml/release.yml,pull_request_template.md.playbooks/index.mdwas missingknowledge-registrar-gate.md; added. -
Re-verified against the actual pinned resource, not the skill repository’s live checkout: the prior pass’s log entry called
references/trust-fields.md’s open question closed by pointing at thelokf-agent-skillsworking tree; the concept’s ownresourceis the locally installed copy, still pinned tov0.9.0(knowledge-librarian.yaml’sLOKF_SKILLS_REF, unchanged this run) and still reading “built-in vocabulary” with no domain-schema mention, whilesrc/curator-view.tsalready reads “known vocabulary”. Reopened as an open question there rather than left silently settled. -
Re-verified, no change:
references/obsidian-plugin-guidelines.md(checked against the neweslint.config.mtsrules) andplaybooks/knowledge-registrar-gate.md(workflow file unchanged).lokfon PyPI is still0.7.0, matching the pinned floor - no bump (uv pip index versionshas noindexsubcommand in this environment; checked directly againstpypi.org/pypi/lokf/jsoninstead). -
CONTRIBUTING.mdcorrected, andplaybooks/contributing.mdre-derived from it. The document still said the smoke test covers “the three pure modules” and itssrc/table had nosettings-model.tsrow, so the concept had been written ahead of its own source - the wrong direction for a derived record. Source and concept now agree, and the same check found the same fault in the siblingktl-registrarrepository. -
Steady-state refresh (librarian pass, no feedback pending) against the uncommitted
feat/known-types-settingbranch, which adds Known LOKF types (knownTypes) under a new Type vocabulary settings group - the same list and upgrade rule asktl-registrar’s - and threads it intoclassify()andparseCurationPolicyTable(), so a bundle validated against a domain schema can list that schema’s classes: they stop counting as misfits and can carry a review interval. Updatedservices/settings-tab.md,services/trust-engine.md(the class check was still described as “14-class”; it is the manifest’s fifteen, or the list handed in),services/ktl-curator-plugin.mdandservices/curator-view.md(the vocabulary line’s new wording, and an open question on its divergence from the skill’strust-fields.md). Re-verified, no change:explanation/why-ktl-curator.md.playbooks/knowledge-sources.md: settings row and run note. -
Two defects found by a coverage pass, corrected here and in the code.
parseCurationPolicyTablematched a class name literally, so the prose rows of this plugin’s own curation-policy template (“Glossary terms”, “people”) bound nothing - hidden by their intervals coinciding with the settings defaults. The parse now ignores spaces and English plurals, andservices/trust-engine.mdrecords rule and history; the upstream skill’sreferences/review-session.md, spec of record for that table, states it too, so the two cannot drift apart again. Separately, deleting an## Open questionssection left two blank lines behind it (markdownlint MD012); one now. -
The open question
services/curator-view.mdraised was answered upstream the same day and is closed: thektl-curatorskill’sreferences/trust-fields.mdnow reads a host’s domain schema from.lokf/justfile’s--schemaand words the label “doesn’t fit the known vocabulary”, as this plugin already did. The plugin keeps its Known LOKF types setting because it cannot read a file outside the vault; the two no longer disagree about what the vocabulary is. -
src/settings-model.tsis a new pure module holding the settings shape, defaults and the saved-data merge rule, moved out ofmain.tsso a test can reach them. Recorded inservices/ktl-curator-plugin.md, this map’ssrc/row, andplaybooks/contributing.md, whose import-free rule now names it and says why logic leavesmain.tsrather than being tested through it.
2026-09-13
Section titled “2026-09-13”-
Steady-state refresh (librarian pass, no feedback pending), after a
ktl-sidecarrepair pass that restored.lokf/.gitignore’s.obsidian/rule and laid theknowledge_bundledoorway link. Re-verifiedplaybooks/knowledge-registrar-gate.mdagainst the now-committed workflow; it now says the copy also words two comments its own way, not onlypersist-credentials: falseandpermissions: {}.playbooks/knowledge-sources.md:.assets/row and run note added. -
Steady-state refresh (librarian pass, no feedback pending), against the commits since
248f9e6(knowledge-registrar.yamlgaining the template’sprovenance/attestationjobs,SECURITY.mdrestructured to inherit the guard design fromlokf-agent-skills, two README images) and this session’s uncommitted README rewrite around usage. Addedplaybooks/knowledge-registrar-gate.md(a gap: no source-map row, no concept) and two workflow rows to the source map. Audit fixes:just lokf-check-refsfailed on foursameAsrelations whose targets were the external URLs already carried byresource- removed from the fourreferences/*concepts, as the sibling bundles do;references/okf-specification.mdhadderivedFrompointing at the LOKF spec, backwards - moved ontoreferences/lokf-specification.md, the profile derived from OKF; the LOKF spec’s body said a “14-class” vocabulary, corrected to 15 (Role); the source map listedCUR.md, a file this repository has never had (deleted in the fork parent’s 0.2.0).references/trust-fields.md‘s description no longer claims a README trust-label table - the rewritten README links to the skills’ README for the labels and todocs/for-the-curious.mdfor the rules. Re-verified, no change:policies/no-telemetry.md,explanation/why-ktl-curator.md(firstverifiedevent),references/review-session.mdandreferences/trust-fields.md(the installed.agents/skills/ktl-curator/copies are identical to the source skill this run). Drift audit (reported, not fixed): both workflow copies differ from their templates only by the stricterpersist-credentials: false/permissions: {}and by comments.lokfon PyPI is still0.7.0, matching the floor. -
Steady-state refresh (librarian pass, no feedback pending): re-verified
services/settings-tab.mdandservices/ktl-curator-plugin.mdagainstsrc/settings.tsandsrc/main.tsafter this session’s README-notice rewording and a comment-only pass oversrc/main.ts/src/bundle.ts(knowledge_bundledoorway wording,implicitRoots). Both already matched, so each gained its firstverifiedevent (process:ktl-librarian) rather than a content change;status: draftis unchanged - that records no human curator has confirmed them yet, which this refresh does not settle.policies/no-telemetry.md(resourceSECURITY.md) andexplanation/why-ktl-curator.md(resourcedocs/for-the-curious.md) were not re-checked this run - neither resource changed this session.
2026-09-12
Section titled “2026-09-12”-
Steady-state refresh (
process:ktl-librarian), triggered by this session’s “no bundle” state and break-glass “Treat the vault root as the bundle” setting (src/main.ts,src/bundle.ts,src/settings.ts,src/curator-view.ts) and the README→docs/for-the-curious.mdsplit:services/ktl-curator-plugin.md- description and body corrected for the no-bundle state (hasNoBundle()/noBundleNotice()) and fixed drifted function names (detectedRoot()/autoBundleRootno longer exist; the current path isimplicitRoots()callingbundle.ts’s pureimplicitBundleRoots).services/settings-tab.md- added the break-glass “Treat the vault root as the bundle” toggle to the Scope group’s description.services/curator-view.md- added the report’s no-bundle message.explanation/why-ktl-curator.md-resourcemoved fromREADME.mdtodocs/for-the-curious.md, where the four-tier trust model content now actually lives.playbooks/knowledge-sources.md- updated theREADME.md“For the curious” row to point atdocs/for-the-curious.md, and added a row for the in-editor-aids source files.- Added
services/in-editor-aids.md(status: draft, open question left for a person): a newServiceconcept coveringsrc/fields.ts,src/field-modal.ts,src/inline.ts,src/suggest.ts,src/suggest-context.ts,src/trust-label.ts,src/lokf-vocab.json- the “Look up a LOKF field” command, the inline trust badge, and frontmatter autocomplete - which had no concept of their own despite being live features since v0.2.0. Wired intoservices/index.md, rootindex.md, andktl-curator-plugin.md’shasPart. - Re-verified against their sources and unchanged otherwise: 13 concepts
(
policies/no-telemetry.md; the sixreferences/*.md; the threeglossary/*.md;services/trust-engine.md,services/edits-engine.md;playbooks/contributing.md) got a refreshedprocess:ktl-librarianverifiedevent, no content changes. .lokf/pyproject.toml:lokf[build]floor raised>=0.5.0→>=0.7.0(latest on PyPI is 0.7.0; a minor-version bump, no major change to review).
-
Semantic-release, hardened (maintainer decision, matching upstream
ktl-registrar):playbooks/releasing.mdrewritten (generated/verifiedrefreshed) - a person no longer picks the version.semantic-release.yml’sreleasejob, behind thereleaseGitHub Environment, computes it from Conventional Commits and runs a new.github/scripts/changelog-release.mjsas semantic-release’s ownverifyRelease/generateNotes/preparehooks: refuses an empty## [Unreleased], uses it as the release notes, retitles it to a dated heading.@semantic-release/npm(npmPublish: false) still triggers the existingversionscript.release.ymlgained aworkflow_calltrigger for the same reason as the sibling plugin; unchanged otherwise. -
Corrected
services/ktl-curator-plugin.mdandservices/settings-tab.mdafter the maintainer had the afternoon’s recommendations implemented: with no bundle roots configured a top-levelknowledge_bundle/is detected on its own (autoBundleRoot, identical to KTL Registrar’s), and a dot-folder root is accepted with a live-index check and a warning instead of refused. -
README restructured around how an Obsidian user meets a knowledge bundle - a new “How this fits into an Obsidian vault” section (the bundle is the vault; a folder inside the vault; derived from a repository and opened through
knowledge_bundle), where thelokf-agent-skillscome in, and why a vault is never migrated into a bundle. Corrected the previous README’s claim that a repository root opened as a vault reaches the bundle through theknowledge_bundlelink: per Obsidian’s own help on symbolic links, a link whose target is inside the same vault is ignored, and a dot-folder is never indexed. Other OKF validators are now mentioned once, in an “Alternative plugins” footnote. No concept body changed:explanation/why-ktl-curator.mdalready describes the relationship to KTL Registrar correctly (siblings, no dependency either way). Targeted pass, not a full steady-state sweep.
2026-09-10
Section titled “2026-09-10”- Bootstrap discovery: replaced the two placeholder services with 5
Serviceconcepts (ktl-curator-plugin,trust-engine,edits-engine,curator-view,settings-tab) derived fromsrc/*.ts; added 6Referenceconcepts (the LOKF/OKF specs, thelokftoolkit, Obsidian’s plugin guidelines, and thektl-curatorskill’strust-fields.md/review-session.md); 3GlossaryTermconcepts (OKF, LOKF, Diátaxis genre); 1Policy(no-telemetry); 1Explanation(why KTL Curator exists); andplaybooks/knowledge-sources.mdrecording where each of these came from, plusplaybooks/releasing.mdandplaybooks/contributing.mdfromCONTRIBUTING.md. All 17 new concepts arestatus: draft, none yet confirmed by a person. - Initialization: Scaffolded the LOKF bundle for KTL Curator with placeholder services. Real concepts to follow.