Knowledge Release (knowledge-release.yaml)
workflows/knowledge-releaseNobody has checked this yet
still a draft
Written 2026-10-28 by ktl-librarian (automation).
The full record
- Checks
- none recorded
- Sources
- Related to
- Pointed to by
- Release the schema (references)
- Security policy (references)
- Semantic release (semantic-release.yml) (related to)
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/github-actions/knowledge/workflows/knowledge-release- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Knowledge Release (knowledge-release.yaml)
Section titled “Knowledge Release (knowledge-release.yaml)”.github/workflows/knowledge-release.yaml is the workflow named “Knowledge Release”. It attaches the knowledge bundle to a GitHub release as a zip file, so that a reader can take the bundle as it stood at that release without cloning the repository.1 Beside it go the domain schema and, when .lokf/m365/ is installed, the Microsoft 365 Copilot skills. It runs no LLM or agent, and it never commits or pushes. NOTICE says that it is a copy of a ktl-sidecar template from the Knowledge Trust Ladder (KTL) repository.2
How it starts
Section titled “How it starts”A person, or Semantic release, dispatches it with an existing release’s tag and an optional force input. A published release starts it too, but only once the repository variable KNOWLEDGE_RELEASE_ENABLED is true. A header comment says that GitHub starts no workflow for a release created with the default GITHUB_TOKEN, so a release job that makes the release that way dispatches this workflow instead.
Its two jobs
Section titled “Its two jobs”pack, named “Validate and pack the bundle (read-only)”, runs withcontents: read. It compares the bundle’s git tree at the tag with its tree at the newest other published release that carries a bundle. When the two match andforceis not set, the run ends with a notice and packs nothing. Otherwise it validates the bundle and its relation targets, runs the conventions script, and packsknowledge-<tag>-<name>.zipwith its.sha256.<name>is the repository’s name unless the repository variableKNOWLEDGE_RELEASE_NAMEsets another. Because.lokf/justfilenames a domain schema, it also packs that file asschema-<tag>-<name>.yamlwith its.sha256, and one Copilot skill zip for each instructions file in.lokf/m365/.attach, named “Attach the zip to the release (privileged)”, runs only whenpackpacked something, withcontents: write,id-token: writeandattestations: write. It runs no third-party packages, checks each file against its checksum, attests build provenance when the repository is public, and uploads the files to the release, replacing an earlier upload of the same name.
So the domain schema goes onto a release only when the bundle changed since the last release that carries a bundle, or when force is set. CONTRIBUTING.md says the same, and that a release that changes only the schema needs a run by hand with force. The README points there for the terms on which a release carries the schema copy.