Skip to content

Skills · core

output-hygiene

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. Use 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.

Pack coreTier standardJob Get a draft ready to shipv0.1.3

npx skilldrop-cli install output-hygiene
Other ways to install

With the sibling skills it hands off to:

npx skilldrop-cli install output-hygiene --with-related

The whole pack it belongs to:

npx skilldrop-cli install --pack core

By hand, from a clone of the repo:

cp -R packs/core/skills/output-hygiene ~/.claude/skills/

In Claude Code, with the core plugin installed, invoke it as:

/core:output-hygiene

Try it

A realistic prompt from the skill's acceptance evals:

Clean this up before I send it to the board — it came out of a chat window. [a two-page migration summary containing a no-break space, a zero-width space mid-word, a narrow no-break space in '250 ms', a Cyrillic 'а' in 'admin', four em dashes in one paragraph, ten bullets that all open with a bolded lead-in, a closing 'Let me know if you'd like me to expand any of these phases', and a trailing 'Generated with Claude Code' footer]

What a good result looks like

How it's checked

Measured against plain Claude Code (2026-10-23): it met 55% of its checks, against 38% without it, and a blind judge preferred the agent without it. How skills are checked

26 assertions across 4 acceptance evals, and 9 trigger queries. Every skill's checks

What the output must do
  • The target medium is named in the first line of the report, before any finding
  • Every mechanical finding carries a line number and either a U+XXXX codepoint or the verbatim matched line
  • Auto-tier findings (invisible, spacing, provenance, closer) and review-tier findings (homoglyph, typography) are reported as separate groups and never merged into one list
  • The Cyrillic 'а' is reported with its codepoint and left unreplaced, not silently swapped for an ASCII 'a'
  • The em-dash finding is stated as a density across the paragraph with instances quoted, not as a per-dash defect
  • The bolded-lead-in finding proposes keeping bold on a named subset rather than removing all of it
  • Every prose tell quotes the offending span verbatim and supplies a paste-able replacement sentence
  • No number, named risk, or meaning-bearing caveat present in the input is absent from the rewritten text
  • The report contains a 'Not touched' section listing what was deliberately left alone and why
  • The provenance class is held rather than removed, and the report names the disclosure rule that holds it
  • Every other class is still scanned and reported — the disclosure boundary stops one class, not the pass
  • The response does not moralize; it states the rule in a sentence and offers the cleaning it can do
  • ai-usage-policy is named as the place the user's own disclosure rule gets written down
  • newsletter-clean.md exists, with the chat opener line ('Here's the polished version...') and the closing offer to adjust the tone removed
  • The zero-width character inside 'harvest' is gone from newsletter-clean.md
  • The Cyrillic lookalike letter in 'Payment' is identified (fixed or flagged), while the volunteer's name, written in Cyrillic, is left unchanged
  • Deepa Lal's quote is identical in newsletter-clean.md to the original
  • 37 volunteers, 112 trees, £4,250, 8 November, 30 November and the 'provisional until the annual audit' caveat all survive in newsletter-clean.md
  • Does not add sentences, facts or claims that were not in the original
  • The list of changes in the reply is about six lines or fewer
  • Returns a rewritten email ready to send, without asking questions first
  • Keeps order #4471, the oak dining table, 12 November and the 10% credit exactly
  • Drops the stock filler (such as 'I hope this email finds you well', 'It's important to note', 'seamless experience') rather than swapping in new filler
  • Is no longer than the original email
  • Does not add facts or promises not in the original, such as a reason for the delay, extra compensation or a different date
  • Stays polite and apologetic, suitable for a customer
When it should and shouldn't activate

Should activate:

  • 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

Should leave to another skill:

  • 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
  • Review this pull request for correctness bugs

Hands off to

Related skills

ai-usage-policy

Source

SKILL.md · the whole folder on GitHub.