Contributing
playbooks/contributingChecked by automation only
still a draft
Written 2026-10-22 by ktl-librarian (automation). Last checked 2026-10-22 by ktl-librarian (automation).
The full record
- Checks
- 2026-10-22 by
ktl-librarian(automation)
- 2026-10-22 by
- Sources
- References
- Depends on
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/ktl/linkml-sidecar/knowledge/playbooks/contributing- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Overview
Section titled “Overview”There is no build step: the skills are Markdown, YAML, shell and Python. Clone the repository, then run the contract and the fast tests:
bash scripts/validate-repository.shuv run --no-project --with-requirements tests/requirements.txt pytestThe fast tests run the scaffold against tests/fake_copier.py, an offline stand-in for copier, and make no network call. The slow tests run the real template. Clone the pinned tag, then run pytest with LINKML_SIDECAR_SLOW=1. They need uv, just and the network:
git clone --branch v0.5.0 https://github.com/linkml/linkml-project-copier .template-cache/linkml-project-copierLINKML_SIDECAR_SLOW=1 uv run --no-project --with-requirements tests/requirements.txt pytest -m slowTo try a change end to end, run bash scripts/smoke-test-install.sh "$PWD". It installs the skills from your clone into a throwaway repository with npx skills, then runs the installed preflight and the scaffold’s dry run from there.
Before a pull request
Section titled “Before a pull request”- Run
bash scripts/validate-repository.shandpytest. CI runs both, plus ShellCheck,actionlint, markdownlint, lychee, codespell, the install smoke test and the slow tests. - Run
gh skill publish --dry-runif you have the GitHub CLI. It is the Agent Skills spec check thatvalidate.ymlruns. - Add a line or two under
## [Unreleased]inCHANGELOG.mdwhen a change alters what a skill does. - To move the template pin, change
LINKML_TEMPLATE_REFandLINKML_TEMPLATE_SHAin the scaffold driver, re-walktemplate-assumptions.mdagainst the new version and bump its heading, re-run the slow tests, and update the version inSKILL.md’s Sources note. The contract holds every mention to the one pin. - A template file under
templates/github/ortemplates/forgejo/names every action by commit SHA, with its version in a comment. - Dependabot does not reach either folder, so copy each bump of the repository’s own workflows into both in the same pull request. The contract fails until they agree.
actionlintcannot read the Forgejo template, which names Codeberg’s runner label and each action by its full address, sotests/test_forgejo_workflow.pyholds its shape. Run a change to it once withforgejo-runner exec --image ghcr.io/catthehacker/ubuntu:act-latest, Codeberg’s default image.
The pull request template’s checklist is the short form of this list.
Editing scope
Section titled “Editing scope”A change to what an agent should do needs its reason in the pull request, and keeps the boundary: linkml-sidecar installs and repairs, linkml-author authors, and neither edits a generated file or a template-owned one.