Skip to content

Lint & docs (lint-and-docs.yaml)

Gha workflowreferenceworkflows/lint-and-docs

Checked by automation only

still a draft

Written 2026-10-28 by ktl-librarian (automation). Last checked 2026-10-28 by ktl-librarian (automation).

The full record
Checks
  • 2026-10-28 by ktl-librarian (automation)
Sources
Pointed to by
Graph
Open this concept in the knowledge graph
IRI
https://w3id.org/lmodel/github-actions/knowledge/workflows/lint-and-docs
Licence
CC BY 4.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

.github/workflows/lint-and-docs.yaml is the workflow named “Lint & docs”. It runs static checks on the shell scripts, the workflows and the prose. A header comment says that it never touches the schema, the Python test suite or the knowledge bundle’s semantics, which Build and test and Knowledge Registrar check.1 It runs on a push to main, on every pull request, every Monday at 06:00 UTC to catch link rot, and by hand.

Each of its four jobs runs on ubuntu-latest with contents: read, after harden-runner in audit mode and a checkout without persisted credentials:

  • lint-scripts runs ShellCheck over the whole repository.
  • lint-workflows runs actionlint 1.7.12 from its container image, told to ignore the copilot-requests scope. A comment says that actionlint 1.7.12 predates that scope, which Knowledge Librarian requests.
  • word-budgets fails when CONTRIBUTING.md has more than 1000 words or SECURITY.md more than 900. A comment says that the first is a checklist and the second a policy, not design logs.
  • validate-markdown runs markdownlint-cli2 on every Markdown file against .markdownlint-cli2.jsonc, checks links with lychee against lychee.toml, and runs codespell 2.4.2 on the Markdown files git tracks. The lychee step maps the repository’s own links on main to the checkout, so a pull request that moves a linked file fails here rather than after merge.

lychee.toml reads the hidden folders too, so the links in .lokf/knowledge/ are checked like the README’s.

  1. .github/workflows/lint-and-docs.yaml, the header comment, the on key and the four jobs ↩