Draft: chore(lint): sync Vale configuration from the gitlab project
Syncs the Vale configuration in this project from the gitlab project, which is the source of truth
for those rules. The process is documented at
https://docs.gitlab.com/development/documentation/testing/#update-linter-configuration
The source of truth for this sync is gitlab commit 9d9db2d0b2302 on master (2026-08-19).
The existing gitlab_base style directory was deleted and recopied, rather than copied over the top.
This ensures rules removed upstream are also removed here. Nothing was removed upstream this time, so
no rules were deleted in this MR.
In this project, the Vale styles live in .vale/ at the repository root, not under a docs directory.
Changes
This MR has two commits:
chore(lint): sync Vale configuration from the gitlab project. Files changed:- Added
.vale/gitlab_base/BoldEmphasis.yml(new rule, error level: flags bold used for simple emphasis, such as**not**). - Updated
.vale/gitlab_base/AlertFormat.yml. The rule now also flags an italicized or boldedNote:line, not just a plain one. - Updated
.vale/gitlab_base/OutdatedVersions.yml,OxfordComma.yml,Substitutions.yml,Uppercase.yml, andspelling-exceptions.txt.
- Added
docs(lint): exempt internal docs and fix bold emphasis for new Vale rules:- The new rules produced 198 error-level findings across 54 files. None were in
docs/user/, the surface published to docs.gitlab.com. They were indocs/plans/(97),docs/specs/(81),docs/dev/(10), and.claude/agents/(10). docs/specs/,docs/plans/, and.claude/agents/are now exempt in.vale.ini, using the sameBasedOnStyles =pattern the file already uses fordocs/adr/,.claude/skills/, anddocs/dev/documentation/. These are internal working documents and AI agent definitions, not published documentation, and they are not written to the docs style guide. This exemption removes all Vale coverage from those paths, not just the two new rules. It can be narrowed later if the team would rather keep them linted.- The 10 findings in
docs/dev/were fixed rather than exempted, since that is developer documentation proper. Removed bold used for simple emphasis in nine places acrossdocs/dev/database-migrations.md,docs/dev/go-secure-coding.md,docs/dev/go-testing.md, anddocs/dev/storage.md. Converted a**Note:**paragraph indocs/dev/gitlab-com-infrastructure.mdto the> [!note]Markdown alert syntax.
- The new rules produced 198 error-level findings across 54 files. None were in
Not changed
These are project-specific and are deliberately left as they are:
.vale-user.ini. The stricter configuration fordocs/user/is unchanged..vale/local/SectionSign.yml. A project-specific rule, not synced from upstream..markdownlint-cli2.yamlanduser.markdownlint-cli2.yaml. No rule changes were needed. This project's deliberate differences from thegitlabproject —proper-names: false, its ownignoreslist, and no custom rules — are kept.- The
gitlab_docs,gitlab_release_index, andgitlab_release_notesstyles, and the.tmploutput templates. These are not used by this project.
Testing
Ran Vale 3.14.1 and markdownlint-cli2 0.22.1 locally, matching the versions in this project's docs lint image. All four lint passes are clean:
vale --minAlertLevel error .reports 0 errors across 304 files.vale --config=.vale-user.ini --minAlertLevel error docs/userreports 0 errors across 2 files.markdownlint-cli2 '**/*.md' '!docs/user/**'reports 0 errors across 151 files.markdownlint-cli2 --config user.markdownlint-cli2.yaml 'docs/user/**/*.md'reports 0 errors across 2 files.