On this page
01 / The finding
The most popular evasion instruction is worth about two points
On 654 machine-written documents that appear nowhere in the cycle-2 dataset, adding “write like a human” to the prompt moves detection from 96.6% to 94.6%. The two Wilson intervals overlap, and human-voice is not even the weakest of the three styles.
The cost of the instruction against plain prompting, on 207 and 223 documents. Not thirty points, and not sixty.
The evasion axis is closed for long documents and open for short ones. That is a length interaction, not a style collapse.
Instructing a model not to sound repetitive makes it under-repeat harder, which is the behaviour that gives it away. A feature statistic on 1,365 and 1,455 documents.
Three things are true at once here and they are easy to blur. Against a retired model at retired flag points the instruction cut detection by 83% in relative terms. Against the model that ships now it does very little at full document length. And measured from a completely different direction, on feature statistics rather than detector outputs, it pushes the strongest readable signal in this project the wrong way for the person using it.
This page is a measurement of a popular instruction, not a guide to using it. Every strand is reported with the model it was run on, the flag point it was cut at, and the corpus it was measured over.
02 / Reading the figures
Three measurements, at three operating points, kept apart
The three prompt styles are constant across every strand. plain: write the article. house-brief: write the article to a house style guide. human-voice: write the article, and write like a human. Only the instruction changes; the topic prompts and registers are held fixed within each run.
| Strand | Detector | Operating point | Corpus |
|---|---|---|---|
| (a) history | tier3-e5small-int8-perchannel.onnx, retired cycle 1 | 0.8533 and 0.857, both retired | 4,016 articles, 21 models, 106 topic prompts |
| (b) in-distribution | cycle 2, held-out split | a 2% false-positive budget | 734 held-out samples from the same generation run |
| (c) independent | tier3-cycle2-e5small-fp32.onnx, fp32 Python onnxruntime | 0.984 single threshold — not the shipped pair | 654 machine-written documents appearing nowhere in the cycle-2 dataset |
Strand (c) is the current answer and the one the headline is drawn from. Strand (a) describes a model that no longer runs, and it appears on this page only inside a section marked as history. Strand (b) sits between them: it is a real measurement, and it is in-distribution by construction, which is exactly why strand (c) had to be run.
None of the three strands is cut at the pair that decides verdicts today. Strand (c) is at a single threshold of 0.984, and the re-cut at the shipped minimum-evidence pair has not been run.
03 / Strand (c)
The measurement that had never been done
The independent set is the 654 machine-written long-form documents whose normalised text appears nowhere in the cycle-2 dataset: not in train, not in calibration, not in test. They carry a prompt style label from generation, they are balanced by construction at 207 / 224 / 223, and they span 13 models from 8 providers.
Measured at a rule that no longer ships
- Corpus
- 654 machine-written long-form documents, independent of every cycle-2 split. 207 plain, 224 house-brief, 223 human-voice, across 13 models from 8 providers. Median length 1,611 words.
- Retired flag point
- 0.984
- Detector
tier3-cycle2-e5small-fp32.onnx, SHA-256e313ab00de1fffd2…4d2788d- Runtime
- Python onnxruntime, CPU, fp32, maximum-over-sections
- Measured
- 30 August 2026
- Also
- A single threshold of 0.984, not the shipped minimum-evidence pair. The re-cut at the shipped pair is outstanding, so these three rates are not a description of the verdict this tool returns today.
The rule that ships today is 0.9855 / 0.9763. The figures under this stamp answer the same question at a flag point this tool no longer uses, and they are not a description of the tool as it runs now.
| Prompt style | n | fp32 server, @0.984 | int8 browser, @0.984 |
|---|---|---|---|
| plain | 207 | 200 = 96.6% [93.2–98.4] | 201 = 97.1% [93.8–98.7] |
| house-brief | 224 | 209 = 93.3% [89.2–95.9] | 209 = 93.3% [89.2–95.9] |
| human-voice | 223 | 211 = 94.6% [90.8–96.9] | 211 = 94.6% [90.8–96.9] |
corpus-reconciliation-2026-08-29/analysis.txt §3 and docs/measurements/CORPUS-RECONCILIATION-2026-08-29.md §3. Threshold 0.984, a retired single-threshold rule; the shipped rule is the minimum-evidence pair.
Instructing a current model to write like a human costs 2.0 points at threshold 0.984 on long-form prose. The three intervals overlap heavily. House-brief is the weakest of the three by 1.3 points against human-voice, and that difference is inside the noise as well.
Per model, the picture is the same and the denominators are much smaller. x-ai/grok-4.6, the model reported at 0 of 86 in the historical strand below, reads 27 of 28 on human-voice prompts here. The worst human-voice cell belongs to meta-llama/llama-4-maverick at 12 of 17. Those cells sit on denominators between 1 and 42, so they are printed as counts and no rate is computed from them.
04 / The catch
The instruction does something, and it is a length interaction
These are long documents, median 1,611 words. Truncate the same 654 documents to their first 512 words and the penalty comes back.
| Prompt style | n | Full document | First 512 words |
|---|---|---|---|
| plain | 207 | 200/207 = 96.6% | 187/207 = 90.3% |
| house-brief | 224 | 209/224 = 93.3% | 187/224 = 83.5% |
| human-voice | 223 | 211/223 = 94.6% | 178/223 = 79.8% |
docs/measurements/CORPUS-RECONCILIATION-2026-08-29.md §3. Threshold 0.984, retired. Value axis starts at 70%, not zero.
At full length the human-voice penalty against plain prompting is 2.0 points. At 512 words it is 10.5. The evasion axis is closed for long documents and open for short ones, which is the honest description of what changed since the historical strand: the instruction did not stop working, it stopped working on documents long enough to give the model a lot of text to read.
05 / The mechanism
Why the instruction backfires
Measured from an entirely different direction, on feature statistics rather than detector outputs, the instruction moves two signals in opposite directions.
| Prompt style | n | Vocabulary variety | Adjacent-sentence cohesion | Any markdown |
|---|---|---|---|---|
| plain | 1,365 | 0.904 | 0.791 | 0.861 |
| house-brief | 1,421 | 0.921 | 0.789 | 0.868 |
| human-voice | 1,455 | 0.916 | 0.879 | 0.768 |
signal-science/SIGNAL-SCIENCE.md §2.5. Feature statistics over a corpus. Value axis starts at 0.45, not zero.
Measurement conditions
- Corpus
- Documents labelled by prompt style in the signal-science corpus: 1,365 plain, 1,421 house-brief, 1,455 human-voice.
- Runtime
- No model and no runtime. Every value in Figure 3 is a statistic computed over text.
- Measured
- 30 August 2026
- Also
- AUROC only. These are feature separations, so no threshold and no operating point applies and none is printed.
Adjacent-sentence cohesion is the joint-strongest interpretable signal anywhere in this project, and telling a model to write like a human makes it stronger, from 0.791 to 0.879. Machine prose already repeats itself less than human prose does. A person introduces a term and keeps using it; a model reaches for a synonym, and a model told not to sound repetitive reaches harder.
The instruction does suppress the formatting signal, from 0.861 to 0.768. It works against a detector that reads layout. Against a detector that reads how much a text repeats itself, it points the wrong way.
06 / Strand (a), history
The version where it worked, and it is history
The detector is tier3-e5small-int8-perchannel.onnx, a first-training-cycle checkpoint that no longer runs. The thresholds are 0.8533 and 0.857, both retired, and that checkpoint’s scores span 0.1427 to 0.8582, so it could not clear any current flag point under any circumstances. These figures are published as the “before” and are not a claim about the tool as it runs now.
4,016 articles were generated across 21 models, with the same 106 topic prompts and the same registers on every model and only the instruction changing. They were scored with the model that shipped at the time.
| Prompt style | n | Detected @ 0.8533, retired | Detected @ 0.857, retired |
|---|---|---|---|
| plain | 1,307 | 55.9% (731/1,307) | 21% (275/1,307) |
| house-brief | 1,338 | 44.7% (598/1,338) | 13.1% (175/1,338) |
| human-voice | 1,371 | 19.8% (272/1,371) | 3.5% (48/1,371) |
docs/MEASURED-FINDINGS.md §1 and services/local-engine/research/generated-corpus/GENERATED-CORPUS-EVAL.md. Retired model, retired thresholds. Rebuilt here from the published table rather than imported, so the retired labelling travels with the drawing.
Measured at a rule that no longer ships
- Corpus
- 4,016 generated articles across 21 models, 106 topic prompts, same registers on every model, only the instruction changing.
- Retired flag point
- 0.8533 and 0.857
- Detector
- tier3-e5small-int8-perchannel.onnx — the retired cycle-1 artefact, not the file that ships
- Runtime
- int8 per-channel, onnxruntime-web. No longer built and no longer shipped.
- Measured
- 30 August 2026
- Also
- That checkpoint's scores span 0.1427 to 0.8582 and could not clear any current flag point.
The rule that ships today is 0.9855 / 0.9763. The figures under this stamp answer the same question at a flag point this tool no longer uses, and they are not a description of the tool as it runs now.
That is a 36.1-point fall at the comparison threshold and a 17.5-point fall at the one shipped at the time, an 83% relative drop. The house-style brief sits between the two and much closer to plain, so the damage was done by the explicit anti-detection instruction rather than by prompt sophistication in general.
Per model it went further. anthropic/claude-fable-5 fell from 70.5% (31/44) to 10.0% (5/50). x-ai/grok-4.6 fell from 29.3% (24/82) to 0 of 86. One model of the 21 stayed above 50% under an anti-detection prompt. Read against Figure 1, where the same grok model reads 27 of 28 on human-voice prompts, that is the distance between the two strands.
This strand cannot be updated in place. The corpus it was measured on is 94.8% present in the cycle-2 training data, so re-scoring it on the current model would measure memorisation rather than accuracy. It can only be labelled.
07 / Strand (b)
Why the held-out answer was not enough on its own
The cycle-2 model was trained with human-voice samples deliberately upweighted as hard negatives. On held-out samples at a 2% false-positive budget it reads almost flat across the three styles.
| Prompt style | n | Superseded model | Cycle 2, 2% false-positive budget |
|---|---|---|---|
| plain | 184 | 28.3% (52/184) | 97.8% (180/184) |
| house-brief | 276 | 14.5% (40/276) | 97.1% (268/276) |
| human-voice | 274 | 5.8% (16/274) | 98.2% (269/274) |
734 held-out samples from the same generation run, split group-aware by content hash. Source: cycle2-train/CYCLE2-REPORT.md.
That looks like a complete answer and it is not one. Those held-out documents come from the same generation run as the training data, and the model was trained to handle exactly that distribution. The evasion axis was closed on the distribution the model was trained against, and untested on one it was not. Strand (c) exists to answer the second question.
08 / Limits
What this does not prove
It has never been re-cut at the pair that decides verdicts today. The re-cut is cheap and should be done before this measurement is quoted as a description of the shipped tool. Until it is, the three rates carry their threshold in the same sentence, on the chart, and in the table.
The 654-document subset is not “the corpus”. It is the independent subset defined by the contamination analysis: 268 of the 922 machine-written documents in the long-form corpus, 29.1%, appear in the cycle-2 dataset, 168 of them in the training split. The human half is effectively clean at 11 of 4,636. Using the independent subset is the correct call for this question, because a rate measured on documents the model was trained on would partly be measuring memorisation. For comparison, the same split on the contaminated subset reads 83/87, 82/86 and 92/95, all within a point and a half of each other.
The three styles are not evenly sized, at 207 / 224 / 223, and the differences between them are a few points. A two-point gap on those denominators must not be over-read, in either direction.
One generation run, three prompt styles, one detector. This does not measure a determined evader who iterates against the tool, a commercial humanising service, or paraphrase. Rewrites are this tool’s weakest case and are a separate question.
Strand (a) is not a claim about today, and strand (b) is in-distribution by construction and is reported for that reason. Neither can be promoted into a statement about current behaviour by dropping its label.
Provenance
| Figure | File | Section |
|---|---|---|
| Strand (c): 200/207, 209/224, 211/223 at threshold 0.984, fp32 and int8, with Wilson intervals | corpus-reconciliation-2026-08-29/analysis.txt | §3 |
| Length interaction: 187/207, 187/224, 178/223 on the first 512 words | docs/measurements/CORPUS-RECONCILIATION-2026-08-29.md | §3 |
| Per-model cells, including 27 of 28 and 12 of 17 | corpus-reconciliation-2026-08-29/analysis.txt | §3 |
| Contamination: 268 of 922 machine documents, 168 in train; human 11 of 4,636 | corpus-reconciliation-2026-08-29/analysis.txt | §2 |
| Strand (a): 4,016 articles, both retired thresholds, per-model falls | docs/MEASURED-FINDINGS.md, generated-corpus/GENERATED-CORPUS-EVAL.md | §1 |
| Strand (b): held-out split at a 2% false-positive budget | cycle2-train/CYCLE2-REPORT.md | whole report |
| Feature AUROC by prompt style: cohesion, markdown, vocabulary variety | signal-science/SIGNAL-SCIENCE.md | §2.5 |
Every file named above ships with the open measurement repository, so any figure on this page can be re-run rather than taken on trust.