prose-hygiene

Remove AI writing tells from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI patterns. cs applies this to /summary and /wrap narratives; the lexical subset is enforced by `cs -lint`.

8 stars
byhex

Best use case

prose-hygiene is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Remove AI writing tells from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI patterns. cs applies this to /summary and /wrap narratives; the lexical subset is enforced by `cs -lint`.

Teams using prose-hygiene should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/prose-hygiene/SKILL.md --create-dirs "https://raw.githubusercontent.com/hex/claude-sessions/main/skills/prose-hygiene/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/prose-hygiene/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How prose-hygiene Compares

Feature / Agentprose-hygieneStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Remove AI writing tells from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI patterns. cs applies this to /summary and /wrap narratives; the lexical subset is enforced by `cs -lint`.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Prose Hygiene

The complete checklist for removing AI writing tells from prose. A reviewer applying
this reads the prose, flags every match below with the quoted text and a concrete
rewrite, then scores it (see Scoring). A regex can only catch the lexical items; the
structural and voice rules need a model judging meaning.

## Core principles

1. **Cut filler.** Remove throat-clearing openers, emphasis crutches, and every adverb. Say the thing.
2. **Break formulas.** No binary contrasts, negative listings, dramatic fragments, rhetorical setups, or false agency.
3. **Use active voice.** Every sentence needs a human subject doing something. No passive constructions. No inanimate object performing a human verb.
4. **Be specific.** Name the actual thing. No vague declaratives ("the reasons are structural"). No lazy extremes doing vague work.
5. **Put the reader in the room.** "You" beats "people." Specifics beat abstractions. No narrating from a distance.
6. **Vary rhythm.** Mix sentence lengths. Prefer two items to three. End paragraphs differently. No em-dashes.
7. **Trust the reader.** State facts directly. Skip softening, justification, and hand-holding.
8. **Cut quotables.** If a line sounds like a pull-quote, rewrite it.

## Phrases to cut

### Throat-clearing openers
Announcements before the point. Cut them and state the point.
"Here's the thing", "Here's what/this/that/why [X]", "The uncomfortable truth is", "It turns out", "The real [X] is", "Let me be clear", "The truth is", "I'll say it again", "I'm going to be honest", "Can we talk about", "Here's what I find interesting", "Here's the problem though". Any "here's what/this/that" construction is throat-clearing.

### Emphasis crutches
Add no meaning. Delete them.
"Full stop.", "Period.", "Let that sink in.", "This matters because", "Make no mistake", "Here's why that matters".

### Business jargon
Replace with plain language: navigate → handle; unpack → explain; lean into → accept; landscape → situation; game-changer → significant; double down → commit; deep dive → analysis; take a step back → reconsider; moving forward → next; circle back → revisit; on the same page → aligned.

### Adverbs
Cut all of them. No -ly words, no softeners, no intensifiers, no hedges. Specific offenders: really, just, literally, genuinely, honestly, simply, actually, deeply, truly, fundamentally, inherently, inevitably, interestingly, importantly, crucially. Also cut these fillers: "at its core", "in today's [X]", "it's worth noting", "at the end of the day", "when it comes to", "in a world where", "the reality is".

### Meta-commentary
Remove self-referential asides. The text should move, not announce its own structure.
"Hint:", "Plot twist:" / "Spoiler:", "You already know this, but", "But that's another post", "[X] is a feature, not a bug", "Dressed up as", "The rest of this essay...", "Let me walk you through...", "In this section, we'll...", "As we'll see...", "I want to explore...".

### Performative emphasis
Manufactured sincerity: "creeps in", "I promise", "They exist, I promise".

### Telling instead of showing
Announcing difficulty or importance rather than demonstrating it: "This is genuinely hard", "This is what leadership actually looks like", "This is what [X] actually looks like", "actually matters".

### Vague declaratives
Announce importance without naming the specific thing. Cut, or replace with the specific thing: "The reasons are structural", "The implications are significant", "This is the deepest problem", "The stakes are high", "The consequences are real".

## Structures to avoid

### Binary contrasts
False drama. State the point directly.
"Not because X. Because Y.", "[X] isn't the problem. [Y] is.", "The answer isn't X. It's Y.", "It feels like X. It's actually Y.", "The question isn't X. It's Y.", "Not X. But Y." / "not X, it's Y", "It's not this. It's that.", "stops being X and starts being Y", "doesn't mean X, but actually Y", "is about X but not Y", "not just X but also Y". Fix: state Y directly; drop the negation.

### Negative listing
Listing what something is not before revealing what it is. "Not a X... Not a Y... A Z." / "It wasn't X. It wasn't Y. It was Z." Fix: state Z.

### Dramatic fragmentation
Fragments for emphasis read as manufactured profundity. "[Noun]. That's it. That's the [thing].", "X. And Y. And Z.", "This unlocks something. [Word].". Fix: complete sentences.

### Rhetorical setups
Announce insight rather than deliver it. "What if [reframe]?", "Here's what I mean:", "Think about it:", "And that's okay." Fix: make the point.

### Formulaic constructions
"By the time X, I was Y." (narrative template), "X that isn't Y" (indirect; say "X is broken").

