Repository navigation
Lint MDX pages with Vale - #2544
Merged
Merged
Conversation
The only rule section matched `*.markerb` and `*md`, so no `.mdx` page has been linted since the cutover. Vale ran on every docs PR and found nothing to apply rules to. Fly.Spelling stays off until the vocabulary covers these pages. It is 663 of the 764 alerts the fix surfaces, and the words are overwhelmingly product and tool names rather than mistakes.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
This was referenced Oct 9, 2026
Closed
This was referenced Oct 20, 2026
kcmartin
added a commit
that referenced
this pull request
Oct 21, 2026
tj-actions/changed-files emits a space-separated list, and the step told
vale-action the list was comma-separated. The action split on a comma that
was not there, so Vale received a single argument holding every path joined
by spaces. Vale answers an unmatched path with an empty result and exit 0,
so the check has reported nothing at all.
Reproduced both ways with the same binary and config:
vale --output=JSON 'a.yml b.mdx' -> {}
vale --output=JSON a.yml b.mdx -> the findings in b.mdx
This predates the Mintlify migration, so the glob fix in #2544 was correct
and this was masking it. docs-tracking#375.
Keeps one 'utilize' fix on litefs/how-it-works so a prose file with a
remaining finding is in the diff and CI has something to report.
kcmartin
added a commit
that referenced
this pull request
Oct 21, 2026
* Debug the Vale CI run
Temporary: adds debug: true to the vale-action step so the job log shows how
Vale resolves .vale.ini and StylesPath in CI. Vale has returned {} on every
run since the glob fix in #2544 while finding issues locally, tracked in
docs-tracking#375.
Also fixes one 'utilize' on litefs/how-it-works so a prose file with a known
remaining finding is in the diff for Vale to be handed.
* Probe Vale's config resolution in CI
Temporary. The action's debug flag only logs its own inputs, so this runs
vale sync, ls-config and a direct lint in a plain step to see StylesPath,
the matched sections and the loaded styles as CI sees them.
* Extend the probe: run the action's exact args, and dump VALE env vars
* Probe the action's own vale binary after it runs
Same args and cwd give findings with a binary from errata-ai releases and {}
with the one the action installs, so compare the two directly: version, the
Fly checks each loads, and a direct lint.
* Test whether a wrong cwd explains the empty result
* Fix the separator so Vale is passed a file list it can read
tj-actions/changed-files emits a space-separated list, and the step told
vale-action the list was comma-separated. The action split on a comma that
was not there, so Vale received a single argument holding every path joined
by spaces. Vale answers an unmatched path with an empty result and exit 0,
so the check has reported nothing at all.
Reproduced both ways with the same binary and config:
vale --output=JSON 'a.yml b.mdx' -> {}
vale --output=JSON a.yml b.mdx -> the findings in b.mdx
This predates the Mintlify migration, so the glob fix in #2544 was correct
and this was masking it. docs-tracking#375.
Keeps one 'utilize' fix on litefs/how-it-works so a prose file with a
remaining finding is in the diff and CI has something to report.
* Correct the comment: it skipped multi-file PRs, not every PR
Kristin remembered Vale flagging things before the migration, which is right.
A one-file PR joins to a single valid path, so the check worked on those from
2023 and silently skipped anything larger. Kaelyn's #2217 last September is an
example: one file changed, and Vale reported on it.
This branch was successfully deployed
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.
.vale.inihas matched*.markerband*mdsince before the cutover, so no.mdxpage has been linted. Vale has been running on every PR and finding nothing to apply rules to.Checked with Vale 3.9.1 and this repo's own styles: byte-identical content in
probe.mdandprobe.mdxgave 1 alert and 0. With the two lines here, both give 1.Fly.Spellinggoes off in the same commit. It accounts for 663 of the 764 alerts the fix surfaces, and the words areredis,Ecto,tcp,Lua,rsyncand example identifiers likemypostgres, so it wants a vocabulary pass rather than page edits. With it off the repo reports 101 alerts across 74 pages, 76 of themFly.WordList.Nothing starts failing. The workflow sets
fail_on_error: false, so Vale annotates and does not block.sprites-docsis broken too, for an unrelated reason, and needs its own fix.