Agent skill

User-Facing Text Cleanup

by guillaumemeyer in guillaumemeyer/watermarks-remover

Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.

MITAuto-check passedWriting & Content

Install User-Facing Text Cleanup

skills CLI
$ npx skills add guillaumemeyer/watermarks-remover --skill clean-user-facing-text -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install guillaumemeyer/watermarks-remover clean-user-facing-text --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/guillaumemeyer/watermarks-remover.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/clean-user-facing-text .claude/skills/clean-user-facing-text && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
clean-user-facing-text
GitHub stars
24k
Token cost
~3.5k tokens
SKILL.md length
1,782 words
Files
10 (incl. scripts, references)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.

  • Works in 10 steps: Identify the prose that readers will see. → Protect non-prose spans → Preserve every claim, fact, number,… → …
  • Finalizing an article, report or manuscript before publishing
  • SKILL.md covers Workflow, Scoring, Deterministic Unicode pass and Detector levers, plus 3 more sections
  • Runs Python scripts from its folder; calls python

What it does

The skill is a final hygiene pass for text that you own or are authorized to process, such as articles, manuscripts, reports, documentation, emails, product copy, UI text, Markdown or HTML prose. Its first layer is deterministic: scripts inspect the text for suspicious invisible Unicode and clean_text.py strips it before any rewriting, so the rewrite works on marker-free text. Reducing statistical, watermark-style patterns is described as best-effort, and the skill says never to claim that a rewrite proves human authorship or cannot be detected.

Before rewriting, the agent sets aside non-prose spans such as code, commands, paths, URLs, identifiers, API names, exact values, formulas, citations and verbatim quotes, and keeps every claim, fact, number and name. If a fact is missing it flags the gap rather than inventing one. A stylometry scoring script measures the text first, and the agent rewrites only when the density tier is high; low and medium tiers are verified and left alone. A detect-only audit mode lists flagged spans without changing anything. Voice samples are used only when you own them, no other named person's style is imitated, and no fake first person, invented specifics or added stance are introduced.

Reference notes cover detectors, responsible use, watermark notes and writing in your own voice. The skill is not for code-only tasks or for hiding authorship that should be disclosed, and it preserves required academic, legal, platform and regulatory disclosures.

When your agent uses it

  • Finalizing an article, report or manuscript before publishing
  • Checking prose for hidden or suspicious Unicode characters
  • Polishing product copy or UI text without changing its meaning
  • Running a detect-only audit that flags spans but changes nothing

Example prompts

  • “Inspect draft-post.md for invisible Unicode characters and show me what you find without changing the file.”
  • “Polish the product page copy in copy/pricing.md and keep every number and claim exactly as written.”
  • “Clean the final chapter of my manuscript and leave the quotations and citations untouched.”

