A Claude Code plugin that stops agents rewriting your words, and keeps the rest true.
The reason I started this was not a thing I want paraphrased. It took me four attempts and a walk to find the sentence.
Every word of that paragraph is mine, and no agent gets to improve it.
Ramp casts are 47% of what you press before a spike. That figure came from a query this morning, and it will be right again tomorrow without anyone remembering to check.
stet /stet/ proofreader's mark: let it stand. Ignore the correction.
The problem
A sentence and a half doing the work of a sentence. A preamble before every list. You spend longer unwinding it than writing would have taken, and that time comes out of the work only you can do.
The paragraph you laboured over comes back improved. You did not ask. You asked for a redesign, or a fix three files away, and your words were collateral.
A sentence quotes a number that moved three weeks ago. Nothing in the file says where the number came from, so nothing noticed, and the page states it with a straight face.
The model
An agent's draft belongs to the agent until a person reads it and accepts it. Nothing else transfers ownership: not time, not the writing being good, not the agent having written every word of it.
Ownership is per sentence, not per file. Correct one line on the proof sheet and that line becomes yours: the paragraph around it stays the agent's to improve. Sentences are stored by their own words rather than by position, so yours survive everything around them moving, and lapse the moment the words themselves change. You own what you wrote.
Policy sits alongside it and says what may still be done to closed content. authored
plus refresh is the combination the whole thing exists to make sayable: these are
my words, and I want the numbers in them kept true. Change the figure. Leave the sentence.
--- stet: state: authored policy: refresh sources: [corpus.rampShare] --- Ramp casts are 47% of what you press before a spike.
Enforcement
Every other part of this is an instruction, and instructions are advice. Advice loses. A PreToolUse hook reads the state before any edit and denies the ones that are not the agent's to make.
VOICE.md is authored. You may not edit it. A person wrote this. Do not edit it and do not regenerate it. You may propose a rewrite in your reply. Show it to the author. Do not put it in the file.
Three boundaries keep it out of the way. A project with no config is not using Stet and the hook has no opinion. Only declared content paths count, so code passes through. A file that does not exist yet is new, which is a draft, which is allowed.
Voice
Ownership stops your words being changed. It does nothing about the words an agent adds, and that is the half people actually notice. Readers told a headline was AI-generated rated it less accurate and were less willing to share it, whether or not the headline was true and whether or not a machine wrote it. The penalty attaches to how prose reads, so writing that merely sounds generated pays it with no label attached.
So Stet ships a library of registers, and none of them is a description of how a kind of writing feels. Each was counted off the real texts, and each carries the specific ways an imitation of it gives itself away. Orwell fails modern plain-language guidance inside his own manifesto, at a mean sentence of 25.9 words. Chandler's famous simile appears once every 545 words, which is roughly forty times rarer than pastiche runs it. Those are the parts you cannot get by describing the style to yourself.
Four ways to have one: pick a preset, describe your own in a sentence, point at writing you already did, or let it read the project and derive the house voice from what is there.
Commands
For a project that already has writing, the order is ingest, init,
voice, ia. Read it before you describe it.
Reads everything there, claims all of it for you, and reports what it found: the inventory, how it sounds, and every claim that will go stale.
What this is, who reads it, and what it must never be. The last one is the answer nobody volunteers and the one worth most.
Derives the house voice from writing you already did, because nobody can describe their own. Rules with your sentences as examples, and a counter-example for each.
What exists, what job each page does, and the rules for where the next one goes. Without those rules every new page is a fresh argument.
Whose words these are. Only the author approves; the agent records it.
Stale claims, figures typed by hand, orphaned pages, voice breaks. Then check each claim against its real source and bring current only what policy allows.
Install
/plugin marketplace add owllight-studio/stet /plugin install stet@stet
The Establish group, the authorship model and the hook are built. Everything else is designed
and not written yet. Stet's own content is marked draft rather than
approved, because its author has directed it and not yet read it line by line,
and marking it approved would be the exact failure the model exists to prevent.