Agent skill

Vibe Slop Filter

by ash1794 in ash1794/vibe-engineering

Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails).

MITAuto-check passedDevelopment

Install Vibe Slop Filter

skills CLI
$ npx skills add ash1794/vibe-engineering --skill vibe-slop-filter -a claude-code

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

GitHub CLI
$ gh skill install ash1794/vibe-engineering vibe-slop-filter --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/ash1794/vibe-engineering.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/vibe-engineering/skills/vibe-slop-filter .claude/skills/vibe-slop-filter && 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
vibe-slop-filter
GitHub stars
163
Token cost
~2.3k tokens
SKILL.md length
1,146 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
MIT

At a glance

Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails).

  • Works in 5 steps: Count before you read → Fix the worst offender first → Walk the tells → …
  • Asked to de-slop text
  • SKILL.md covers When to Use This Skill, When NOT to Use This Skill, Steps and What Is NOT Slop, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Vibe Slop Filter is an agent skill from ash1794/vibe-engineering. Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails). Counts measurable tells first (keyword saturation, tricolons and anaphora, the "not X, it's Y" reflex, fragment-for-emphasis, bolded thesis lines, listicle-ization, signpost phrases, filler vocabulary, em-dashes, engineered-quotable closers), then applies a "doing work or reflex?" test to each instance so genuine voice survives. Use when asked to de-slop text or make it sound human, when text…

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes, Pull requests and Technical documentation. The repository describes itself as: 33 engineering discipline skills for Claude Code, OpenAI Codex & Gemini CLI + a CLI for CI/CD enforcement. Extracted from real-world multi-agent system development. Born from… The licence is MIT.

When your agent uses it

  • Asked to de-slop text
  • Make it sound human
  • Text reads as machine-written
  • As the final pass on prose the agent drafted

Example prompts

  • “not X, it”
  • “doing work or reflex?”
  • “Use the vibe-slop-filter skill to strip AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts…”
  • “/vibe-slop-filter”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Count before you read
  2. Fix the worst offender first
  3. Walk the tells
  4. Re-run the counts
  5. Read once more for rhythm

What it can do on your machine

Read from SKILL.md and the folder at commit 8f1d71b. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    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

Vibe Slop Filter loads about 2.3k tokens when it runs. Until then it costs about 152 tokens; SKILL.md has 1,146 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~152
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from ash1794/vibe-engineering at commit 8f1d71b, republished under its MIT licence (© ash1794). 1,146 words, ~2,258 tokens.

Download SKILL.mdSave it as .claude/skills/vibe-slop-filter/SKILL.md (or your agent's skills folder).
name
vibe-slop-filter
description
Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails). Counts measurable tells first (keyword saturation, tricolons and anaphora, the "not X, it's Y" reflex, fragment-for-emphasis, bolded thesis lines, listicle-ization, signpost phrases, filler vocabulary, em-dashes, engineered-quotable closers), then applies a "doing work or reflex?" test to each instance so genuine voice survives. Use when asked to de-slop text or make it sound human, when text reads as machine-written, and as the final pass on prose the agent drafted.
user-invocable
true

vibe-slop-filter

A pass for removing the texture that makes prose read as machine-assembled rather than written by a specific person. It is a filter, not a generator: it finds and flags the tells and informs the rewrite. The rewrite is a separate act.

It matters most for writing about AI, where the slop reads as self-refuting, and for AI-literate readers, who reject prose on smell before they reach the argument. It applies to any prose read by someone who can choose to stop reading.

Every tell below is also legitimate writing in moderation. One deliberate tricolon, one earned fragment, one antithesis at the pivot of the argument: that is craft. The tell is the reflexive overuse, the same rhythm firing because it is the model's default rather than because the sentence needed it. So the filter has two jobs, and the second matters as much as the first:

  1. Catch the device used as a reflex.
  2. Don't sand genuine voice into choppy, variation-for-its-own-sake prose. Over-applying the filter is its own failure.

For every flag the test is the same: is this doing work, or is it reflex? Keep what does work. Cut the rest.

