🏗️🔧:make the prose linting pipeline actually run - #1793
Open
DerekNonGeneric wants to merge 1 commit into
Open
Conversation
The retext half of remark has never done anything. `retext-repeated- words` did not flag `has has`; `retext-simplify` did not flag `utilize`. remark-lint rules worked throughout, so the markdown linting looked healthy and the natural-language layer beneath it was inert. Plugins were being passed as module namespace objects rather than functions. remark-lint tolerates that; remark-retext does not, and it declined to attach rather than complaining. Forcing it surfaces the real failure, `attacher.call is not a function`, so every plugin in the pipeline is now unwrapped. Switching it on reported 3183 messages, which needed a pass before any of this could be enforced: - retext-spell accounted for 3034 of them and duplicates cspell, which already runs in this task, already passes, and reads the very same project-terms.txt — except it also has software and lorem-ipsum dictionaries, which is why it knows `npm` and `habitasse` and retext-spell does not. Removed, along with dictionary-en and the strip-comments read of the word list that fed it. - The ten lorem ipsum posts are Latin filler, so the natural-language rules have nothing to say about them. Ignored, with remark told to --silently-ignore, since this task passes filenames explicitly and remark errors on named files it has been told to skip. - retext-simplify's word swaps mostly read worse in technical prose — it wanted `at once` for `immediately`, and flagged `aggregate`, which is a word from our own tagline. Those are ignored; wordiness the house style tolerates is ignored by phrase alongside them. - retext-readability is set for a professional audience. The strictest setting our prose clears is pinned by a Creative Commons attribution line, which is boilerplate rather than something to rewrite. - retext-passive is a house-style choice we are not making. Removed. The two remaining repeated-word reports were `**--bucket** bucket`, where the placeholder after a flag reads as a repeat. Marking those as code says what they are and settles it. Also drops a second registration of retext-syntax-urls, which cost nothing while the pipeline was inert. The pipeline still reports repeated words, hard sentences, and word swaps outside the ignore list. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
✅ Deploy Preview for gh-pages-openinf ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.
The retext half of remark has never done anything.
retext-repeated-wordsdid not flaghas has;retext-simplifydid not flagutilize.remark-lintrules worked throughout, so the markdown linting looked healthy while the natural-language layer beneath it was inert.The bug
Plugins were passed as module namespace objects rather than functions.
remark-linttolerates that;remark-retextdoes not — and it declined to attach rather than complaining. Forcing it surfaces the real failure:Every plugin in the pipeline is now unwrapped with
.default.Switching it on reported 3,183 messages
Which needed a pass before any of this could be enforced:
retext-spellretext-simplifyword swapsretext-simplifywordinessretext-readabilityretext-passiveretext-repeated-wordsretext-spellwas the big one, and it was redundant. cspell already runs in this same task, already passes, and reads the very sameproject-terms.txt— but it also carries software and lorem-ipsum dictionaries, which is why it knowsnpmandhabitassewhere retext-spell reports them as unknown. Keeping both would mean hand-maintaining every technical term twice. Removed, withdictionary-enand thestrip-commentsread of the word list that fed it.The lorem ipsum posts are placeholder Latin, so the natural-language rules have nothing useful to say about them. They are in
.remarkignorenow, and remark is invoked with--silently-ignorebecause this task passes filenames explicitly and remark treats a named-but-ignored file as an error.retext-simplifywantedat onceforimmediately, and flaggedaggregate— a word from the project's own tagline. Those swaps are ignored, along with the wordiness the house style tolerates. Worth noting for future edits:ignorematches the phrase text, not the rule id the reporter prints, so multi-word entries keep their spaces ('there is', not'there-is').retext-readabilityis set for a professional audience. The strictest setting our prose clears is pinned by a Creative Commons attribution line — boilerplate, not something to rewrite.The two repeated-word reports were real markup smells:
**--bucket** bucket is required.reads the placeholder after a flag as a repeat. Marking placeholders as code says what they are and settles it.It is tuned, not silenced
The point of tuning rather than disabling is that the pipeline still has to catch things. It does:
verify.allpasses, andformat.allleaves the tree clean.Note
Also drops a second registration of
retext-syntax-urls, which cost nothing while the pipeline was inert.Part of #254 —
retext-spell,dictionary-en,retext-passive, andstrip-comments(abandoned since 2019) all leavedevDependenciesas a consequence, rather than because they were unused.List of any relevant issue numbers: #254