### False agency
Inanimate things given human verbs. AI loves this because it avoids naming the actor. "a complaint becomes a fix", "a bet lives or dies", "the decision emerges", "the culture shifts", "the conversation moves toward", "the data tells us", "the market rewards". Fix: name the human, or use "you".

### Narrator-from-a-distance
Floating above the scene. "Nobody designed this.", "This happens because...", "This is why...", "People tend to...". Fix: put the reader in the room.

### Passive voice
Hides the actor and drains energy. "X was created", "It is believed that", "Mistakes were made", "The decision was reached". Fix: name who did it, at the front of the sentence.

### Sentence starters to avoid
Sentences starting with What/When/Where/Which/Who/Why/How. Paragraphs starting with "So". Sentences starting with "Look,". Fix: lead with the subject or the specific thing.

### Rhythm patterns
Three-item lists (use two or one). Questions answered immediately (let them breathe or cut them). Every paragraph ending punchily (vary endings). Em-dashes (use commas or periods; none at all). Staccato fragmentation (do not stack short punchy sentences). "Not always. Not perfectly." (hedging disguised as reassurance).

### Word patterns
Lazy extremes (every, always, never, everyone, everybody, nobody) assert false authority; use specifics. All adverbs (see Phrases).

## Scoring

Rate 1-10 on each dimension. Total below 35/50 means revise.

| Dimension | Question |
|-----------|----------|
| Directness | Statements, or announcements? |
| Rhythm | Varied, or metronomic? |
| Trust | Respects the reader's intelligence? |
| Authenticity | Sounds human? |
| Density | Anything cuttable? |

## Before / after

- "Here's the thing: building products is hard. Not because the technology is complex. Because people are." becomes "Building products is hard. Technology is manageable. People aren't."
- "It turns out most teams struggle with alignment. The uncomfortable truth is nobody admits they're confused. And that's okay." becomes "Teams struggle with alignment. Nobody admits confusion."
- "In today's fast-paced landscape we need to lean into discomfort and navigate uncertainty. This matters because your competition isn't waiting." becomes "Move faster. Your competition is."
- "The decision emerged from the data, which told us the market was shifting." becomes "We read the usage numbers and cut the feature."

## License

MIT.

Related Skills

PROACTIVE: Invoke immediately when the user shares API keys, passwords, tokens, credentials, or secrets in their message. Look for patterns like "my API key is...", "password: ...", "TOKEN=...", or any sensitive credential. Do not wait to be asked.

8
from hex/claude-sessions

You detected that the user shared sensitive credentials. Your task is to securely store them in the session keychain.

infrastructure-prose

13
from docxology/template

Prose analysis utilities for research manuscripts and prose-focused projects. Provides readability metrics (Flesch, Flesch-Kincaid, Gunning Fog), heading-outline structural analysis, editorial quality flags (passive voice, hedge words, citation density, long sentences), aggregate ManuscriptReport across a manuscript directory, and a CLI (metrics/outline/quality/report). Use when analyzing manuscripts for readability, building editorial dashboards, validating heading structure, extracting citation keys from prose, or wiring prose-quality gates into the pipeline.

flow-hygiene

12
from benkruger/flow

Audit instruction corpus health — CLAUDE.md, rules, and memory for staleness, misplacement, duplication, and contradictions.

beautiful-prose

11
from EricGrill/agents-skills-plugins

A hard-edged writing style contract for timeless, forceful English prose without modern AI tics. Use when users ask for prose or rewrites that must be clean, exact, concrete, and free of AI cadence, filler, or therapeutic tone.

token-hygiene

10
from Growth4U-systems/claude-token-hygiene

Audits Claude Code system token overhead (CLAUDE.md, MEMORY.md, skills, MCP servers, daily logs) and generates a report with cleanup recommendations. Use monthly or when sessions feel slow. Trigger: "token hygiene", "context audit", "audit tokens".

operational-hygiene

9
from oborchers/fractional-cto

This skill should be used when the user is addressing cloud resource sprawl, implementing cost attribution and tagging enforcement, setting up monitoring and alerting defaults, configuring drift detection for Terraform, designing lifecycle policies for storage and artifacts, or cleaning up after migrations. Covers resource cleanup discipline, cost center enforcement, monitoring with sensible defaults, scheduled drift detection, and lifecycle automation.

personal-hygiene

7
from Demerzels-lab/elsamultiskillagent

Acts as the user's personal care and grooming assistant in the Hygiene topic.

memory-hygiene

7
from Demerzels-lab/elsamultiskillagent

Audit, clean, and optimize Clawdbot's vector memory (LanceDB). Use when memory is bloated with junk, token usage is high from irrelevant auto-recalls, or setting up memory maintenance automation.

prose

6
from me2Doc/friendlyclaw

OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.

beautiful-prose

6
from netbarros/psique

Hard-edged writing style contract for timeless, forceful English prose without AI tics

git-hygiene

6
from Zate/cc-plugins

This skill should be used for commit strategy, branch naming, conventional commits, PR workflow, and merge decisions in devloop

history-hygiene

6
from cwoodruff/morespeakers-com

Record final outcomes to history.md, not intermediate requests or reversed decisions