When to Use This Skill

  • Asked to de-slop text, remove the AI smell, or make it sound human
  • Asked whether something reads as AI-generated
  • Final pass on prose the agent drafted that a person will read: README sections, docs, release notes, PR descriptions, announcements, emails
  • Text you've been given pattern-matches generic LLM writing

When NOT to Use This Skill

  • Code, config, and structured data
  • Reference material that is meant to be scanned (API tables, command lists, changelogs written as bullet lists)
  • Checking a technical document's structure and accuracy (use vibe-doc-quality-gate)
  • Critiquing whether the argument is right (use vibe-devil-advocate-review); this skill fixes how prose reads, not what it claims
  • Text the user wrote in their own voice and didn't ask you to change

Steps

1. Count before you read

A read-through normalizes tics: by the third "It is not X, it is Y" you have stopped hearing it. Counts don't normalize. Run them first so you know where to look. Replace the filename and the keyword:

bash
f="draft.md"

# Keyword saturation: run once per thesis word you suspect is overused.
# A content keyword appearing more than once per ~300-400 words is worth examining.
echo "words:"; wc -w < "$f"
echo "keyword:"; grep -oiE "theater" "$f" | wc -l

# Em-dashes (a default LLM punctuation pattern; usually want few or none).
grep -o "—" "$f" | wc -l

# Bolded segments (free-standing thesis lines and bolded list-leads).
grep -oE "\*\*[^*]+\*\*" "$f" | wc -l

# Numbered-list items (the listicle reflex).
grep -cE "^[0-9]+\. " "$f"

# "not X, it's Y" antithesis density.
grep -oiE "is not |are not |not just |not only |it'?s not |rather than" "$f" | wc -l

# Filler intensifiers and house-LLM vocabulary.
grep -noiE "\b(genuinely|truly|simply|actually|really|incredibly|seamless|robust|crucial|pivotal|delve|leverage|myriad|plethora|tapestry|landscape|realm|testament)\b" "$f"

# Anaphora: runs of 3+ consecutive sentences opening with the same word.
grep -oE "(^|\. )[A-Z][a-z]+" "$f" | sed -E 's/^\. //' | uniq -c | awk '$1>=3'

The counts point at suspects. The judgment is still yours.

2. Fix the worst offender first

Read once for the biggest problem the counts named, usually keyword saturation or stacked tricolons. Fixing it often removes others with it.

3. Walk the tells

Apply "work or reflex?" to each instance rather than deleting by category.

Lexical

  • Keyword saturation. The thesis word repeated far past what a person would tolerate (one real essay used "theater" 23 times in 2,900 words). A writer reaches for paraphrase and concrete description; a model hammers the one word. Fix: name the concept two or three times and describe it concretely the rest of the time.
  • Filler intensifiers and house vocabulary. "genuinely," "truly," "simply," "really," "delve," "leverage," "robust," "seamless," "crucial," "navigate the landscape," "a testament to," "tapestry." Fix: cut the adverb, or replace the cliché with the specific thing it gestures at.

Rhythm

  • Full-sentence tricolon and anaphora. Three or more consecutive sentences in the same shape for cadence ("The dashboard... The velocity chart... The readiness report..."). The most recognizable machine-essay rhythm. Fix: vary openers and structures, fold the three into one sentence, or cut to two.
  • The "it is not X, it is Y" reflex. Antithesis used as a beat rather than to mark a real distinction. Fix: keep only the ones at a genuine pivot; state the rest plainly.
  • Fragment-for-emphasis on a loop. Beat after beat ending on a clipped fragment ("The opposite." "Zero progress."). Fix: a couple at most, each earned by what precedes it.
  • Rule-of-three noun lists. "faster, cheaper, and better" by default. Fix: use two, or four, or an uneven list.
  • Uniform aphorism cadence. Every paragraph landing on a punchy one-liner until the emphasis stops registering. Fix: let most paragraphs end plainly and keep the sharp line for where it's earned.

Structure and format

  • Bolded thesis sentences and bolded list-leads. Free-standing bold declaratives; the carousel-post smell. Fix: cut the bold and let the sentence carry itself.
  • Listicle-ization. An argument turned into a numbered list of named principles. Arguments live in prose; checklists are for procedures. Fix: dissolve into prose and let each point come out of the concrete case that earns it.
  • Mechanical symmetry. Every section the same length, "First / Second / Finally" scaffolding showing. Fix: let section weight follow the content.

