Rewrite by Example
Overview
Use this skill when a manuscript sounds AI-generated and the user is willing to hand-rewrite a small number of carefully chosen sentences so that their personal writing style can be extracted and applied to the rest of the document. The skill treats the user's rewrites as a small calibration sample and compares its statistics against the original document to build a quantitative style fingerprint, which then drives the full rewrite.
This skill is interactive by design. It has mandatory pause points where the user must act before the workflow continues. Do not skip these pauses.
This skill shares its diagnostic vocabulary with the de-ai-academic-prose
skill. Reuse the tags and severity levels defined there rather than inventing
new ones. When this file references markers.md or genres.md, load them
from /mnt/skills/user/de-ai-academic-prose/references/ so the two skills
stay consistent.
Read /mnt/skills/user/de-ai-academic-prose/references/markers.md for the
diagnostic tag list and severity scale.
Read /mnt/skills/user/de-ai-academic-prose/references/genres.md when the
passage genre affects sentence selection or rewrite pressure.
For whole-document statistics, reuse
/mnt/skills/user/de-ai-academic-prose/scripts/analyze_academic_prose.py for
the baseline pass, and use scripts/compare_style.py (in this skill) for the
delta pass between baseline and user rewrites.
When this skill is the right fit
Use this skill when:
- the user explicitly wants to teach their style through their own edits;
- the user is willing to rewrite at least three sentences by hand;
- the manuscript is long enough that extracting a fingerprint is worth the overhead (roughly 1500+ words);
- a previous automatic de-AI pass felt generic or wrong in voice.
Do not use this skill when:
- the user wants a one-shot automatic cleanup;
- the manuscript is a short excerpt where selection has no room to breathe;
- the user refuses to write anything themselves;
- the task is diagnosis only.
In those cases hand off to de-ai-academic-prose instead.
Workflow
The workflow has six steps and two mandatory pause points. Do not merge steps, do not skip pauses, and do not proceed past a pause without an explicit user response.
Step 1. Confirm scope and run the baseline analysis
Before selecting any sentences, confirm:
- which file or passage is in scope;
- whether the user wants the whole document rewritten at the end, or only specific sections;
- how many calibration sentences the user is willing to rewrite (default: 6, minimum: 3, maximum: 8);
- whether the user wants a
minimal,medium, oraggressivefinal rewrite once the fingerprint is extracted (default:medium); - whether to enable
cross_sentence_mode(default:off).
cross_sentence_mode controls whether the skill also tries to learn the
user's style at the level of sentence-to-sentence logic, paragraph structure,
and argument flow. When it is off, the skill only calibrates sentence-level
style (word choice, cadence, sentence shape). When it is on, the skill
additionally asks the user to rewrite one or two whole paragraphs, and
performs a qualitative comparison of argument structure in addition to the
quantitative sentence-level delta.
Explain the trade-off to the user before they decide. Paragraph rewrites
take noticeably more effort than sentence rewrites, and the cross-sentence
signal is qualitative rather than quantitative — it relies on reading, not
on the compare script. Recommend on only when the user has already
noticed that AI prose fails them at the paragraph level (broken logic,
pseudo progression, forced symmetry, drifting topics), not just at the
sentence level. For most users off is the right default.
Do not ask these questions if the user already answered them. Infer when inference is safe; ask only when guessing would materially change the result.
Then run the baseline analysis script from the de-ai-academic-prose skill:
uv run python /mnt/skills/user/de-ai-academic-prose/scripts/analyze_academic_prose.py \
/path/to/manuscript.tex \
--emit-markdown /tmp/baseline_extracted.md \
--emit-report /tmp/baseline_report.md
Use the report to understand which sections are AI-heaviest, which markers dominate, and where the candidate sentences should come from.
When cross_sentence_mode is on, also read the extracted Markdown
yourself and note 3–5 paragraphs where the suspected problem lives at the
cross-sentence level — for example, where broken connector logic,
pseudo progression, circular paragraph, forced symmetry,
weak evidence link, or paragraph drift seem to apply. These are not in
the script output; you must read for them. See the Cross-sentence tags
section in
/mnt/skills/user/de-ai-academic-prose/references/markers.md for
definitions and examples.
Step 2. Select calibration sentences
Selection depends on cross_sentence_mode.
Step 2a. Default mode (cross_sentence_mode: off)
Choose 5–8 sentences from the manuscript for the user to rewrite. Selection is the most important step in this skill. A bad selection wastes the user's effort and produces a useless fingerprint.
Selection rules:
- Marker coverage: the selected set must cover at least three different
diagnostic tags from
markers.md. Do not pick five sentences that all suffer fromtemplate transitions— the fingerprint would only learn connector preferences. - Severity: prefer sentences tagged
mediumorhigh.lowsentences give the user too little to work with. - Self-contained meaning: the user must be able to read and rewrite the sentence without flipping back to context. Skip sentences that only make sense inside a long argument chain.
- Length band: roughly 15–40 words. Shorter sentences carry too little signal; longer sentences are hard to rewrite and produce noisy deltas.
- Genre spread: if the document has multiple genres (e.g. introduction + methods + discussion), draw from at least two of them. Methods sentences often have different style norms than discussion sentences, and the fingerprint should reflect that.
- Avoid notation-heavy sentences: sentences whose shape is dictated by equations, symbol definitions, or fixed technical phrasing are not good calibration targets. They cannot be rewritten stylistically.
Step 2b. Cross-sentence mode (cross_sentence_mode: on)
Choose 3–5 individual sentences AND 1–2 whole paragraphs. The sentences follow the rules in Step 2a. The paragraphs follow these additional rules:
- One cross-sentence tag per paragraph, minimum: each selected
paragraph must clearly exhibit at least one cross-sentence tag
(
broken connector logic,pseudo progression,circular paragraph,forced symmetry,weak evidence link, orparagraph drift). Do not pick a paragraph just because it "reads AI-ish" — name the specific cross-sentence problem. - Paragraph length band: 4–8 sentences. Shorter paragraphs give the user nothing to restructure; longer paragraphs are exhausting to rewrite and may contain multiple overlapping problems.
- Distinct problems across paragraphs: if selecting two paragraphs, they should illustrate different cross-sentence tags. One circular paragraph plus one pseudo-progression paragraph is more informative than two circular paragraphs.
- Self-contained argument: the paragraph's point should be understandable without the surrounding context. Paragraphs that depend on a long upstream argument are bad calibration targets.
- No notation-heavy paragraphs: same rule as for sentences.
Warn the user that rewriting a paragraph is significantly more effort than rewriting a sentence. Offer them the option to drop to sentence-only mode if they change their mind after seeing the selection.
Presenting the selection
Present everything to the user in a numbered list. For each item, include:
- the sentence or paragraph itself;
- its source section reference;
- 1–2 diagnostic tags explaining why it was picked (including cross-sentence tags where relevant);
- a short hint about what the problem is. For sentences:
"this sentence is flagged for abstract drift and flat cadence". For paragraphs:"this paragraph is flagged for pseudo progression — the three enumerated points are parallel, not progressive".
Do not tell the user how to rewrite. The hints name the problem, not the fix. The whole point is that the user's own choices become the signal. This is especially important for paragraph rewrites — do not suggest how to restructure, because the restructuring is exactly what you want to learn from.
PAUSE POINT 1 — wait for the user's rewrites
After presenting the selection, stop. Do not continue the workflow. Do not start rewriting anything else. Wait for the user to post their rewrites.
If the user posts fewer than three rewrites, tell them the fingerprint will
be unreliable and ask whether they want to rewrite more or proceed with low
confidence. If they choose to proceed, mark the entire fingerprint as
low confidence in the delta report.
If the user's rewrites violate academic guardrails (introduced casual tone, removed necessary hedging, invented content, broke citations), flag this explicitly before moving on. Ask whether those changes were intentional style choices or mistakes. Do not silently learn from edits that break the manuscript's integrity.
Step 3. Run the delta comparison
Once you have the user's rewrites, construct two files:
/tmp/sample_rewrites.md: the user's rewritten versions only, one per line or paragraph;/tmp/baseline_unselected.md: the original document with the selected sentences and paragraphs removed. This is the critical detail — the baseline for comparison must be the unselected portion of the original, not the whole original. The selected items were picked because they were outliers, so including them in the baseline would inflate the apparent delta and make the fingerprint overfit to selection bias.
Then run:
uv run python scripts/compare_style.py \
--baseline /tmp/baseline_unselected.md \
--sample /tmp/sample_rewrites.md \
--emit-delta /tmp/delta.json
The script output is a JSON document with per-dimension baseline values,
sample values, absolute and relative deltas, and a confidence flag. See
references/fingerprint.md for the full list of dimensions and how to read
the output.
When cross_sentence_mode is on, also perform a qualitative comparison
for each rewritten paragraph. The compare script does not measure
cross-sentence structure — you must read each before/after pair yourself
and record, in prose:
- Connector logic: did the user change, remove, or replace connectors,
and if so, did they do it in a way that fixes
broken connector logic? Which connectors did they add, remove, or replace? - Progression structure: if the original paragraph used progression
markers (
first,second,finally,more importantly), did the user preserve them, remove them, or replace them with something else? Did they collapse pseudo-progression into parallel structure? - Opening and closing alignment: compare the first and last sentences of the original paragraph to the first and last sentences of the user's rewrite. Did the user break a circular paragraph by giving it a different endpoint than its starting point?
- Symmetry: if the original had a balanced two-sided structure, did the user preserve the balance or lean toward one side?
- Evidence-claim linkage: did the user strengthen, weaken, or restructure the link between claims and their supporting evidence?
- Topic continuity: did the user's rewrite stay on one topic or follow a different trajectory than the original?
Record these observations as a short structured note per paragraph. These are the inputs to the qualitative half of the fingerprint in Step 4.
Step 4. Translate the delta into a human-readable fingerprint
Do not apply the raw delta directly. Translate it into a short natural-language fingerprint that the user can read and verify.
Quantitative part (always)
The quantitative fingerprint should cover:
- sentence length mean and variance changes;
- marker density changes, one line per affected tag from
markers.md; - connector and transition density changes;
- abstract/concrete ratio changes;
- sentence-initial pattern changes;
- a word blacklist (high-frequency original words that the user's rewrites avoided entirely);
- a word whitelist (words the user introduced that were rare or absent in the original), only when the signal is strong enough to trust.
Drop any dimension whose confidence flag is low unless the user explicitly
wants to see low-confidence signals. Low confidence usually means the sample
was too small for that dimension to be meaningful.
Do not pad the fingerprint with dimensions that showed no real change. If only three dimensions moved meaningfully, the fingerprint has three rules. A short accurate fingerprint is better than a long padded one.
Qualitative part (only when cross_sentence_mode is on)
Add a second section to the fingerprint containing cross-sentence rules derived from the paragraph observations in Step 3. Each rule should be one sentence, stated as a principle the rewrite will follow, not as a description of what the user did. Examples:
- "Keep connectors only when the logical relationship they name is actually present. Remove scaffolding connectors that do not add logical content."
- "Do not use three-step progression markers unless the three points genuinely escalate in strength."
- "Paragraphs should end somewhere different from where they started. Avoid summary sentences that restate the opening claim."
- "When comparing two options, lean toward one. Do not default to symmetric two-sided structure."
Only include a cross-sentence rule when the evidence from the paragraph rewrites is clear. One strong paragraph rewrite can justify one rule; do not invent cross-sentence rules when the user's paragraph edits were mostly sentence-level. Mark each cross-sentence rule as "cross-sentence" so the user knows which rules came from paragraph observations and which came from the statistical delta.
If the user's paragraph rewrites contradict each other (e.g. one paragraph removed progression markers but another added them), surface the contradiction as an open question for Pause Point 2 rather than forcing it into a single rule.
PAUSE POINT 2 — confirm the fingerprint with the user
Present the fingerprint and ask the user to confirm, correct, or reject each rule. Use wording like:
Based on your rewrites, here is the style fingerprint I extracted. Before I apply it to the rest of the document, please tell me which rules are accurate and which I misread. Any rule you reject will be dropped.
Wait for the user's response. Do not proceed to the full rewrite with unconfirmed rules. If the user rejects a rule, remove it from the fingerprint entirely — do not argue, and do not apply it in weakened form.
If the user adds a rule the delta did not detect, accept it as a manual override and treat it with the same weight as the detected rules.
Step 5. Rewrite the rest of the document
Apply the confirmed fingerprint to the parts of the document the user wants rewritten. Follow these rules:
- the fingerprint is a constraint, not a template. Do not copy the exact phrasing from the user's rewrites into other sentences;
- keep all non-negotiables from
de-ai-academic-prose: technical meaning, notation, citations, claim strength, hedging, formal register; - match the rewrite intensity the user selected in Step 1 (
minimal,medium, oraggressive); - when a sentence in the document would require breaking a fingerprint rule to stay technically correct, keep it technically correct and note the exception;
- do not rewrite notation-heavy method passages unless the fingerprint specifically targets them;
- do not rewrite passages the user excluded from scope in Step 1.
When the rewrite is done, produce output in before/after + rationale mode
by default unless the user asked for something else. The rationale should
reference the specific fingerprint rules applied, so the user can audit
whether their own style was honored.
Step 6. Offer a second calibration round
After delivering the rewrite, offer (but do not force) a second calibration round: the user picks any rewritten passage they dislike, edits it, and the skill updates the fingerprint from the new delta. This is optional and only worth doing if the user reports that the first-pass fingerprint missed something important.
Red lines
All red lines from de-ai-academic-prose apply. In addition:
- Do not skip either pause point. The skill is useless without the user's actual input at both stages.
- Do not learn from user edits that broke academic integrity. Flag them and ask first.
- Do not use the whole original document as the comparison baseline. Use the unselected portion only.
- Do not apply low-confidence fingerprint rules silently. Either drop them or show them clearly marked as low-confidence.
- Do not copy phrases verbatim from the user's rewrites into other sentences. Learn the pattern, not the text.
- Do not pad the fingerprint with dimensions that did not actually move.
- Do not argue when the user rejects a fingerprint rule.
- Do not generate cross-sentence fingerprint rules when
cross_sentence_modeisoff. Those rules require paragraph-level rewrites as evidence; without them, any cross-sentence rule would be guessed rather than learned. - When
cross_sentence_modeison, do not suggest how the user should restructure a paragraph before they rewrite it. The restructuring is what you are trying to learn.
Output pattern
Unless the user asks for something else, structure the final response as:
- baseline analysis summary (from Step 1);
- the selected calibration sentences with tags and hints (Step 2);
- [pause 1];
- the delta report with confidence flags (Step 3);
- the human-readable fingerprint (Step 4);
- [pause 2];
- the rewritten document or sections with before/after pairs and rationale tied to fingerprint rules (Step 5);
- an optional offer for a second calibration round (Step 6).
Keep each step's output short and focused. The user should be able to act on each step without rereading earlier ones.