Use output-hygiene
Review agent-written text before it ships and strip the machine artifacts it carries
Review agent-written text before it ships and strip the machine artifacts it carries — invisible Unicode, non-breaking spaces, homoglyphs, harness-added provenance trailers, trailing chat closers — then flag the prose tells a script cannot catch, each quoted with a rewrite.
Reach for it when the user wants to clean up AI-generated output, asks to remove a Claude watermark, attribution footer, or "Generated with" line, wants a draft that does not read as machine-written, or needs a pre-ship hygiene pass on a document, commit message, or pasted chat answer.
Install it
npx skilldrop-cli install output-hygiene # Claude Code, your user folder
npx skilldrop-cli install output-hygiene --project # Claude Code, this repo
npx skilldrop-cli install output-hygiene --ide cursor # or kiro, codex, antigravity, copilot
It is part of the Core pack: --pack core installs it with its neighbours.
It ships scripts, so it needs Python 3 (standard library only, nothing to install). What they may touch is declared in its manifest.
Ask for it
Say it the way you would to a colleague. Requests like these route to it:
- "Remove the Claude watermark from this doc before I send it"
- "Strip the 'Generated with Claude Code' footer and the co-author trailer"
- "This draft sounds like AI — tell me exactly which sentences give it away"
- "There are invisible characters in this file breaking my diff, find them"
- "Clean up this text I pasted out of a chat window before it goes to the board"
Requests like these belong to a different skill, so it shouldn't answer them:
- "Review this design doc and tell me where the argument is weak"
- "Summarize this report for executives"
- "Write our company policy on acceptable AI use"
If another skill answers instead, ask for this one by name: "use output-hygiene".
Check what you get
A good result:
- Every mechanical finding names a codepoint or quotes the matched line. "Contains invisible characters" is unverifiable;
3:18 U+00A0 NO-BREAK SPACEis checkable in one keystroke. - Every prose finding quotes the span it is judging. The quote is the evidence. A finding that paraphrases is an opinion.
- The auto and review tiers stay separate in the report. Merging them means the user approves a homoglyph guess while approving a zero-width-space deletion.
- The medium is stated before the first finding. Half the classes are medium-dependent; a report that skips it is asserting a default it never disclosed.
- Rewrites are paste-able. "Tighten this" is not a rewrite. The replacement sentence is.
- The report says what it left alone. Including the provenance trailer when disclosure is owed, and why.
Use something else when
- The document's argument, structure, or evidence is the problem — that is
doc-critique. - The goal is to pass work off as unassisted where a policy requires disclosure. The skill stops on the provenance class and names the policy.
- The text is source code. Invisible-character scanning is worth running, but prose tells do not apply and the rewrite advice will be wrong.
- The user wants the text shortened or re-pitched for a different audience. That is a rewrite, not a hygiene pass.
Where a loop runs it
- Stage
confirmof theapplyloop, where gate G6.1 decides - Stage
polishof theship-a-draftloop
Next
- SKILL.md, the instructions the agent reads
- Its page on the site
- Related: doc-critique, ai-usage-policy