Skip to content

Contributing to this domain

Playbookhow-toplaybooks/contributing

Nobody has checked this yet

still a draft

Written 2026-10-26 by ktl-librarian (automation).

The full record
Checks
none recorded
Sources
References
Graph
Open this concept in the knowledge graph
IRI
https://w3id.org/ktl/federation/knowledge/playbooks/contributing
Licence
CC BY 4.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

This playbook says how to change this repository: the setup, the checks before a pull request, and the rules for AI tools. Confirming a member change gives a person’s steps to confirm a member.

You need uv and just, and Node.js 24 for the website. Clone the repository, then run just lokf-install && just lokf-check-refs from .lokf/.

The agent skills that maintain the bundle come from knowledge-trust-ladder. Install them, and never commit them:

Terminal window
npx skills add noelmcloughlin/knowledge-trust-ladder --skill ktl-curator --yes

Where a company proxy or an internal npm registry blocks npx, the GitHub CLI installs the skill instead: gh skill install noelmcloughlin/knowledge-trust-ladder ktl-curator --scope user --agent <yours>.

  • A member names one release, the newest that carries a knowledge-*.zip. Its checksum is the digest in that release’s .sha256.
  • A confirmation is a person’s own act. Record it with ktl-curator, in a signed commit. No agent writes a confirmation.
  • Copy nothing from a member. The domain names releases, and the workspace is built from them.
  • Run the gate’s two checks from .lokf/: just lokf-check-refs and bash scripts/knowledge-conventions.sh knowledge.
  • Leave the sidecar’s copies alone: .lokf/scripts/, .lokf/m365/ and the knowledge-*.yaml workflows. Change them in KTL. Each week knowledge-sync.yaml checks the newest skills release. When this host is behind that release, the workflow opens one pull request that copies the release’s templates over these files.
  • When the lokf toolkit’s version changes, copy .lokf/lokf.yaml again from the installed package in the same pull request. The sync leaves that file alone.
  • Lint as CI does. lint-and-docs.yaml runs markdownlint against .markdownlint-cli2.jsonc, lychee against lychee.toml and codespell over every *.md. It runs actionlint and ShellCheck over the workflows and scripts.
  • Add an entry under ## [Unreleased] in CHANGELOG.md when your change alters behaviour.

The pull request template repeats these checks as a checklist. When a pull request records a confirmation, the template asks the person to state that they opened the release named by every confirmation they approve.

AI assistance is welcome. AI_COVENANT.md sets the rules, for people and the scheduled librarian alike: you are the author of what you submit.

For any change under .lokf/knowledge/, name the release it rests on, by its tag and its page, and check the checksum against that release’s .sha256. The members script’s hand-off lines say what it verified. They are evidence for the person who confirms, not a confirmation.

Contributions are licensed under the Apache License 2.0. The knowledge bundle is published under CC BY 4.0, as its index.md says.