Stance

  • Signpost phrases. "Here's the thing," "It's worth noting that," "Make no mistake," "At the end of the day." Announcing that something important is coming instead of saying it. Fix: delete the signpost, keep the content.
  • Engineered-quotable closers. Lines built to be screenshotted rather than to be true. Fix: keep the claim, drop the polish.
  • Hedge-then-assert and false balance. "While it's true that X, ultimately Y." Fix: make the claim.
  • Vague universal openers. "In today's fast-paced world," "As AI continues to evolve." Fix: open on something only this piece could open on.
Show full SKILL.md (316 more words)Show less
4. Re-run the counts

Confirm the tells dropped, and check you didn't over-correct.

5. Read once more for rhythm

The prose should sound like one person who was in the work, not an assembly of devices. If it has become choppy, evenly clipped, or self-consciously varied, the filter was over-applied; restore the rhythm.

What Is NOT Slop

Don't flag these. Sanding them out is how the filter ruins good prose:

  • A single tricolon or fragment used deliberately for a real effect.
  • One antithesis at the pivot of the argument.
  • A list that is genuinely list-shaped (steps, options, a comparison) when the reader needs to scan it.
  • Specifics, names, and numbers. They are the opposite of slop and the best defense against it. When a piece over-explains, the fix is usually more specificity, not less.
  • A long sentence next to a short one. Variation is the goal, not a target length.

Output Format

Slop Filter: [document]
TellBeforeAfterNote
Keyword "[word]"233
Em-dashes142
Antithesis92kept the two at real pivots
...

Rewrites: [the changed passages, or the revised text if asked to apply] Kept on purpose: [devices left in because they do work, one line each]

Example

Before (keyword "theater" 23 times; a stacked tricolon):

This is not a bug. This is theater. ... A pass must be distinguishable from a pass-by-accident. A defer must be distinguishable from a spin loop. A green light must be distinguishable from "nobody checked."

After (keyword down to 2 across the piece; tricolon folded into one concrete sentence):

This is not a failure you debug. The code did exactly what it was told. What it was told to do was produce a green light with no way to tell working apart from merely running.

The argument is unchanged. The drumbeat and the mechanical parallel are gone, and the concrete sentence does the work the rhythm was faking.

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

Files

Just SKILL.md in plugins/vibe-engineering/skills/vibe-slop-filter of ash1794/vibe-engineering.

Open the folder on GitHubat commit 8f1d71b

Compare with similar skills

Vibe Slop Filter 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.

Vibe Slop Filter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vibe Slop Filter this skillash1794/vibe-engineering163—~2.3kAutomated safety check: PassMIT
Opik Documentation Patternscomet-ml/opik22k—~1.3kAutomated safety check: PassApache-2.0
Prosestatic-web-server/static-web-server2.4k—~1.2kAutomated safety check: PassApache-2.0
Maintain DisCatSharpAiko-IT-Systems/DisCatSharp140—~1.2kAutomated safety check: PassMIT
Human Writingkylesnowschwartz/SimpleClaude114—~3.6kAutomated safety check: PassNone
Writingagentic-community/mcp-gateway-registry968—~3.5kAutomated safety check: PassApache-2.0

Similar skills

  • Rules for writing PR descriptions, changelog entries and feature documentation in the Opik repository, including the exact headings that CI requires.

    22k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Prose

    static-web-server/static-web-server

    Write or edit human-readable text for the Static Web Server (SWS) project — commit messages, CHANGELOG entries, PR descriptions, issue bodies, rustdoc comments, CLI help text, READMEs, and user docs…

    2.4k GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Maintain DisCatSharp

    Aiko-IT-Systems/DisCatSharp

    Guides changes to the DisCatSharp C# Discord library: tracing a payload field through parsing, serialization and caches, then validating across target frameworks.

    140 GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Human Writing

    kylesnowschwartz/SimpleClaude

    MUST be used for any request to draft, write, compose, or reword text another person will read, including 'draft a message', 'draft a reply', 'draft a Slack message', 'write an email', 'draft a PR…

    114 GitHub stars~3.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Writing

    agentic-community/mcp-gateway-registry

    Write prose people will actually read. An agent skill from agentic-community/mcp-gateway-registry.

    968 GitHub stars~3.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Tech Writer

    stacklok/mecatl

    A skill your agent uses when writing or substantively editing user-facing documentation: drafting a new page, rewriting or restructuring an existing one, adding a major section, or turning…

    254 GitHub stars~2.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from ash1794/vibe-engineering

