feat(vale): add mode input (project | docs) for ruleset preset

Summary

vale component grows a mode input that splits the ruleset into two presets so consumers get term discipline without docs-publishing ceremony noise.

  • mode: project (new default) — gitlab_base + gitlab_docs packages enabled, but these rules are off:
    • gitlab_docs.FrontMatter (requires YAML frontmatter on every markdown; right for content destined for docs.gitlab.com, wrong for project README/SECURITY/CHANGELOG)
    • gitlab_docs.InternalLinkExtension / InternalLinksCode / RelativeLinks (docs.gitlab.com link conventions)
    • gitlab_base.Spelling — upstream ships with vocab: false (Spelling.yml:11), which silently ignores a project-side Vocab/<name>/accept.txt. Drop it; term-substitution rules carry the high-value discipline.
  • mode: docs — full gitlab-docs ruleset (the v2.1.x behavior). For content shipping to docs.gitlab.com.

Migration

  • v2.1.x consumers pin @v2.1.x → no change.
  • v2.2.0 consumers inherit mode: project by default. README-style markdown stops failing on docs-ceremony rules.
  • Consumers shipping to docs.gitlab.com explicitly opt in: mode: docs.

What still catches

gitlab_base.Substitutions, SubstitutionWarning, Offerings, British, Uppercase, Wordy, etc. — covering airgapped → offline, on-prem → self-managed, GitLab branded-term capitalization, passive voice, weasel words.

Test plan

  • MR pipeline green (lint-templates + sim harness)
  • (Post-merge, manual) kaniko @v2.2.0 smoke shows vale's previously-painful findings (FrontMatter/InternalLink*/Spelling) drop, while a deliberate airgapped insertion in kaniko README is flagged by Substitutions

Merge request reports

Loading