Editing texts with a neural network: proofreading, style and cutting

Different kinds of editing need different prompts. Wording for proofreading, style and cutting, how to get edits with explanations and how not to lose the author's voice.

5 min · · development · автоматизация

An AI model edits texts well when you tell it exactly which kind of editing you need. A request like "improve the text" returns a rewritten paragraph in which only the topic is left of the author. A request like "fix spelling and punctuation, rewrite nothing, list your edits" gives you what you wanted. Below: how the kinds of editing differ, ready prompts for each, how to get edits with explanations, how to keep the author's voice and how to run a large document through the model.

Four kinds of editing that should not be mixed

KindWhat changesWhat must not change
Proofreadingspelling, punctuation, typos, agreementwords, order, meaning
Style editingrepetition, officialese, heavy phrasingfacts, structure, terminology
Cuttingtext lengthkey facts and figures
Content editinglogic, order, gapsthe author's position

Ask for one kind per pass. If you need both to fix errors and to cut, do two passes: cutting first, proofreading second, otherwise new errors appear in already proofread text.

Prompts for different kinds of editing

Proofreading

bash
You are a proofreader. Fix only spelling, punctuation, typos and agreement errors.
Do not replace words with synonyms, change word order or rewrite sentences.
Return: 1) the corrected text; 2) a list of edits as "was → became (reason)".
If there are no errors, say so.

Style editing

bash
Edit the style: remove repetition, officialese and clumsy phrasing.
Keep facts, figures, names, terms and paragraph order. Do not add new facts.
Change only what really hurts readability. Return the text and a list of at most
ten of the most significant edits with reasons.

Cutting

bash
Cut the text by about a third, keeping all figures, names, dates and conclusions.
Remove filler words, repetition and examples that duplicate each other.
Do not change the tone and do not insert your own wording where deletion is enough.
Return the shortened text and list exactly what you removed.

Simplifying for the reader

bash
Rewrite for a reader without special background: short sentences, explain terms
in brackets on first use. Do not change facts or figures.

All the prompts share three elements: a role, a ban on the unwanted ("do not rewrite", "do not add facts") and a result format. For more on building such instructions, see the article on system prompts.

How to get edits with explanations

To see what exactly the model changed, ask for a list of edits next to the text. A "was → became → reason" table is convenient: it is easy to scan, and you accept or reject each edit. It helps to ask the model to mark places it is unsure about: "if in doubt, do not edit, write the question at the end".

For automatic processing, ask for JSON with a list of edits: fields before, after, reason.

Whatever the format, compare the result with the original programmatically. A model can silently rewrite what you did not ask for, and the list of edits will not mention it. A simple way is a line diff:

bash
import difflib

before = open("original.txt", encoding="utf-8").read().splitlines()
after = open("edited.txt", encoding="utf-8").read().splitlines()

for line in difflib.unified_diff(before, after, "original", "edited", lineterm=""):
    print(line)

For review in a browser difflib has HtmlDiff().make_file(before, after), which produces an HTML page with the differences highlighted.

How not to lose the author's voice

The main complaint about AI editing is that the text becomes "smooth" and faceless. These techniques work.

  1. Give a sample. Paste 2 or 3 paragraphs of your own text that you like and write: "Keep the intonation and sentence length as in the sample". An example in the request often conveys style more precisely than a description (few-shot prompting).
  2. Limit the amount of intervention. "No more than five edits per paragraph", "edit only what hurts".
  3. Forbid replacing words you chose deliberately. Make a "do not touch" list: signature terms, names, slang.
  4. Choose proofreading, not style editing, if you are generally happy with the text.
  5. Accept edits selectively. That is exactly what the "was → became" list is for.

Long documents

If the document is large, do not send it in one piece with "fix everything". In a long piece it is easier to miss an error and harder to check whether the model cut something on its own initiative. Split it into sections by paragraphs and process them one by one, passing the same prompt in each call:

bash
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")

PROMPT = """You are a proofreader. Fix only spelling, punctuation and typos.
Do not change words or order. Return only the corrected text with no comments."""


def proofread(chunk: str) -> str:
    resp = client.chat.completions.create(
        model="claude-sonnet-5-5",
        messages=[
            {"role": "system", "content": PROMPT},
            {"role": "user", "content": chunk},

The temperature parameter is deliberately left out: newer Claude models may reject non-default temperature values, so a strict prompt matters more for proofreading. Then compare article_edited.txt with the original using the diff above.

Keep in mind: with fragment-by-fragment processing the model does not see the rest of the text, so check agreement between paragraphs and terms used throughout separately. For a whole-text content edit the window is enough: models in the catalogue have 1M tokens (GLM 128K).

What it costs

Assume a text of 10,000 words. Assumption: Russian text takes about 30,000 tokens (for Claude models the real number comes from count_tokens; why Russian is counted differently is explained in a separate article). Model output with the list of edits: 35,000 tokens. Zukko prices as of October 18, 2026, $ per 1M tokens. Formula: 0.03 × input price + 0.035 × output price (the system prompt is ignored).

ModelInput / outputCalculationTotal, $
deepseek-v4.1-flash0.013 / 0.0380.03 × 0.013 + 0.035 × 0.038 = 0.00039 + 0.001330.0017
gpt-6.1-sol0.27 / 1.320.03 × 0.27 + 0.035 × 1.32 = 0.0081 + 0.04620.054
claude-sonnet-5-50.4 / 20.03 × 0.4 + 0.035 × 2 = 0.012 + 0.070.082

Editing a dozen documents of this size costs fractions of a dollar, so the choice of model here is determined more by quality on your style than by price. We do not claim which model edits better: take one paragraph with known errors, run it through two or three models and see how many errors were found and how much extra was changed. Current prices are available via GET https://api.zukko.pro/v1/models.

What to watch for

  • Invented facts. When cutting and "improving", a model may insert a figure or wording that was not there. Check numbers, names and quotes against the original.
  • Missed errors. The model does not guarantee it found everything; important texts need a human proofreader.
  • Confidentiality. Do not send contracts and personal data in a request without need, and replace personal data with labels before sending.
  • Case and language. If the text contains English inserts or code, tell the model explicitly not to touch them.

FAQ

Which neural network is best for checking texts?

There is no single answer and we do not name a "best". Take a paragraph with known errors and test two or three models from the catalogue; look at how many errors were found and how much extra was changed.

Can I use AI instead of a proofreader?

As a first pass yes, as the only one no. A model can miss an error or change what should not be changed, so important texts are read by a person and edits are compared with the original.

How do I keep my style when editing?

Give a sample of your text, limit the amount of intervention ("proofreading only") and ask for a list of edits so you can accept them selectively.

How do I pay for access from Russia?

Through the gateway: SBP (the payment page adds an 8.5% fee on top), MasterCard or cryptocurrency. There is no subscription, you pay for tokens.

To try it, create a key in the Zukko dashboard and run the script above on a small file.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

AI for editing texts: prompts that keep your voice · Zukko