Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

No AI Slop

A simplified and customized version of realrossmanngroup's no_ai_slop_writing_rules

👋 Hi, you were probably sent here.

If someone handed you a link to this repo, it is because you sent them AI-generated shit so obviously AI-generated that they stopped reading partway through and went looking for a polite way to say "run it through a human first."

Pasting raw Gemini or ChatGPT output with zero editing, or running a project with no anti-slop rules at all, is the 2026 equivalent of handing out a business card with an @aol.com email on it. The tool is fine. Shipping its first draft with your name on it is the part people notice.

Nobody is mad that you used a model. Everybody can tell, because the model has tics and you left every one of them in.

The dead giveaway is the "It's not X. It's Y." construction, and its cousin "It's not just X, it's Y with Z." This isn't a price increase. It's a betrayal of trust. This isn't just a phone. It's a statement. The model loves it because it sounds profound and commits to nothing. Real people do not talk like this. They say what the thing is.

Then there is the dramatic noun-phrase heading. The model writes "The Pricing Trap" when the honest heading is "how to avoid scam pricing." It writes "The Hidden Cost of Convenience" instead of "subscriptions add up." A heading is supposed to tell you what is in the section, not tease it like a movie poster.

And the rest of the kit: "Let's dive in." "Here's the thing." "But here's the kicker." "In a world where..." A 🚀 emoji in front of a bullet. Every list built in threes because three sounds complete. The fake-punchy one-line paragraph.

For drama.

Read your own output before you send it. That is the whole ask.

The rules below are what "read it first" looks like written down. Steal them.

A portable set of writing rules that make Claude produce specific, grounded prose instead of the generic patterns that mark machine-generated text. It works in Claude Chat and Claude Code, and it carries over to any subject: essays, posts, documentation, emails, scripts, or ordinary chat answers.

The rules are about the writing itself. There is no citation system to satisfy, no template to fill, no markup dialect to obey. The one habit behind all of them: replace a vague claim with a concrete, checkable detail (a number, a name, a date, an example, a source).

What's in here

File What it does
no-ai-slop/SKILL.md The 24 anti-slop rules, banned-word lists, structural tells, and a self-check pass. Says what to avoid.
ross-voice/SKILL.md A grounded, general-purpose writing voice: concrete specifics, varied sentence length, contractions, claim-then-proof. Says how to write.
CLAUDE.md Always-on enforcement for Claude Code. Loaded into context on every run in this project.
always-on-instructions.md A block to paste into a Claude custom instructions, the one mechanism that applies to every chat output.

no-ai-slop and ross-voice pair up: one removes the slop, the other shapes the prose. They are meant to run together.

How the two skills relate

  • no-ai-slop is the floor. It bans em dashes, unsourced statistics, filler phrases, AI verbs and transitions, empty intensifiers, dramatic headings, fabricated attributions, and the structural tells (uniform paragraphs, flat sentence length, hedging overload). It ends with a self-check to run before returning text.
  • ross-voice is the target. It pushes toward concrete detail over abstraction, exact identifiers over categories, short paragraphs that open with a claim, and an argument built as claim, evidence, outcome.

A skill body cannot force itself onto output. In Claude Chat, skills are loaded when their description matches the task, so both descriptions are written to trigger on any prose-shaped request. For guaranteed application on every output, use the always-on mechanisms below.

Use it in Claude Chat

  1. Add no-ai-slop and ross-voice as skills in a Project (each in its own folder, named SKILL.md).
  2. For application on every message, paste the contents of always-on-instructions.md into that Project's custom instructions. Custom instructions are injected into every chat, so this is the part that does not depend on the model choosing to load a skill.

Use it in Claude Code

  1. Drop this project next to your work, or point Claude Code at it.
  2. CLAUDE.md is loaded into context automatically on every run, so the rules apply without being asked.
  3. For the skills to be auto-discovered, place the no-ai-slop and ross-voice folders under .claude/skills/.

On enforcement

There is a real limit worth stating plainly. Nothing inside a skill or a CLAUDE.md can block a non-conforming response; they steer the model, they do not gate the output.

  • Claude Code can be made deterministic with a hook (a script in settings.json that scans output and rejects, say, an em dash). That is the only hard guarantee, and it carries a cost: false positives can block legitimate text, such as a quoted em dash or a real statistic the checker can't verify. A warn-only hook is a safer first step.
  • Claude Chat has no enforcement layer. The custom-instructions block is as close to always-on as the platform allows.

Background

The rules started as a single 24-rule set and a banned-word reference. This project compacts them into self-contained skill files that work in Claude Chat, not only Claude Code, and adds a grounded general-writing voice (ross-voice) derived from the same principles.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors