Red Stet
← Back to Help
Help · For self-directed writers · Consistency layer

The Consistency layer

Red Stet's in-doc style guide. Load a preset (Chicago, AP, APA, MLA) or write your own rules, then run a pass. The pass flags every span where the prose disagrees with itself or with your rules. Flags land as strikethrough-and-caret marks attributed to a synthetic "Style Guide" author, and you work them in the same review panel as any other editorial note.

Not a grammar checker. It won't tell you a sentence is "bad." It tells you the manuscript used e-mail on page 4 and email on page 47, and asks which you meant.

What Consistency does

Any long manuscript spells the same word two ways: "OK" and "okay," em dashes spaced on one page and unspaced on the next, the serial comma 80% of the time. Consistency finds the drift and flags it.

Open the Style Guide panel on the right, load a preset or define your own decisions, click Run consistency pass. Red Stet reads the prose, compares it against your decisions, and stamps a mark on every span that disagrees. Each mark shows the offending text struck through with the suggested replacement floating above.

Work the marks like any other editorial pass: accept, reject, comment.

An editorial pass, not a live linter. Consistency runs on demand. Re-run after edits; the prior pass's marks get replaced, not stacked.

Consistency vs. "correctness"

A grammar checker tells you a sentence is wrong. Consistency tells you a sentence is inconsistent with the rest of your work. It won't warn you about passive voice, fragments, comma splices, or "weak verbs."

It checks one thing: whether you made a decision and stuck to it. Chose curly quotes — it flags the straight ones. Omit the serial comma — it flags the one that slipped in on page 12.

If a rule feels wrong for this passage, ignore it. Reject the mark, comment on it, or delete the decision. The pass respects the change next time.

The shipped style presets chicago · ap · apa · mla

Four presets ship today. Each is a short list of decisions that style gives a canonical answer to — serial comma, em-dash spacing, smart vs. straight quotes, headline case, a few hyphenation calls. A starting point, not the full 600-page manual.

  • Chicago — US trade-book default. Fiction, narrative nonfiction, memoir, scholarly books. Serial comma, unspaced em-dashes, curly quotes, title case. Load this for anything book-shaped unless your publisher says otherwise.
  • AP — newsroom / journalism / press releases / marketing copy. No serial comma, spaced em-dashes, sentence-case headlines, periods in U.S.
  • APA 7th — academic writing in psychology, education, social sciences, business / health. Serial comma, unspaced em-dashes, title case for Level 1–3 headings.
  • MLA — humanities. Literary analysis, English papers, essays on literature, film, cultural studies. Closer to Chicago than AP, with title case for work titles and headings.

Two ways to load: Add appends on top of what's there (for mixing), Replace wipes the prior preset and reloads. User-added decisions are never touched.

The eight flag categories

Every decision and every mark belongs to one of eight categories. When the pass detects an inconsistency, it asks the Style Guide whether you've decided anything in that category, then applies your preference or queues the question as pending.

  • hyphenationemail vs. e-mail, well-known vs. well known, compound modifiers before a noun.
  • capitalization — title case vs. sentence case in headings; proper-noun edge cases.
  • abbreviationU.S. vs. US, italics on e.g., numerals vs. spelled-out numbers.
  • dash — em-dash spacing, em vs. en, hyphen vs. dash.
  • quote — curly ("") vs. straight ("").
  • serial-comma — Oxford comma in a series of three or more.
  • spelling-variant — British vs. American doubles like colour / color, traveller / traveler.
  • house-style — the catch-all. Anything LanguageTool surfaces that doesn't map cleanly to the seven above lands here, so the pass never silently drops a finding.

The category appears at the top of every decision row and on every mark in the doc. Search by category name, or filter by status (Decided / Pending) to triage what's left to answer.

Decisions are editable

A Decision is one row: a question, variants, the variant you preferred (if any). Loading Chicago gives you "Use the serial (Oxford) comma?" with variants use / omit and a preset preference of use. Click omit to override Chicago for this manuscript. Click use to toggle back. Click the active variant a second time to make the Decision pending (no preference).

Delete any Decision — preset or user-added — with the Delete button. The pass stops caring about that category from that source; a user-added Decision in the same category takes over.

Each Decision has a category, question, variants[], and preferred string (or null for pending).

The dirty flag. Change a Decision and the panel marks the Style Guide dirty — the doc's marks no longer reflect your decisions. Closing the panel prompts: run a pass now? Decline and the flag stays set until you do.

Running a pass

One entry point: the Run consistency pass button at the bottom of the panel. Click, wait a second or two, three numbers come back: marks (gutter flags from decided rules), pending (new questions queued because no Decision matched), and total findings.

The pass is idempotent. Every Style Guide mark from the prior pass is dropped before new ones are stamped. Run it as many times as you want; the doc reflects the most recent pass.

