{"id":50503200,"url":"https://github.com/gabelul/slopbuster","last_synced_at":"2026-06-19T07:00:37.309Z","repository":{"id":346462382,"uuid":"1190087778","full_name":"gabelul/slopbuster","owner":"gabelul","description":"AI text humanizer for prose, code \u0026 academic writing. 100+ patterns, two-pass audit, three-tier scoring, voice injection. Claude Code skill. No API calls — pure local pattern matching. The humanizer that studies how AI actually writes instead of swapping synonyms.","archived":false,"fork":false,"pushed_at":"2026-03-24T02:05:06.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-25T00:17:25.893Z","etag":null,"topics":["ai-agent-skills","ai-code-review","ai-humanizer","ai-patterns","ai-slop","ai-text-humanizer","ai-writing","anti-slop","claude-code","claude-code-skill","code-quality","codex-cli","coding-agent","cursor","deslop","gemini-cli","llm","text-humanization","writing-tools"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabelul.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-24T00:38:39.000Z","updated_at":"2026-03-24T02:05:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gabelul/slopbuster","commit_stats":null,"previous_names":["gabelul/slopbuster"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/gabelul/slopbuster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabelul%2Fslopbuster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabelul%2Fslopbuster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabelul%2Fslopbuster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabelul%2Fslopbuster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabelul","download_url":"https://codeload.github.com/gabelul/slopbuster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabelul%2Fslopbuster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34520432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent-skills","ai-code-review","ai-humanizer","ai-patterns","ai-slop","ai-text-humanizer","ai-writing","anti-slop","claude-code","claude-code-skill","code-quality","codex-cli","coding-agent","cursor","deslop","gemini-cli","llm","text-humanization","writing-tools"],"created_at":"2026-06-02T13:30:32.505Z","updated_at":"2026-06-19T07:00:37.280Z","avatar_url":"https://github.com/gabelul.png","language":null,"funding_links":[],"categories":["Text \u0026 Writing"],"sub_categories":["Code / PR / Team Governance"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\".github/assets/banner.svg\" alt=\"slopbuster — before and after AI text humanization\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n# slopbuster — AI text humanizer for prose, code \u0026 academic writing\n\nI built this because every \"humanizer\" I found did the same thing: swap \"delve\" for \"explore\" and call it a day. That's not humanization — that's find-and-replace with a marketing page.\n\nslopbuster is what happens when you actually study how AI text differs from human text — across prose, code, and academic writing. 100+ patterns built from analyzing 1,000+ AI vs human content samples and peer-reviewed LLM detection research. Two-pass audit (because removing AI patterns without adding voice creates sterile text that's equally detectable — just by a different classifier). Three-tier weighted scoring. And a voice injection system, because the goal isn't just subtraction.\n\n---\n\n## Install\n\n```bash\nnpx skills add gabelul/slopbuster\n```\n\nOne command. Auto-detects your agent, symlinks the skill. Update later with `npx skills update`.\n\n\u003cdetails\u003e\n\u003csummary\u003eManual install\u003c/summary\u003e\n\n```bash\n# Claude Code\ncp -r slopbuster ~/.claude/skills/\n\n# Codex CLI\ncp -r slopbuster ~/.codex/skills/\n\n# Any other agent — copy into your agent's skill directory\ncp -r slopbuster /path/to/agent/skills/\n```\n\u003c/details\u003e\n\n## Usage\n\n```bash\n/slopbuster blog-post.md                              # auto-detect mode, standard depth\n/slopbuster src/ --mode code                           # scan source files for AI patterns\n/slopbuster paper.md --mode academic --field biomedical # academic with section awareness\n/slopbuster doc.md --depth deep --voice-sample me.md   # calibrate to a specific voice\n/slopbuster draft.md --score-only                       # just score, don't rewrite\n```\n\nNo API calls. No dependencies. Pure pattern matching that runs locally.\n\nWant your agent to follow slopbuster's rules on *everything* it writes, not just when you invoke the skill? See the **[setup guide](docs/setup-guide.md)** for CLAUDE.md, Cursor, Codex, Windsurf, and other agent configs.\n\n---\n\n## Before \u0026 after\n\nMost humanizers do one pass: find patterns, replace them. Done. But removing AI patterns without adding voice produces sterile text that's equally detectable. slopbuster runs a second pass.\n\n**Before (3.8/10):**\n\u003e \"In today's rapidly evolving digital landscape, it's crucial to understand that leveraging AI effectively isn't just about utilizing cutting-edge technology — it's about harnessing its transformative potential.\"\n\n**After first pass (6.2/10):**\n\u003e \"Using AI effectively means picking specific tasks where it adds measurable value, rather than applying it broadly across an organization.\"\n\n**After second pass (8.4/10):**\n\u003e \"AI works best when you pick one job and nail it. Salesforce cut support tickets 30% with Einstein AI. HubSpot writes first drafts in 2 minutes. The pattern? Specific task, measurable result.\"\n\nThe first pass removed the slop. The second pass added the soul.\n\n---\n\n## What it catches\n\n### Text (24 patterns)\n\n| Category | Count | Examples |\n|----------|-------|---------|\n| Content | 6 | Significance inflation (\"pivotal moment\"), promotional language (\"nestled in the heart of\"), vague attributions (\"experts argue\") |\n| Language | 6 | AI vocabulary (delve, tapestry, landscape), copula avoidance (\"serves as\" → \"is\"), synonym cycling, rule-of-three forcing |\n| Style | 6 | Em dash clusters, boldface overuse, emoji as structure, curly quotes, title case headings |\n| Communication | 9 | Chatbot artifacts (\"I hope this helps!\"), sycophancy (\"Great question!\"), filler phrases, hedging stacks, generic conclusions |\n| Structure | — | Opening/ending anti-patterns, rhythm tests, paragraph structure checks |\n\n### Code (80+ patterns)\n\nThis is what nobody else has. AI-generated code has its own tells — different from prose, but just as detectable:\n\n| Domain | Count | Examples |\n|--------|-------|---------|\n| Comments | 18 | Tautological (`// Increment counter`), \"we\" language, philosophical prose, section banners |\n| Naming | 14 | Verbose compounds (`userDataObject`), Manager/Handler suffix abuse, acronym avoidance |\n| Commits | 10 | Vague verbs (\"improve\"), passive voice, past tense, \"various\" bundling |\n| Docstrings | 8 | Type redundancy, tautological summaries, happy-path-only docs |\n| Quality | 15+ | Broad exception catches, god functions, mock-heavy tests, boolean params |\n| LLM tells | 16 | Commented-out alternatives, perfectly symmetrical code, canonical placeholder values |\n\n### Academic (49 rules, 10 groups)\n\nSection-specific guidance that knows Methods sections use passive voice (and should keep it), Discussion sections should open with interpretation (not restatement), and Abstracts can't afford a single filler word:\n\n- **Group A:** Meaning \u0026 accuracy (hard boundaries — never break these)\n- **Group B:** Generic filler (kill \"moreover,\" \"plays a crucial role,\" meta-language)\n- **Group C-D:** Punctuation habits and sentence patterns\n- **Group E-F:** Voice, reasoning, deep AI syntax (abstract noun subjects, nominalization chains)\n- **Group G-J:** Creative grammar, metaphor architecture, logical closure, subject variety\n\n---\n\n## Scoring\n\nThree-tier weighted system. Not all AI patterns are equal — \"delve\" is a dead giveaway, \"Additionally\" is just suspicious.\n\n| Tier | Weight | What it catches |\n|------|--------|----------------|\n| **Tier 1** | 3 pts | Dead giveaways: \"delve,\" \"tapestry,\" \"navigate the landscape,\" sycophancy, chatbot artifacts |\n| **Tier 2** | 2 pts | Corporate tells: \"synergy,\" \"leverage,\" copula avoidance, significance inflation, rule-of-three |\n| **Tier 3** | 1 pt | Weak signals: \"Additionally,\" \"Furthermore,\" em dash clusters, mild hedging |\n\n**Human-ness scale (0-10):**\n- 0-3: Obviously AI (multiple cliches, robotic structure)\n- 4-5: AI-heavy (some human touches, needs work)\n- 6-7: Mixed (could go either way)\n- 8-9: Human-like (natural voice, minimal patterns)\n- 10: Indistinguishable from skilled human writer\n\n**Target: 8+ for anything going public.**\n\n---\n\n## Depth levels\n\n| Depth | What happens | Best for |\n|-------|-------------|----------|\n| `quick` | Single pass, obvious patterns only, no scoring | Fast edits, social copy, Slack messages |\n| `standard` | Full pattern scan + two-pass audit + score + changelog | Anything going public |\n| `deep` | Full scan + voice calibration against a writer's sample | Ghostwriting, brand voice matching |\n\n---\n\n## File structure\n\n```\nslopbuster/\n├── SKILL.md                    # Master orchestrator — routes, modes, process\n├── rules/\n│   ├── text-content.md         # 6 content patterns\n│   ├── text-language.md        # 6 language patterns\n│   ├── text-style.md           # 6 style patterns\n│   ├── text-communication.md   # 9 communication/filler/hedging patterns\n│   ├── text-structure.md       # Structural anti-patterns + restructuring frameworks\n│   ├── code-comments.md        # 18 comment anti-patterns\n│   ├── code-naming.md          # 14 naming anti-patterns\n│   ├── code-commits.md         # 10 commit message anti-patterns\n│   ├── code-docstrings.md      # 8 docstring anti-patterns\n│   ├── code-quality.md         # Error handling + API design + test patterns\n│   ├── code-llm-tells.md       # 16 structural code tells\n│   └── academic.md             # 49 rules, 10 groups, section-specific\n├── guides/\n│   ├── voice-and-soul.md       # Soul injection — not just pattern removal\n│   └── style-template.md       # Build-your-own voice profile for deep mode\n└── scoring.md                  # Three-tier weighted scoring system\n```\n\n---\n\n## Supported tools\n\nWorks with any AI coding agent that supports skills. Pure markdown — no runtime, no API calls.\n\n| Agent | Status |\n|-------|--------|\n| Claude Code | Supported |\n| Codex CLI | Supported |\n| Cursor | Supported |\n| OpenCode | Supported |\n| Gemini CLI | Supported |\n| VS Code Copilot | Supported |\n| Kiro | Supported |\n| Pi | Supported |\n| Windsurf | Supported |\n| Cline | Supported |\n\nPlus [40+ more agents](https://github.com/vercel-labs/skills) via the Skills CLI.\n\n---\n\n## Related\n\n- **[pixelslop](https://github.com/gabelul/pixelslop)** — the visual counterpart. Catches AI-generated image slop.\n- **[pixeltamer](https://github.com/gabelul/pixeltamer-gpt-image-skill)** — the image-generation counterpart. gpt-image-2 prompting doctrine, two backends, three modes, and recipes that actually work.\n- **[stitch-kit](https://github.com/gabelul/stitch-kit)** — design superpowers for coding agents via Google Stitch MCP.\n\n## Sources\n\nBuilt from analyzing 1,000+ AI vs human content samples, cross-referenced against peer-reviewed LLM detection research (Kobak et al. 2025, Liang et al. 2024, Juzek \u0026 Ward COLING 2025), and Wikipedia's [Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing) (CC BY-SA 4.0).\n\n## Contributing\n\nFound a new AI pattern? Have a rule that catches something we miss? See [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nMIT — use freely. See [LICENSE](LICENSE).\n\n---\n\nBuilt by Gabi @ [Booplex.com](https://booplex.com) — because I got tired of reading my own AI-assisted output and cringing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabelul%2Fslopbuster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabelul%2Fslopbuster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabelul%2Fslopbuster/lists"}