Skip to content

Align the prose with the corpus that replaced it #28

Align the prose with the corpus that replaced it

Align the prose with the corpus that replaced it #28

Workflow file for this run

# Documentation anti-drift guard for qbm-http.
# Runs scripts/doc-lint.sh: forbidden retired tokens, broken internal links,
# missing governance files. See CONTRIBUTING.md.
name: doc-lint
on:
push:
branches: [ main, develop ]
paths:
- 'README.md'
- 'readme/**'
- 'CHANGELOG.md'
- 'SECURITY.md'
- 'CONTRIBUTING.md'
- 'scripts/doc-lint.sh'
# The agent-facing llm/ docs moved into this repo, and scripts/llm-guard.py (driven
# from doc-lint.sh section 1c) is the only guard that reads them in a STANDALONE
# checkout -- the superproject that used to hold them is private, so without these
# filters a commit touching llm/ would reach this repo's default branch unchecked.
# The two baselines are listed for the same reason the script is: an edit to either
# changes what the gate accepts.
- 'llm/**'
- 'scripts/llm-guard.py'
- 'scripts/llm-guard.baseline'
- 'scripts/llm-cite-digest.baseline'
# `/llms.txt` + `/llms-full.txt` are the published agent index; doc-lint.sh section 1d
# regenerates them and fails on any difference. Both the generated files and the
# generator are listed so a hand edit to either is caught, and README.md is already
# above -- its "For AI assistants" section is what points a user at them.
- 'llms.txt'
- 'llms-full.txt'
- 'scripts/gen-llms-txt.py'
# The lint reads the expected Verified-against version from project(...
# VERSION) here, so a version-only bump must trigger it.
- 'CMakeLists.txt'
# cite-check.py validates every `src:` citation against the SOURCE it names, so a
# source-only commit -- a rename, a deletion, an insert that shifts line numbers --
# can invalidate hundreds of citations. Without this the guard never fires on it.
- 'src/**'
pull_request:
branches: [ main, develop ]
paths:
- 'README.md'
- 'readme/**'
- 'CHANGELOG.md'
- 'SECURITY.md'
- 'CONTRIBUTING.md'
- 'scripts/doc-lint.sh'
# The agent-facing llm/ docs moved into this repo, and scripts/llm-guard.py (driven
# from doc-lint.sh section 1c) is the only guard that reads them in a STANDALONE
# checkout -- the superproject that used to hold them is private, so without these
# filters a commit touching llm/ would reach this repo's default branch unchecked.
# The two baselines are listed for the same reason the script is: an edit to either
# changes what the gate accepts.
- 'llm/**'
- 'scripts/llm-guard.py'
- 'scripts/llm-guard.baseline'
- 'scripts/llm-cite-digest.baseline'
# `/llms.txt` + `/llms-full.txt` are the published agent index; doc-lint.sh section 1d
# regenerates them and fails on any difference. Both the generated files and the
# generator are listed so a hand edit to either is caught, and README.md is already
# above -- its "For AI assistants" section is what points a user at them.
- 'llms.txt'
- 'llms-full.txt'
- 'scripts/gen-llms-txt.py'
# The lint reads the expected Verified-against version from project(...
# VERSION) here, so a version-only bump must trigger it.
- 'CMakeLists.txt'
# cite-check.py validates every `src:` citation against the SOURCE it names, so a
# source-only commit -- a rename, a deletion, an insert that shifts line numbers --
# can invalidate hundreds of citations. Without this the guard never fires on it.
- 'src/**'
concurrency:
group: doc-lint-${{ github.ref }}
cancel-in-progress: true
jobs:
doc-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Run documentation anti-drift guard
run: ./scripts/doc-lint.sh