Requires being signed in (the engine runs server-side through a Convex action) and an open document with prose. An empty doc returns instantly with zero findings. Write mode blocks the pass entirely — see below.

The Style Guide panel

Slides in from the right and stays open while you work. Top to bottom:

  • Header — title and close button. Esc also closes.
  • Toolbar — "Load preset" disclosure for the four presets, a search box, and a status filter (All / Decided / Pending). Search matches question text, notes, and category name.
  • Decisions list — every Decision as a row with its question, source label (from chicago, from consistency pass, or added by you), variants as toggle buttons, and a Delete button.
  • Footer — a one-line summary ("14 decisions · 2 pending · last pass 3m ago"), Export, Import, and the primary Run-consistency-pass action.

Shares a tab strip with the Editorial Memo panel — one click between them without losing scroll position.

Pending decisions

When the pass finds an inconsistency in a category you haven't decided, it doesn't stamp a mark — it appends a pending Decision and waits. The row has a dashed red border, a Pending pill, source from consistency pass, and variants pre-filled from what the engine saw in your prose.

The first pass on a fresh manuscript with no preset returns a list ready to answer: curly or straight quotes? Em-dashes spaced? Spell out under ten or numerals throughout?

Answer a pending Decision, run the pass again, and the questions become marks.

You don't have to answer. A pending Decision does no harm sitting in the panel — the abbreviation question may not matter for this manuscript. Delete the row to dismiss it; the pass won't re-raise it unless the prose changes.

Reading a flag in the gutter

A flag uses the same vocabulary as a human editor's correction: strikethrough on the offending span, the suggested replacement floating above it with a caret. An author orb — a small colored dot derived from the synthetic Style Guide author name — marks it as coming from the pass rather than an editor or co-author.

Click the mark and the standard review panel opens. The card shows the original, the suggested replacement, the category (hyphenation, quote, etc.), the LanguageTool rule's message, and three actions:

  • Apply — accept the change. Strikethrough and replacement collapse into corrected text.
  • Reject — keep the original. The mark vanishes; the next pass respects the rejection if the rule still applies.
  • Comment — note without resolving. Flag the spot for later.

Three or more adjacent marks sharing a category (a stretch of dash-spacing flags, say) get an Accept all / Reject all banner so you can clear them in one click.

Why it's disabled in Write mode

Red Stet has three modes — Write, Edit, Read. Write keeps the page silent: no marks, no comments, no panels, no flags. Running the pass in Write throws an error; there's no UI to invoke it from inside Write. Enforced at the engine layer, not just the UI.

To run a pass, switch to Edit or Read. Both expose the Style Guide panel. Drop back into Write to draft again.

Exporting + importing a Style Guide

The Decisions list is portable. Export in the footer downloads a JSON file named and dated: my-novel.styleguide.2026-06-02.json. Small and human-readable: Decisions only, no manuscript text, no pass IDs. Safe to email, commit, or share.

Import reverses it: open another manuscript, click Import, pick the JSON, and the Decisions land with fresh local IDs. Import merges — never wipes — and arrives with the dirty flag set, so run a pass after.

Use it for a multi-book series, a team sharing a house style, or a publisher distributing a standard guide.

Pass-detected decisions get re-sourced on export. A Decision originally surfaced by the engine exports as user-added — pass IDs only mean something against the manuscript that produced them. The preference, variants, and question carry over intact.

For teachers: class-wide presets

The classroom side uses the same Consistency engine. If you're a student in a Red Stet class, your teacher can preload the Decisions.

A teacher sets a default style preset on a classroom (Chicago / AP / APA / MLA / none), overridable per-assignment. When a student opens an assigned doc, Red Stet checks the assignment's preset and auto-applies it to the doc's Style Guide on first open — once. After that, the student edits Decisions like any writer.

Auto-apply is idempotent: toggling the preset on and off doesn't re-inject. The cache key lives on the local doc annotation — once per (doc, assignment) tuple.

For the teacher-side mechanics — setting the preset in the New Assignment form, class-wide defaults flowing into new assignments — see Creating an assignment.

Performance + privacy consistency.runPass

The engine is LanguageTool, run server-side through a Convex action — not in your browser. You need to be signed in and online.

Per pass: Red Stet builds a flat prose string from the rendered blocks, sends it to a Convex action, the action forwards it to LanguageTool, LanguageTool returns matches. The front-end maps each match to a category, finds the governing Decision (or queues a pending one), and stamps marks. Round-trip under two seconds for a chapter.

Privacy

Red Stet forwards your manuscript text to LanguageTool for analysis. Red Stet's logs record only a checksum and the shape of the response — never the prose. LanguageTool's retention policy governs what it keeps on its side. See What gets recorded.

If the manuscript can't leave your machine, don't run a pass. Privileged, embargoed, or contractually restricted work shouldn't go to LanguageTool. The panel works without ever clicking Run — decide rules, export them, apply by hand.

Related

Missing something? Email feedback.