Thanks for posting that, @Scott_Sauyet. Damned useful! Here’s how my Writing Supervisor addresses it:
I see I have quite some work to do yet! 
EDIT – Moved here from Floating associated content beside main text - #26 by Scott_Sauyet
Thanks for posting that, @Scott_Sauyet. Damned useful! Here’s how my Writing Supervisor addresses it:
I see I have quite some work to do yet! 
EDIT – Moved here from Floating associated content beside main text - #26 by Scott_Sauyet
Oh, well it did catch a mistake in my text, too. “After all ‘discretion is the better part of valor’ were good words to live by,” should have a comma after “after all”; after all, after all is said and done, it is followed by a quotation.
.
I am only posting these to demonstrate that it’s a hard problem, especially if there’s no semantic analysis. I guess if it inspires people to improve their tools, that’s a good thing!
Is your Writing Supervisor something public?
Certainly is, but it’s a lot of fun, too.
Certainly is!
Certainly isn’t.
It’s all part of TiddlyBook which, one day, will be published – but I’m a long, l-o–n—g way from doing that. You’re welcome to the regex if it appeals to you. But even that’s a mountain of pain to maintain.
I’m also very Curious: what is your Writing Supervisor?
It’s 4.5 megatonnes of regex and a set of search macros that runs the regexes against live tiddlers offering “advice” when it finds matches. For example:
something,stupid, it highlights the text and tells me there is no space following the commasomething like this.. it tells me it found dot-dotIn Scott’s text, as you can see, it’s overly zealous. For my writings, it works fine. What I really need is a way to relax a rule (or rules) on a paragraph-by-paragraph basis, which would make it work more like a linter. But, you know, no time 
I’d be very curious about this package.
Funny thing, in some ways your approach seems redundant against all the high-end writing-check tools out there (grammarly, Word’s inline proofreading tools), but these are now way too pushy with their LLM-based “corrections” … So a more nuts-and-bolts pattern check may be just the thing to add to my interface for students to check their typed text for those low-level glitches.

You said it.
I can parcel up the relevant tiddlers but I’m sure the task of aligning them outside of my code will not be trivial (or quick).
Looks great already
TT