Requirements

  • Python, to run the bundled inspection and cleaning scripts

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Identify the prose that readers will see.
  2. Protect non-prose spans
  3. Preserve every claim, fact, number, name, citation, and requirement. Never invent a detail, name, number, quote, or source to make the…
  4. Measure before. Inspect and score the input with the vendored zero-LLM stylometry estimator (see Scoring) and record the score. Read the…
  5. Establish the writing brief before changing prose
  6. Layer A — strip artifacts first. For text artifacts or supplied text files, run the deterministic Unicode pass before rewriting, so the…
  7. Layer B — rewrite once. Rewrite the remaining prose once, applying the detector levers (see Detector levers) in order
  8. Layer A again. Run the deterministic Unicode pass on the rewritten result to catch any artifacts the rewrite introduced (smart quotes, em…
  9. Measure after. Score the rewritten text the same way. Report scores and confidence levels when available; otherwise report status…
  10. Return only the polished result unless the user asks for an audit or explanation.

What it can do on your machine

Read from SKILL.md and the folder at commit c5297e9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 5 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

User-Facing Text Cleanup loads about 3.5k tokens when it runs, and up to ~6.6k if it reads all its reference files. Until then it costs about 162 tokens; SKILL.md has 1,782 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~162
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from guillaumemeyer/watermarks-remover at commit c5297e9, republished under its MIT licence (© guillaumemeyer). 1,782 words, ~3,472 tokens.

Download SKILL.mdSave it as .claude/skills/clean-user-facing-text/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
clean-user-facing-text
description
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting prose while preserving facts, meaning, and the writer's voice. Use when the user asks to clean, humanize, polish, or finalize articles, manuscripts, reports, documentation, emails, product copy, UI text, Markdown, or HTML prose, or when a project rule or instruction file explicitly requires this workflow. Don't use for code-only tasks or undisclosed authorship evasion; leave code, commands, identifiers, paths, APIs, formulas, citations, required disclosures, and verbatim quotations unchanged.

Clean user-facing text

Apply a final text-hygiene pass to prose the user owns or is authorized to process. Treat Unicode cleanup as deterministic and statistical-watermark reduction as best-effort; never claim that a rewrite proves human authorship or is undetectable. Preserve required academic, legal, platform, and regulatory disclosures.

Workflow

  1. Identify the prose that readers will see.

  2. Protect non-prose spans:

    • fenced and inline code
    • commands, paths, URLs, identifiers, API names, and exact values
    • formulas, citations, and text the user asks to quote verbatim
  3. Preserve every claim, fact, number, name, citation, and requirement. Never invent a detail, name, number, quote, or source to make the prose easier to write or more varied: if a fact is missing, flag the gap rather than fill it. The rewrite may sharpen, compress, or reorder, but it may not add or remove claims.

  4. Measure before. Inspect and score the input with the vendored zero-LLM stylometry estimator (see Scoring) and record the score. Read the report's density_tier: rewrite only when it is high; for low or medium, verify the text and otherwise leave the text unchanged. For a flag-only audit that never rewrites, use --audit:

    bash
    PYTHON "$SCRIPTS/inspect_text.py" --stylometry --json INPUT
    PYTHON "$SCRIPTS/inspect_text.py" --audit INPUT  # detect-only: lists flagged spans, no rewrite
  5. Establish the writing brief before changing prose:

    • use a voice sample only when the user owns it or is authorised to use it; don't imitate another named person
    • when there is no sample, make the prose clear and natural without pretending to imitate a particular person
    • never inject a voice the source lacks: no fake first person ("I've seen this"), invented specifics, forced contrarianism, performed candor, or added stance and personality. Preserve the writer's deliberate rough edges and domain terms rather than scrubbing them
    • keep required disclosures, uncertainty, and the writer's actual point of view
    • pick the voice and domain preset the text fits (see Voice and domain presets); the default is general prose
  6. Layer A — strip artifacts first. For text artifacts or supplied text files, run the deterministic Unicode pass before rewriting, so the rewrite operates on clean, marker-free text:

    bash
    PYTHON "$SCRIPTS/clean_text.py" INPUT -o OUTPUT --stats --no-normalize-spaces
  7. Layer B — rewrite once. Rewrite the remaining prose once, applying the detector levers (see Detector levers) in order:

    • vary clause order, sentence boundaries, rhythm, connectors, and function words
    • replace formulaic transitions and filler with direct, natural wording
    • keep the concrete details and judgement that make the text recognisable as the writer's
    • treat unusual grammar, repetition, directness, and phrasing as possible voice or accessibility choices; change them only when the user asks or when they create a clear reading problem
    • preserve the requested language, tone, structure, and formatting; never translate unless asked
    • for non-English text, use fluent constructions native to that language rather than English sentence patterns
    • do not add or remove claims merely to increase variation
  8. Layer A again. Run the deterministic Unicode pass on the rewritten result to catch any artifacts the rewrite introduced (smart quotes, em dashes, homoglyphs):

    bash
    PYTHON "$SCRIPTS/clean_text.py" OUTPUT -o FINAL --stats --no-normalize-spaces
  9. Measure after. Score the rewritten text the same way. Report scores and confidence levels when available; otherwise report status: insufficient_length. A lower after-score means the measurable signals moved; it is not a verdict from any detector, and it never overrides the fact and voice rules above.

  10. Return only the polished result unless the user asks for an audit or explanation.

For practical guidance on preserving a writer's voice and removing formulaic prose, read references/writing-in-your-voice.md whenever the user asks to retain or adjust voice. For what detectors really measure and which claims are legitimate, read references/detectors.md.

Scoring

scripts/inspect_text.py --stylometry (or the standalone scripts/score_stylometry.py, which also accepts --explain) runs the zero-LLM estimator vendored from the service pipeline: sentence-length burstiness (coefficient of variation), weighted AI-cadence phrase density per 100 words, lexical diversity (MATTR), and a dampened composite score from 0 to 1. Exit code 1 means the score is at or above the threshold (default 0.65). The report also carries a density_tier (low / medium / high, or uncalibrated when not scored) that re-labels where the score sits so the rewrite pass engages only for high. inspect_text.py --audit produces the same scoring plus the detect-only flagged-span list but never rewrites. Under 30 words the estimator reports status: insufficient_length instead of a score. Nothing here calls the network; the skill stays self-contained.

Limits: the estimator is calibrated for the statistical detector family (perplexity and burstiness style signals). It is not the output of trained neural classifiers such as GPTZero, Turnitin, Originality, or Pangram, it does not detect secret-key watermarks, and it says nothing about authenticity. A low after-score means the measured signals moved; it does not prove the text reads as human or that any particular detector would accept it. When the user asks for an audit, report the numbers as a gauge, not as a verdict (see Reporting).

Deterministic Unicode pass

Resolve SCRIPTS to this skill's scripts/ directory. Use the available Python 3 launcher for the platform. Replace PYTHON below with python3 on most macOS/Linux systems, py on Windows, or another verified Python 3 command.

This skill is self-contained and runs its vendored scripts directly; it has no service or network dependency. Deterministic Layer A cleaning below is invoked by script, intentionally, so the skill works where the HTTP service is absent.

Inspect first when editing an existing file (include --stylometry to record the before score):

bash
PYTHON "$SCRIPTS/inspect_text.py" --stylometry --json INPUT
PYTHON "$SCRIPTS/clean_text.py" INPUT -o OUTPUT --stats --no-normalize-spaces
PYTHON "$SCRIPTS/inspect_text.py" --stylometry --json OUTPUT

Use - for stdin. Prefer a new *.cleaned.* output unless the user explicitly requests in-place editing.

Use --no-normalize-spaces by default so NBSP, narrow no-break spaces, figure spaces, and CJK ideographic spaces retain their layout semantics. Normalize spaces only when the user requests it.

Do not use --aggressive-homoglyphs, --nfkc, or --strip-emoji-glue unless the user requests aggressive normalization and accepts possible changes to multilingual text, emoji, directionality, or typography.

The scripts support plain text, source text, Markdown, and HTML source as text. For mixed Markdown or HTML, inspect hit positions first. If a hit falls inside protected code, attributes, or another non-prose span, do not run whole-file cleanup; clean only the prose segments or leave that hit unchanged. Do not pass binary containers such as PDF, DOCX, images, or archives.

For a chat-only response that is not written to a file, perform the rewrite workflow directly. Do not claim that the chat response received a deterministic post-send Unicode filter.

Show full SKILL.md (757 more words)Show less

Detector levers

Statistical detectors score probability patterns: AI prose is too predictable (low perplexity), too even (low burstiness), and too full of stock phrases. The levers below target those signals, most effective first. Levers 1, 2, and 6 are deterministic or near-deterministic; 3 to 5 are aims, not guarantees. Engage the rewrite levers only when the measure-before density_tier is high; for low or medium, the measurable AI-density signals are weak, so verify and otherwise leave the text unchanged. The pass ordering below follows the pattern catalogs in references/detectors.md.

  1. Strip artifacts first (always). Run the deterministic Unicode pass (clean_text.py) before anything else: invisible characters and homoglyphs are mechanical markers that hurt with every detector family and are cheap to remove.
  2. Kill the stock vocabulary (perplexity). Replace AI-stock words with plain, concrete, specific ones: delve, tapestry, testament, underscore, foster, seamless, multifaceted, myriad, paradigm shift, harness the power of, plays a crucial role, in today's fast-paced world, it is important to note. The vendored scorer's phrase list is the canonical list to check; the rewrite must clear it.
  3. Inject burstiness. Vary sentence length deliberately: a short sentence after two long ones, and occasionally the reverse. Uniform mid-length cadence (sentence-length CV below 0.35) is one of the strongest AI signals.
  4. Flatten the structure. Break formulaic sections into the prose itself: "despite X, the future looks bright" closers, forced groups of three, "challenges and opportunities" templates, and announcement-style headers.
  5. Match a real voice and keep specifics. Prefer concrete detail from the source over generic phrasing, and let the writer's sample set the rhythm (see references/writing-in-your-voice.md). Never invent a fact to raise variance; a lower score with a fabricated detail is still a failed rewrite.
  6. Normalize punctuation and RLHF voice. Straight quotes, no em dashes, no bolded mini-headers, no "I hope this helps", no "as an AI", no hedged perfectionism or over-cautious disclaimers beyond what the user must keep. Required disclosures stay.
  7. Optional recursive paraphrase. For keyed statistical watermarks (KGW, SynthID-Text style), any meaning-preserving rewrite that changes token order degrades detection, and back-translation or repeat paraphrase is the strongest known pass. Do this only when the user asks for watermark reduction: each extra pass risks meaning drift, and no vendor secret key can be verified locally.

Honest caveat: these levers are aimed at statistical detectors. Trained neural classifiers are adversarially trained against paraphrase-style edits (see references/detectors.md); against those, the only robust lever is matching a real human distribution, and even that cannot be guaranteed.

Voice and domain presets

Presets tune how hard to apply the levers and how much personality to allow. They never override the fact rules (fiction excepted, see step 3 above) and they are not guarantees of any detector result.

PresetPersonalityRhythm and phrasingWhat to eliminate
General prose (default)Author's voice first, no injected stanceMild variation, natural connectorsStock AI vocabulary, uniform cadence
Essay / blogStance, asides, mixed feelings welcomeStrong length variation, uneven rhythmSignificance hype, aphorism formulas, rule of three
Technical / documentationNeutral, preciseModerate variation, short declarativesPromo language, em dashes, bolded mini-headers; keep code and identifiers intact
Academic / professionalFormal, evidence-firstRestrained variation, controlled hedgingOver-claiming verbs, novelty padding, citation dumps; keep required discipline
Business / product copyPlain claims, concrete valueDirect sentences"Seamless", "empower", vague benefits, rule of three, required disclaimers kept
FictionInvented detail allowedVariation to fit the narratorUniform cadence, editorial clichés; preserve dialect and quirks
Plain-language sub-mode

For procedures, runbooks, errors, and other engineer-facing text, the user may request a plain-language sub-mode: short common words, one instruction per sentence, imperative verbs for steps, one meaning per term, and no marketing adjectives or unbounded hedging. This sub-mode is a clarity floor, not a new personality: it strips voice deliberately, keeps every claim and requirement, and is not a detector-evasion tool. Use the voice-preserving presets above for essays, posts, and personal prose instead.

Code boundary

When prose and code are mixed, rewrite prose only. Never rename variables, alter string literals, reformat code, or change executable output as part of this skill. If a Markdown or HTML file contains executable snippets, preserve those spans byte-for-byte whenever practical.

Reporting

When the user asks for an audit, distinguish:

  • Verifiable: Unicode characters removed or replaced, with script counts; stylometry scores before and after, with confidence levels (as a gauge, not a verdict).
  • Best-effort: prose rewritten to alter token and syntax patterns.
  • Not established: official detector evasion, human authorship, or removal of a vendor's secret-key watermark.

For technical background, read references/watermark-notes.md. For misuse or disclosure questions, read references/responsible-use.md.

© guillaumemeyer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (scripts, references) in skills/clean-user-facing-text of guillaumemeyer/watermarks-remover.

  • SKILL.md
  • references/detectors.md
  • references/responsible-use.md
  • references/watermark-notes.md
  • references/writing-in-your-voice.md
  • scripts/clean_text.py
  • scripts/common.py
  • scripts/inspect_text.py
  • scripts/score_stylometry.py
  • scripts/text_unicode.py

Open the folder on GitHubat commit c5297e9

Compare with similar skills

User-Facing Text Cleanup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

User-Facing Text Cleanup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
User-Facing Text Cleanup this skillguillaumemeyer/watermarks-remover24k—~3.5kAutomated safety check: PassMIT
Chinese Text Humanizerop7418/Humanizer-zh19k—~2kAutomated safety check: PassMIT
Natural Japanese Business Writingcoji/natural-japanese1.9k—~2.1kAutomated safety check: PassMIT
Zero Slop Prose Editoriflytek/skillhub5.2k—~1.5kAutomated safety check: PassMIT
Web Novel AI-Trace Removerzenstory-ai/oh-story-claudecode7.4k1 repos~2.6kAutomated safety check: PassMIT
Korean AI-Text Humanizerepoko77-ai/im-not-ai5.9k—~4.5kAutomated safety check: PassMIT

Similar skills

  • Chinese Text Humanizer

    op7418/Humanizer-zh

    Edits Chinese articles, comments and documents to remove filler, repetition and template phrasing while keeping the facts, the level of certainty and the author's voice.

    19k GitHub stars~2k tokensUpdated 18 days ago
    Writing & ContentAuto-check passed
  • Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.

    1.9k GitHub stars~2.1k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Zero Slop Prose Editor

    iflytek/skillhub

    Audits and rewrites formulaic, AI-sounding prose while keeping facts, voice and format, using a local Python scorer and inspect-only, rewrite or embedded-gate modes.

    5.2k GitHub stars~1.5k tokensUpdated today
    Writing & ContentAuto-check passed
  • Web Novel AI-Trace Remover

    zenstory-ai/oh-story-claudecode

    Rewrites AI-sounding Chinese web novel text so it reads naturally, changing as little as possible and keeping plot, names and numbers intact.

    7.4k GitHub starsUsed in 1 repo~2.6k tokens
    Writing & ContentAuto-check passed
  • Korean AI-Text Humanizer

    epoko77-ai/im-not-ai

    Rewrites Korean text written by AI so it reads like a human wrote it, detecting translationese and other AI patterns while leaving the content untouched.

    5.9k GitHub stars~4.5k tokensUpdated 15 days ago
    Writing & ContentAuto-check passed
  • Russian Text Humanizer

    smixs/humanizer-ru

    Edits Russian text to remove signs of AI generation, bureaucratic phrasing and filler while keeping facts, with a lint script and a detect-only mode.

    187 GitHub stars~3.9k tokensUpdated 18 days ago
    Writing & ContentAuto-check passed

More from guillaumemeyer/watermarks-remover

  • AI Provenance Mark Remover

    guillaumemeyer/watermarks-remover

    Strips AI provenance marks from text and files: invisible Unicode, statistical text watermarks via rewriting, and C2PA, EXIF or XMP metadata across common formats.

    24k GitHub stars~4.9k tokensUpdated 2 days ago
    Auto-check passed

Questions about User-Facing Text Cleanup

What does User-Facing Text Cleanup do?

Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact. The skill is a final hygiene pass for text that you own or are authorized to process, such as articles, manuscripts, reports, documentation, emails, product copy, UI text, Markdown or HTML prose.py strips it before any rewriting, so the rewrite works on marker-free text.

When should I use User-Facing Text Cleanup?

User-Facing Text Cleanup fits situations like: finalizing an article, report or manuscript before publishing; checking prose for hidden or suspicious Unicode characters; polishing product copy or UI text without changing its meaning; running a detect-only audit that flags spans but changes nothing.

How do I install User-Facing Text Cleanup in Claude Code?

Run `npx skills add guillaumemeyer/watermarks-remover --skill clean-user-facing-text -a claude-code`. Or copy the skill folder (skills/clean-user-facing-text in guillaumemeyer/watermarks-remover) into .claude/skills/clean-user-facing-text in your project. Claude Code loads it when a task matches its description.

How do I install User-Facing Text Cleanup in Codex?

Run `npx skills add guillaumemeyer/watermarks-remover --skill clean-user-facing-text -a codex`. Or copy the skill folder (skills/clean-user-facing-text in guillaumemeyer/watermarks-remover) into .agents/skills/clean-user-facing-text in your project. Codex loads it when a task matches its description.

Can I use User-Facing Text Cleanup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add guillaumemeyer/watermarks-remover --skill clean-user-facing-text -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/clean-user-facing-text, .gemini/skills/clean-user-facing-text, .github/skills/clean-user-facing-text and .opencode/skills/clean-user-facing-text in your project.

What does User-Facing Text Cleanup need to run?

Going by SKILL.md and its folder, User-Facing Text Cleanup needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python, to run the bundled inspection and cleaning scripts.

Does User-Facing Text Cleanup access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is User-Facing Text Cleanup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does User-Facing Text Cleanup use?

User-Facing Text Cleanup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does User-Facing Text Cleanup use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.2k tokens, read only when the agent opens those files.

What are the alternatives to User-Facing Text Cleanup?

Skills that share tags, products or a category with User-Facing Text Cleanup: Chinese Text Humanizer (op7418/Humanizer-zh, 19k stars), Natural Japanese Business Writing (coji/natural-japanese, 1.9k stars), Zero Slop Prose Editor (iflytek/skillhub, 5.2k stars) and Web Novel AI-Trace Remover (zenstory-ai/oh-story-claudecode, 7.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains User-Facing Text Cleanup?

guillaumemeyer (a GitHub user) maintains it in guillaumemeyer/watermarks-remover, which has 23,730 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.

Source: guillaumemeyer/watermarks-remover on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.