All 33 skills in this repo
  • Vibe Concurrent Test Safety

    ash1794/vibe-engineering

    Audits tests for concurrency safety — race conditions, shared mock state, cleanup ordering.

    163 GitHub stars~665 tokensUpdated 3 days ago
    Auto-check passed
  • Vibe Fuzz Parser Inputs

    ash1794/vibe-engineering

    Generates fuzz test scaffolding for parsers handling external input (YAML, JSON, config files, user input).

    163 GitHub stars~722 tokensUpdated 3 days ago
    Auto-check passed
  • Vibe Golden File Testing

    ash1794/vibe-engineering

    Implements snapshot/golden file tests with temporal normalization so tests don't break daily.

    163 GitHub stars~669 tokensUpdated 3 days ago
    Auto-check passed
  • Vibe Parallel Task Decomposition

    ash1794/vibe-engineering

    Analyzes large tasks for independent subtasks that can be safely parallelized.

    163 GitHub stars~717 tokensUpdated 3 days ago
    Auto-check passed
  • Vibe Spec Sync

    ash1794/vibe-engineering

    Keeps specification documents and code in agreement. An agent skill from ash1794/vibe-engineering.

    163 GitHub stars~2.2k tokensUpdated 3 days ago
    Auto-check passed
  • Vibe Adversarial Test Generation

    ash1794/vibe-engineering

    Generates edge case, failure mode, and spec-driven test cases.

    163 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed

Categories

Questions about Vibe Slop Filter

What does Vibe Slop Filter do?

Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails). Vibe Slop Filter is an agent skill from ash1794/vibe-engineering. Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails).

When should I use Vibe Slop Filter?

Vibe Slop Filter fits situations like: asked to de-slop text; make it sound human; text reads as machine-written; as the final pass on prose the agent drafted.

How do I install Vibe Slop Filter in Claude Code?

Run `npx skills add ash1794/vibe-engineering --skill vibe-slop-filter -a claude-code`. Or copy the skill folder (plugins/vibe-engineering/skills/vibe-slop-filter in ash1794/vibe-engineering) into .claude/skills/vibe-slop-filter in your project. Claude Code loads it when a task matches its description.

How do I install Vibe Slop Filter in Codex?

Run `npx skills add ash1794/vibe-engineering --skill vibe-slop-filter -a codex`. Or copy the skill folder (plugins/vibe-engineering/skills/vibe-slop-filter in ash1794/vibe-engineering) into .agents/skills/vibe-slop-filter in your project. Codex loads it when a task matches its description.

Can I use Vibe Slop Filter 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 ash1794/vibe-engineering --skill vibe-slop-filter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vibe-slop-filter, .gemini/skills/vibe-slop-filter, .github/skills/vibe-slop-filter and .opencode/skills/vibe-slop-filter in your project.

What does Vibe Slop Filter need to run?

SKILL.md names no scripts, command-line tools or credentials: Vibe Slop Filter is instructions for the agent only.

Does Vibe Slop Filter 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 Vibe Slop Filter 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. Review the folder before installing.

What licence does Vibe Slop Filter use?

Vibe Slop Filter 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 Vibe Slop Filter use?

About 2.3k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Vibe Slop Filter?

Skills that share tags, products or a category with Vibe Slop Filter: Opik Documentation Patterns (comet-ml/opik, 22k stars), Prose (static-web-server/static-web-server, 2.4k stars), Maintain DisCatSharp (Aiko-IT-Systems/DisCatSharp, 140 stars) and Human Writing (kylesnowschwartz/SimpleClaude, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vibe Slop Filter?

ash1794 (a GitHub user) maintains it in ash1794/vibe-engineering, which has 163 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 7, 2026.

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