What this cannot do
Inkwash works on characters. It finds and removes things that are literally present in your file: zero-width characters, smuggled Unicode tag bytes, homoglyph letters borrowed from other alphabets, exotic spaces, and machine typography. Every one of those is deterministic, so every change is itemized above and you can verify it yourself.
It cannot remove a statistical watermark. Schemes such as SynthID-Text and green-list token biasing do not add characters — they live in which words were chosen, spread across the whole passage. No character-level tool can touch them, and any tool claiming otherwise is guessing. Changing that signal requires rewriting the prose, which is what the HUMANIST skill's rewrite pass is for.
This is a hygiene tool, not a disguise. Clean text still reads exactly as well or as badly as it was written.
Why invisible characters end up in your writing
Most of them are not adversarial. Word processors insert non-breaking spaces and soft hyphens for layout. Web editors leave zero-width spaces at paste boundaries. Copying out of a rendered page picks up whatever the CSS put there. Several AI writing tools emit zero-width characters or unusual spacing as a side effect of their tokeniser.
They matter anyway: they break search and find-and-replace, corrupt diffs, defeat word counts, survive into your CMS, and carry provenance you did not choose to publish. The U+E0000 tag block is the one genuinely adversarial case — it can encode arbitrary hidden text inside a passage that looks completely ordinary. If Inkwash finds any, it decodes and shows you the message.