Drafts a post per channel, marks the AI tells with a linter I published, revises until clean, and holds for a human to send.
Every team ships AI-written content now, and it all carries the same tells: the em dash, the thrilled-to-announce opener, the triple adjective stack. Readers spot it in three words. A generator alone cannot fix this, because asking a model to grade its own copy for slop is asking the thing that produced the tell to catch it.
House style stated up front means the first draft is usually clean already, which is good engineering and also a measurement problem: a revise loop that never runs proves nothing. The build had to show the loop firing on real output, not just carry one in the code.
Founders and marketers who write with AI but refuse to sound like it.
Teams hiring someone to automate content and still keep a hand on what goes out.
The critic is not galley's own judgment. It imports off-default, a linter I published separately, and treats any non-zero score as a rejection. A model grading its own writing for slop is the fox minding the henhouse. A separate deterministic gate, versioned on its own, is a check the generator cannot talk its way past.
The two tells the critic misses, an inline emoji and an antithesis split across two sentences, are line-scoped gaps in off-default. I kept them in the eval as labeled misses rather than quietly passing them, and the next pass adds both rules upstream so every caller inherits the fix.