Fix Vale false positives on context lines in PR diffs#181
Merged
Conversation
Keep the Vale PR comment stable by updating it in place and skipping no-op updates when the rendered report is unchanged. Co-authored-by: OpenAI GPT-5.5 <noreply@openai.com> Co-authored-by: Cursor <cursoragent@cursor.com>
The line-range filter was extracting hunk headers (@@ -x,y +a,b @@) and treating the entire hunk span as "modified." Context lines within a hunk (e.g. mapped_pages at line 3 when only a description was added at line 2) were wrongly flagged. Fix: walk the full patch per-file and record only actual '+' lines, one entry per added line. Change the Python filter to exclusive upper bound (start <= line < end) so a count=1 entry for line N matches exactly N. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Elastic Docs Style Checker (Vale)Summary: 21 warnings, 19 suggestions found
|
| File | Line | Rule | Message |
|---|---|---|---|
| vale/test-fixtures/sample-violations.md | 2 | Elastic.MappedPages | mapped_pages should only be added or updated in rare scenarios. Talk with your local technical writer before pushing changes to this key. |
| vale/test-fixtures/sample-violations.md | 6 | Elastic.Articles | Use 'an FAQ' instead of 'a FAQ'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 6 | Elastic.Articles | Use 'an HTML' instead of 'a HTML'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 6 | Elastic.Articles | Use 'an SQL' instead of 'a SQL'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 6 | Elastic.Articles | Use 'an HTML' instead of 'a HTML'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 7 | Elastic.BritishSpellings | Use American English spelling 'optimize' instead of British English 'optimise'. |
| vale/test-fixtures/sample-violations.md | 7 | Elastic.BritishSpellings | Use American English spelling 'customize' instead of British English 'customise'. |
| vale/test-fixtures/sample-violations.md | 7 | Elastic.BritishSpellings | Use American English spelling 'behavior' instead of British English 'behaviour'. |
| vale/test-fixtures/sample-violations.md | 11 | Elastic.DontUse | Don't use 'just'. |
| vale/test-fixtures/sample-violations.md | 11 | Elastic.DontUse | Don't use 'please'. |
| vale/test-fixtures/sample-violations.md | 11 | Elastic.DontUse | Don't use 'aka'. |
| vale/test-fixtures/sample-violations.md | 20 | Elastic.Articles | Use 'an FAQ' instead of 'a FAQ'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 20 | Elastic.Articles | Use 'an HTML' instead of 'a HTML'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 20 | Elastic.Articles | Use 'an SQL' instead of 'a SQL'. The article depends on pronunciation, not spelling. |
| vale/test-fixtures/sample-violations.md | 24 | Elastic.BritishSpellings | Use American English spelling 'optimize' instead of British English 'optimise'. |
| vale/test-fixtures/sample-violations.md | 24 | Elastic.BritishSpellings | Use American English spelling 'customize' instead of British English 'customise'. |
| vale/test-fixtures/sample-violations.md | 24 | Elastic.BritishSpellings | Use American English spelling 'behavior' instead of British English 'behaviour'. |
| vale/test-fixtures/sample-violations.md | 40 | Elastic.DontUse | Don't use 'just'. |
| vale/test-fixtures/sample-violations.md | 40 | Elastic.DontUse | Don't use 'please'. |
| vale/test-fixtures/sample-violations.md | 40 | Elastic.DontUse | Don't use 'aka'. |
| vale/test-fixtures/sample-violations.md | 48 | Elastic.Articles | Use 'an HTML' instead of 'a HTML'. The article depends on pronunciation, not spelling. |
💡 Suggestions (19): Optional style improvements. Apply when helpful.
| File | Line | Rule | Message |
|---|---|---|---|
| vale/test-fixtures/sample-violations.md | 8 | Elastic.WordChoice | Consider using 'efficiently' instead of 'Simply', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 8 | Elastic.WordChoice | Consider using 'allowlist' instead of 'whitelist', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 8 | Elastic.WordChoice | Consider using 'blocklist' instead of 'blacklist', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 9 | Elastic.OxfordComma | Use the Oxford comma in 'reading, writing and executing.'. |
| vale/test-fixtures/sample-violations.md | 10 | Elastic.Wordiness | Consider using 'to' instead of 'In order to'. |
| vale/test-fixtures/sample-violations.md | 10 | Elastic.Wordiness | Consider using 'because' instead of 'due to the fact that'. |
| vale/test-fixtures/sample-violations.md | 10 | Elastic.Wordiness | Consider using 'many' instead of 'a large number of'. |
| vale/test-fixtures/sample-violations.md | 12 | Elastic.Exclamation | Use exclamation points sparingly. Consider removing the exclamation point. |
| vale/test-fixtures/sample-violations.md | 12 | Elastic.Exclamation | Use exclamation points sparingly. Consider removing the exclamation point. |
| vale/test-fixtures/sample-violations.md | 28 | Elastic.WordChoice | Consider using 'efficiently' instead of 'Simply', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 28 | Elastic.WordChoice | Consider using 'allowlist' instead of 'whitelist', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 28 | Elastic.WordChoice | Consider using 'blocklist' instead of 'blacklist', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 28 | Elastic.WordChoice | Consider using 'efficient' instead of 'easy', unless the term is in the UI. |
| vale/test-fixtures/sample-violations.md | 32 | Elastic.OxfordComma | Use the Oxford comma in 'reading, writing and executing.'. |
| vale/test-fixtures/sample-violations.md | 36 | Elastic.Wordiness | Consider using 'to' instead of 'In order to'. |
| vale/test-fixtures/sample-violations.md | 36 | Elastic.Wordiness | Consider using 'because' instead of 'due to the fact that'. |
| vale/test-fixtures/sample-violations.md | 36 | Elastic.Wordiness | Consider using 'many' instead of 'a large number of'. |
| vale/test-fixtures/sample-violations.md | 44 | Elastic.Exclamation | Use exclamation points sparingly. Consider removing the exclamation point. |
| vale/test-fixtures/sample-violations.md | 44 | Elastic.Exclamation | Use exclamation points sparingly. Consider removing the exclamation point. |
The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale.
reakaleek
approved these changes
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@@ -x,y +a,b @@) and treated the entire hunk span as "modified." Any Vale issue on a context line within the hunk was wrongly reported.MappedPagesfalse positives) and elastic/docs-content#6664 (MenuArrowsBoldon an unmodified line).Example: a file with
mapped_pages:at line 3. Adescription:field is added at line 2, producing a hunk@@ -1,4 +1,5 @@(range 1–6). The old filter saw line 3 as in-range; the new one does not.Changes
vale/lint/action.yml— replace hunk-header extraction with a full patch walk that records only+(added) lines, one entry per line.vale/lint/vale_reporter.py— change the range check fromstart <= line_num <= endtostart <= line_num < end(exclusive upper bound) so acount=1entry for line N matches exactly N.Test plan
pytest vale/lint/test_vale_reporter.py— 17 passed)MappedPageswarnings are goneMenuArrowsBoldwarning is gone🤖 Generated with Claude Code