From superpowers-plus
Scans markdown content for profanity and unprofessional language as a hard gate, blocking wiki updates or git commits of user-facing docs like README.md and skill.md.
npx claudepluginhub bordenet/superpowers-plus --plugin superpowers-plusThis skill uses the workspace's default tool permissions.
> **Wrong skill?** AI slop detection → `detecting-ai-slop`. AI slop rewriting → `eliminating-ai-slop`. General writing standards → `writing-skills`.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Wrong skill? AI slop detection →
detecting-ai-slop. AI slop rewriting →eliminating-ai-slop. General writing standards →writing-skills.Last Updated: 2026-03-11 Incident: Profanity found in documentation during audit. AI slop skills didn't catch it.
This skill scans content for profanity and unprofessional language BEFORE it reaches user-facing documentation. It operates as a HARD GATE — content with profanity cannot be published.
This skill fires AUTOMATICALLY before:
*.md in skills/)If profanity is detected, the operation is BLOCKED:
⛔ PROFESSIONAL LANGUAGE AUDIT FAILED
Gate Status: 🚫 BLOCKED — Cannot publish
Violations Found: 3
| Line | Text | Category | Suggestion |
|------|------|----------|------------|
| 47 | "[crude] experience" | profanity | "frustrating experience" |
| 112 | "[expletive] broken" | profanity | "completely broken" |
| 156 | "this is [expletive]" | profanity | "this is unacceptable" |
ACTION REQUIRED:
1. Replace all flagged terms
2. Re-run audit: "check for profanity"
3. Only then proceed with publish/commit
If no profanity is detected:
✅ PROFESSIONAL LANGUAGE AUDIT PASSED
Gate Status: ✅ PASS — Ready to publish
Scanned: 1,247 words across 3 files
Profanity matches: 0
Proceed with wiki update/commit.
Patterns are loaded from .profanity-patterns.txt (in scripts/ or repo root).
Pattern structure: \b(pattern1|pattern2|pattern3|...)\b
Matching is:
| Category | Severity | Action |
|---|---|---|
| Explicit/sexual terms | HIGH | BLOCK |
| Scatological terms | HIGH | BLOCK |
| Religious profanity | HIGH | BLOCK |
| Body vulgarities | HIGH | BLOCK |
| Gendered slurs | HIGH | BLOCK |
| Internet shorthand | MEDIUM | BLOCK |
| Crude expressions | LOW | FLAG for review |
FLAG vs BLOCK:
Gate 4 in the commit-gates chain: pre-commit-gate → enforce-style-guide → progressive-code-review-gate → this → public-repo-ip-audit → commit.
Preferred:
use-skill unified-commit-gateloads all 5 gates in one load. Use this skill directly only for deep-dive when the language gate fails.
Pre-wiki: Run profanity regex before publishing. BLOCK on match.
Pre-commit: Scan staged .md files:
git diff --cached --name-only | grep -E '\.(md)$'
node scripts/slop-dictionary.js scan-profanity FILE.md
| Pattern Type | Professional Alternative |
|---|---|
| [crude]-[negative] | unrewarding, frustrating, problematic |
| [expletive] broken | completely broken, non-functional |
| this is [expletive] | this is unacceptable, this doesn't work |
| [profane] difficult | extremely difficult, challenging |
| [crude] code | poor quality code, problematic code |
| what the [expletive] | what happened, unexpectedly |
| [angry expletive] | frustrated, upset |
Single file:
node scripts/slop-dictionary.js scan-profanity FILE.md
Seed profanity patterns to dictionary:
node scripts/slop-dictionary.js seed-profanity
List profanity patterns:
node scripts/slop-dictionary.js list profanity