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
| Kind | What changes | What must not change |
|---|---|---|
| Proofreading | spelling, punctuation, typos, agreement | words, order, meaning |
| Style editing | repetition, officialese, heavy phrasing | facts, structure, terminology |
| Cutting | text length | key facts and figures |
| Content editing | logic, order, gaps | the 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
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
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
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
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:
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.
- 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).
- Limit the amount of intervention. "No more than five edits per paragraph", "edit only what hurts".
- Forbid replacing words you chose deliberately. Make a "do not touch" list: signature terms, names, slang.
- Choose proofreading, not style editing, if you are generally happy with the text.
- 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:
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).
| Model | Input / output | Calculation | Total, $ |
|---|---|---|---|
deepseek-v4.1-flash | 0.013 / 0.038 | 0.03 × 0.013 + 0.035 × 0.038 = 0.00039 + 0.00133 | 0.0017 |
gpt-6.1-sol | 0.27 / 1.32 | 0.03 × 0.27 + 0.035 × 1.32 = 0.0081 + 0.0462 | 0.054 |
claude-sonnet-5-5 | 0.4 / 2 | 0.03 × 0.4 + 0.035 × 2 = 0.012 + 0.07 | 0.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.
Related articles
- Translating subtitles with a neural network: SRT without broken timecodesThe main risk when translating SRT with a neural network is a broken file structure. A scheme where timecodes never reach the model, and a Python script with validation.
- A neural network for writing scripts: Bash, PowerShell and PythonA model writes scripts for routine fast, but running them blindly is risky. How to state the task, demand a safe dry-run mode and check the result before launch.
- Dify in Docker: installation, first-run setup and connecting modelsInstall Dify with Docker Compose, create the admin account and connect Claude, GPT and DeepSeek models on one key. Plus what to do when containers will not start.
- Regular expressions with AI: how to get a working regex and test itA model writes regex fast but errs confidently on edge cases. A request with examples, an auto-check loop and protection against hangs.