Line V · Evaluate

The half that needs no model

Stet is a plugin for Claude Code, and half of it never needs the model at all. Is this word spelled two ways across your project. Does this figure still match the command that produced it. Was this paper retracted.

Nobody has to read anything to answer those. Twenty-five commands ship as a CLI with no dependencies. They run in your build. A build that fails does not ship.

stet sums, run on this repository
8 relations across 69 files.

8 consistent, 0 wrong, 0 worth a look
NOT CHECKED  2 relations inside quotation
             marks, 1 on a marked line

Every command tells you what it skipped. Say nothing and a person reads it as nothing to do, which is a different thing and not true.

One

What each one catches

Ten of them are the checks. The other fifteen are what the checks stand on: what content exists, who owns it, what the style sheet decided, what to set on a file. One of the fifteen is refresh. It changes a stale figure and leaves every other word alone.

Every one was run over this repository and tuned until it stopped crying wolf. A check that fires on work you got right is a check you switch off. Then it protects nothing.

stet help <command> prints the full reference for any of them.

CommandThe thing it catches
checkYour product name spelled two ways across forty files
auditThe sweep, ranked by what it costs you
verifyA number you typed by hand where a source was declared
sumsParts that do not make their total, and statistics that disagree with their own p-values
citeA citation to a withdrawn paper, or to a preprint since published
standingA URL that still resolves and no longer says what you cited it for
tellsEm dashes, the “not X, it is Y” turn, preambles, summaries of the paragraph above
measureDrift against the figures in your own voice file
critiqueA scored review where every score is computed, and the four it cannot compute are named
doctorA file you marked as content that no glob actually covers
Two

Why this is worth a build step

Somebody counted all four of these, and none of them is about your website. They are about journals, because journals are where anyone bothered to count. Your pages rot the same way.

Does any of that reach a pricing page? The link row does. A URL that still returns 200 has not necessarily kept the sentence you cited it for. The page looks fine. Nothing on it says the paragraph you quoted came out two years ago. That is the same failure as a product name spelled two ways across forty files, and the same reason nobody notices.

So standing writes down what a source said the first time you cited it, and tells you what has changed since.

FigureOf whatSource
76.35% References whose content had drifted, 184,065 of 241,091 Jones and others, PLOS ONE, 2016. 10.1371/journal.pone.0167475
70%+ URLs across three Harvard law journals no longer reaching the material, and 50 percent in Supreme Court opinions Zittrain, Albert and Lessig, Harvard Law Review Forum, 2014. Perma
49.6% Psychology papers reporting a null-hypothesis test that carry a p-value inconsistent with its own test statistic, 8,273 of 16,695 Nuijten and others, Behavior Research Methods, 2015. 10.3758/s13428-015-0664-2
5.4% Post-retraction citation contexts that acknowledge the retraction, 722 of 13,252 Hsiao and Schneider, Quantitative Science Studies, 2021. 10.1162/qss_a_00155
Three

Running it

What does it cost to set up? One file. stet.config.json says which files are your words. It can also say where a figure comes from, which is a shell command.

Stet touches your words and nothing else. No components, no routing, no CSS. Put it on Next, Astro, Hugo or a folder of Markdown and it behaves the same, and the checks that need no network never open one.

In a build
# the sweep, ranked by what it costs you
stet audit

# or pick the ones you care about
stet check && stet sums && stet standing

# one file, against your own voice
stet measure docs/pricing.md

The CLI ships inside the plugin, and node bin/stet.mjs from a clone works the same.