Skip to content
Back to skills

Content Scrubber

ASecurity

Remove AI provenance marks from content you own: invisible Unicode carriers (zero-width, bidi, tag chars, variation selectors, exotic spaces, homoglyphs), long dashes, and AI co-authorship trailers in commit messages. Use when the user asks to clean invisible characters, strip AI watermarks or metadata from text they own, sanitize a file or a whole directory, or remove "Co-Authored-By" AI lines. The deterministic layer is verifiable; statistical token-sampling marks are best-effort via a rewr...

  • 61 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
ai-agentsgobashnodegit

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add Fmarzochi/EGC --skill content-scrubber --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Content Scrubber?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Content Scrubber
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fmarzochi-content-scrubber/badge)](https://www.skillsdirectory.com/skills/fmarzochi-content-scrubber)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: content-scrubber
description: >
  Remove AI provenance marks from content you own: invisible Unicode carriers
  (zero-width, bidi, tag chars, variation selectors, exotic spaces, homoglyphs),
  long dashes, and AI co-authorship trailers in commit messages. Use when the
  user asks to clean invisible characters, strip AI watermarks or metadata from
  text they own, sanitize a file or a whole directory, or remove "Co-Authored-By"
  AI lines. The deterministic layer is verifiable; statistical token-sampling
  marks are best-effort via a rewrite workflow and are never claimed undetectable.
---

# Content Scrubber

Deterministic hygiene for text you own or are authorized to process. Two modes:

- **Automatic (the default):** the Scrubber write hook cleans files as they are
  written, and a commit hook removes AI co-authorship before a commit closes.
  Nothing to invoke; it ships with EGC and turns on at `egc init`.
- **Manual (this skill):** clean files that already exist, a whole directory, or
  pasted text on demand.

## What it removes, and how honest to be

Guaranteed and verifiable (counted before/after):

- Invisible Unicode carriers: zero-width family, word joiner, BOM, bidi
  controls that are not legitimate, tag characters, variation selectors,
  private-use characters, soft hyphen, interlinear annotation.
- Space look-alikes (NBSP, en/em space, ideographic space, ...) normalized to a
  plain space.
- Cross-script letter look-alikes (Cyrillic/fullwidth) in `--aggressive` mode.
- Long dashes (em dash, en dash, figure dash, horizontal bar) turned into safe
  punctuation. The ASCII hyphen and the mathematical minus are left alone.
- AI co-authorship / "generated by AI" trailers in commit messages. Human
  co-authors are kept.

Best-effort, never guaranteed (see `references/rewrite-workflow.md`): statistical
token-sampling text watermarks live in word choice, not in characters, and can
only be reduced by rewriting. No tool can certify a vendor detector will fail.

Out of scope: pixel/audio/video watermarks, C2PA soft binding, model backdoors.

## Load-bearing invisibles are preserved

The engine keeps invisibles that carry meaning: emoji joiners and variation
selectors, script joiners inside complex scripts (Persian, Devanagari), complete
flag tag sequences, same-script fillers (Mongolian, Khmer, Hangul), and RTL
directional marks and paired embeddings. It only strips free-floating carriers.

## Manual workflow

Resolve `CLI` to the scrubber CLI that ships with EGC:
`scripts/hooks/scrubber-cli.js` under your EGC install.

Inspect first (decide, do not guess):

```bash
node "$CLI" inspect path/to/file
```

It prints a JSON report: suspicious codepoints with counts, sample offsets, and
a confidence label (`probable` for carriers, `informational` for spaces).

Clean (writes `*.cleaned.EXT` by default; `--in-place` to overwrite, `-o` to
choose the output):

```bash
node "$CLI" clean path/to/file            # -> path/to/file.cleaned.ext
node "$CLI" clean path/to/file --in-place
cat file | node "$CLI" clean -            # stdin to stdout
```

Flags: `--aggressive` (normalize cross-script look-alikes; can change legitimate
multilingual text, so ask first), `--no-dashes` (keep long dashes), `--json`
(print the stats report).

Binary input is refused: the CLI will not treat a PNG, PDF, or zip as text.

Rewrite (Layer B, statistical marks, best-effort): prints a rewrite prompt for
you to run. There is no network and no bundled model, so you are the rewrite
model; prefer a model from a different vendor than the one that wrote the text.

```bash
node "$CLI" rewrite path/to/file --strength paraphrase
```

Strengths: `paraphrase` (default), `humanize`, `code` (natural-language parts of
source only), `backtranslate`, `structural`. Run the printed prompt, then clean
the result again with `clean`. This reduces statistical marks and you can measure
the divergence, but it never certifies a vendor detector will fail (see
`references/rewrite-workflow.md`).

## Report honestly

State what was verifiably removed (counts, by kind) and, if a rewrite was done,
that it is best-effort. Never claim the result proves human authorship or is
undetectable. Only process content the user owns or is authorized to process
(`references/ethics.md`).

Read if needed: `references/mark-classes.md` (the mark families),
`references/coverage.md` (guaranteed vs best-effort), `references/ethics.md`
(responsible use), `references/rewrite-workflow.md` (statistical marks).

Files in this skill

  • SKILL.md4.4 KB
  • references/coverage.md2.1 KB
  • references/ethics.md1.1 KB
  • references/mark-classes.md2.4 KB
  • references/rewrite-workflow.md2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…