Clean User-Facing Text
A final hygiene pass that strips suspicious invisible Unicode and rewrites prose for clarity while preserving facts, formatting, and the writer's voice.
Content & WritingIntermediate★ 767⑂ 73AI score 10/10Last updated: Aug 23, 2026
What it does
- Deterministic Unicode pass: uses the bundled
inspect_text.pyandclean_text.pyto detect and remove zero-width characters, odd spaces, and directional controls, with an inspect → clean → re-inspect loop and stats. - Voice-preserving rewrite: varies clause order, sentence boundaries, rhythm, and connectors, and drops formulaic transitions — while keeping every claim, number, name, citation, and required disclosure intact.
- Non-prose protection: fenced/inline code, commands, paths, URLs, identifiers, API names, formulas, and verbatim quotes stay untouched; no variable renaming or code reformatting.
- Honest reporting: audits separate what is verifiable (characters removed), best-effort (prose rewriting), and not established (detector evasion, proof of human authorship).
Who it's for
- Writers and editors finalizing articles, manuscripts, reports, docs, product copy, or UI strings.
- Developers whose diffs or greps break because pasted text carries invisible characters.
- Anyone editing Markdown/HTML who needs prose polished without touching embedded code.
Limits: binary containers (PDF, DOCX, images, archives) are unsupported, and the skill explicitly refuses authorship-evasion use cases.
Examples
- "Tighten the prose in this README but leave every code block byte-for-byte" → prose-only rewrite, then the Unicode pass on the file.
- "Check draft.md for hidden characters" →
inspect_text.py --jsonreports hit positions; hits inside code spans are left alone instead of a whole-file clean. - "Give me an audit of the report" → counts of removed characters, rewriting flagged as best-effort, and no claims about beating AI detectors.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/ShadowAqueduct/watermark-remover/HEAD/skills/clean-user-facing-text/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/clean-user-facing-text folder from the GitHub repo ShadowAqueduct/watermark-remover into my ~/.claude/skills/clean-user-facing-text/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/ShadowAqueduct/watermark-remover.git && mkdir -p ~/.claude/skills && cp -r watermark-remover/skills/clean-user-facing-text ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal (Terminal on macOS/Linux, PowerShell or Git Bash on Windows).
- Verify Python 3 is available:
python3 --version(orpy --versionon Windows). - Clone the repository:
git clone https://github.com/ShadowAqueduct/watermark-remover.git - Create the skills directory:
mkdir -p ~/.claude/skills - Copy the skill in:
cp -r watermark-remover/skills/clean-user-facing-text ~/.claude/skills/ - Confirm
scripts/inspect_text.pyandscripts/clean_text.pyexist inside the copied folder. - Restart Claude Code and try a prompt like "Clean the hidden Unicode in this file and polish the prose, leaving code untouched."
View source on GitHub ↗License: MIT