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 withvocab: false(Spelling.yml:11), which silently ignores a project-sideVocab/<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: projectby 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.0smoke shows vale's previously-painful findings (FrontMatter/InternalLink*/Spelling) drop, while a deliberateairgappedinsertion in kaniko README is flagged by Substitutions