shipwithjev

Catalog / Content & growth

0133GitHub

Sniff Test

A prose linter for AI writing tells: regex rules plus Jev for judgment.

DanRWilloughby/snifftestREADME ↗
# Sniff Test

Does the draft pass the sniff test?

Sniff Test reads Markdown and plain text and checks it against your house
rules. It prints one line per flag with the file, the line, the rule that
tripped and how sure it is.

There are two kinds of rule. **Countable rules** are regular expressions.
Long dashes, a paragraph with three colons, a banned word, every sentence the
same length. They run on your machine, cost nothing and send nothing anywhere.
**Judgment rules** need something read rather than counted. A closing sentence
that only restates the paragraph, a claim hedged three times, a line that talks
the reader out of the offer. For those it sends one paragraph at a time to a
small hosted judgment model and gets back one probability per rule. It only
does that after you have said yes.

Two things it is not. There is no general model in the loop; the judgment
model returns one probability per question and nothing else. And it will not
rewrite your text. A flag is a sentence for you to fix.

```sh
npm install --global snifftest
snifftest check --dry-run draft.md
```

That runs the countable rules and nothing leaves your machine. To run the
judgment rules too, put a TypeSafe key in `TYPESAFE_API_KEY` and drop
`--dry-run`. The first time, it prints exactly what it is about to send and
where, and waits for your answer.

It exits 0 when nothing tripped, 1 when at least one rule did, 2 when the tool
could not do its job, and 3 when the judgment rules needed a yes and did not
get one.

The nose is the mascot. It is one hand-drawn SVG with six expressions, in
`assets/nose/`, and `snifftest serve` opens a local page where you type and the
nose reacts.

## Reading a flag

```
draft.md:14 dash_present 1.00 A long dash. Give the sentence a full stop instead.
draft.md:31 re

Also filed under Content & growth

harshil1712

github.com

Experimental Slidev controller that judges speech transcripts for slide completion, with deterministic checks and manual navigation.

GitHubContent & growth

SlidePilot

ChetasLua

github.com

Scores every sentence in a video and renders the result as an overlay.

GitHubContent & growth

jevmeter

Matthew Berman

@TheMattBerman

jev is INSANE. in 40 seconds it broke down 724 live ads from 37 brands. every hook. every format. offer. cta. awareness stage. landing page mismatch. used 9 cents of tokens. (will be avail in @stealads + mcp)

X postContent & growth

724 competitor ads, broken down

Ads
724 from 37 brands
Run time
~40 s
Cost
~$0.09