unslop
Skill7 starsChanged 3 months agoMITView on GitHub
Unified de-slop pass: code simplification + comment rot detection + design slop check. Run after completing features or before PRs to strip AI-generated generic patterns.
197 other projects use a version of this.
Adopted by
Most recently taken up by
- backnotprop/pstacktheir own version, first seen Nov 15, 2026
- titouannwtt/claude-toolstheir own version, first seen Nov 15, 2026
- asarelcastellanos/claude-workbenchtheir own version, first seen Nov 15, 2026
- Nishchay-Bhudia/unsloptheir own version, first seen Nov 15, 2026
- sammyjoyce/prime-pstacktheir own version, first seen Nov 15, 2026
- pronvis/skillstheir own version, first seen Nov 15, 2026
Used with
Projects with it also use principle-never-block-on-the-human, greploop-apps and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
jaydubya818Skillprinciple-never-block-on-the-human
Apply when safe reversible implementation details can proceed inside scope.
Also in 45 projects that use this
jaydubya818Skillgreploop-apps
Run greploop through @greptile-apps when the normal trigger rejects a large PR. Use only with the companion greploop skill.
Also in 5 projects that use this
ianclearySkillprinciple-explain-the-number
Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.
Also in 30 projects that use this
bnemaSkillsetup-pstack
Configure which Pi models pstack uses per role. Detects available provider/model specs and writes pstack's user configuration. Use for /setup-pstack, "configure pstack models", or changing pstack model choices.
Also in 26 projects that use this
ianclearySkillpoteto-help
Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.
Also in 15 projects that use this
- +7 more from jaydubya818
Other versions197 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 197
- heydamir/unslop★ 17ksame name
- tester-army/e2e★ 14ksame name
- jaredpalmer/kev★ 9.8ksame name
- backnotprop/pstack★ 4.2ksame name
- michaelshimeles/rstack★ 1.4ksame name
- michaelshimeles/skills★ 1.4ksame name
- VladSez/easy-invoice-pdf★ 1.1ksame name
- theclaymethod/unslop★ 1.1ksame name
- Silo-Server/silo-server★ 899same name
- moeru-ai/xsai★ 667same name
187 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository25 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- enlightenSkill
- brainstormingSkill
- ce-brainstormSkill
- ce-compound-refreshSkill
- ce-compoundSkill
- ce-ideateSkill
- ce-planSkill
- ce-reviewSkill
- ce-workSkill
- claude-permissions-optimizerSkill
- deepen-planSkill
- document-reviewSkill
- evolveSkill
- feature-videoSkill
- instinctsSkill
- karpathy-guidelinesSkill
- learnSkill
- lfgSkill
- observeSkill
- ralph-loopSkill
- resolve_todo_parallelSkill
- setupSkill
- slfgSkill
- test-browserSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 17 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 192 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
After completing a feature — check for slop before PR
- Distinctive: line 14
Before code review — pre-clean your changes
- Distinctive: line 15
When code "feels AI-generated" but you can't pinpoint why
- Distinctive: line 17
After a long AI-assisted session to audit quality
- Distinctive: line 55
If no UI/style files are in scope, skip the Design Slop pass entirely.
- Distinctive: line 196
Default card grids with uniform spacing and no hierarchy
- Distinctive: line 202
No hover states on interactive elements
- Distinctive: line 203
No focus states (accessibility gap)
- Distinctive: line 204
No active/pressed states
- Very specific: line 205
No loading/empty/error states
- Distinctive: line 209
Default font stacks with no intentional pairing
- Distinctive: line 217
No intentional rhythm in spacing
- Very specific: line 288
If the user invoked /unslop fix:
- Distinctive: line 292
Code Slop safe fixes: Remove commented-out code blocks, remove unused imports
- Distinctive: line 293
Comment Rot safe fixes: Delete obvious restatement comments, remove stale TODOs
- Very specific: line 310
If fix was NOT provided but fixable findings exist, suggest it:
- Distinctive: line 330
Every finding must be actionable: Don't say "could be simpler" — say what to change and where.
- Distinctive: line 331
No false positives from skimming: Verify the abstraction isn't used elsewhere before flagging it.
- Distinctive: line 332
Line numbers must be accurate: Check each cited line against file content.
- Distinctive: line 333
Respect project conventions: If the project uses JSDoc everywhere, don't flag JSDoc as over-documentation.
“Common” is measured: kept by at least 6 in 10 of the 192 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/unslop — Strip AI Slop from Your Codebase
Three parallel analysis passes that detect and report AI-generated "slop" — generic, template-looking, over-enthusiastic output that makes code, comments, and UI feel artificial.
When to Use
- After completing a feature — check for slop before PR
- Before code review — pre-clean your changes
- When code "feels AI-generated" but you can't pinpoint why
- Periodic codebase hygiene — run on a directory
- After a long AI-assisted session to audit quality
Argument Parsing
Parse $ARGUMENTS for these tokens:
| Token | Example | Effect |
fix | /unslop fix | Auto-apply safe fixes after reporting |
<path> | /unslop src/components/ | Scope to specific file or directory |
| (none) | /unslop | Analyze all files changed since the base branch |
Execution Flow
Stage 1: Determine Scope
If a file or directory path is provided:
Scope to that path. Use find or glob to list all code files under it.
If no argument (default):
Determine changed files since the base branch:
BASE=$(git merge-base HEAD origin/main 2>/dev/null || git merge-base HEAD origin/master 2>/dev/null || echo "HEAD~10")
echo "FILES:" && git diff --name-only $BASE
echo "DIFF:" && git diff -U5 $BASEClassify files in scope:
| File extensions | Passes to run |
.ts, .tsx, .js, .jsx, .py, .go, .rb, .rs, .java, .cs, .swift, .kt | Code Slop + Comment Rot |
.css, .scss, .less, .tsx, .jsx, .html, .vue, .svelte | + Design Slop |
.json, .yaml, .yml, .toml, .md | Code Slop + Comment Rot only |
If no UI/style files are in scope, skip the Design Slop pass entirely.
Announce the scope:
De-slop scope: 14 files changed since origin/main
Passes: Code Slop | Comment Rot | Design Slop (3 UI files detected)Stage 2: Parallel Analysis
Launch three sub-agents IN PARALLEL. Each receives the file list and diff content, and returns structured findings as text.
<parallel_tasks>
Pass 1: Code Slop Detector
You are a code simplification expert. Analyze the provided files for AI-generated slop patterns. Focus ONLY on slop — not correctness, security, or architecture.
What to flag:
- Unnecessary complexity
- Deep nesting (>3 levels) that could use early returns
- Nested ternary operators — use if/else or switch
- Dense one-liners that sacrifice readability for brevity
- Redundant abstractions
- Interfaces/types used only once — inline them
- Wrapper functions that add no logic — call the wrapped function directly
- Abstract base classes with a single implementation
- Premature generalization ("just in case" extensibility points)
- YAGNI violations
- Features not required by current use cases
- Configuration options nobody uses
- Generic solutions for specific problems
- "Future-proofing" code that adds complexity now
- Dead weight
- Commented-out code blocks (>3 lines)
- Unused imports, variables, or functions
- Duplicate error checks (caller already validates)
- Defensive code that can never trigger (type system prevents it)
- Over-engineering
- Factory patterns for creating a single type
- Strategy patterns with one strategy
- Event systems for synchronous single-consumer flows
- Dependency injection where direct instantiation is clearer
Return format:
{
"pass": "code-slop",
"findings": [
{
"file": "src/auth.ts",
"line": 42,
"issue": "Nested ternary — use if/else for readability",
"severity": "medium",
"fix_safe": true,
"suggested_fix": "Replace ternary chain with if/else block"
}
]
}Pass 2: Comment Rot Detector
You are a technical documentation expert specializing in comment quality. Analyze the provided files for comment rot — inaccurate, redundant, or AI-generated filler comments.
What to flag:
- Obvious restatements
// increment counterabovecounter++// return the resultabovereturn result// set the nameabovethis.name = name- Comments that repeat the function/variable name in prose
- AI-generated filler phrases (hard bans — flag these immediately)
- "This function is responsible for handling..."
- "The following code implements..."
- "This is a comprehensive solution that..."
- "This method provides a robust and scalable..."
- "leverages" or "utilizes" (when "uses" works fine)
- "seamlessly integrates"
- "In today's rapidly evolving..."
- "game-changer", "revolutionary", "cutting-edge"
- "This class encapsulates the logic for..."
- "Ensures proper handling of..."
- Factual inaccuracy
- Documented parameters that don't match the function signature
- Return type descriptions that don't match the actual return
- Described behavior that doesn't match the code logic
- Edge case documentation for cases not actually handled
- Stale comments
- TODOs/FIXMEs for work that's already been done
- References to removed/renamed functions, classes, or files
- Version-specific notes for versions no longer supported
- "Temporary" markers on permanent code
- Over-documentation
- JSDoc/docstrings on trivial getters/setters
- Multi-line comments on self-explanatory one-liners
- Repeating type information already in the signature
- Section divider comments (
// ==================)
Return format:
{
"pass": "comment-rot",
"findings": [
{
"file": "src/auth.ts",
"line": 10,
"issue": "\"This function handles authentication\" — restates the function name",
"severity": "low",
"fix_safe": true,
"suggested_fix": "Remove comment — function name is self-documenting"
}
]
}Pass 3: Design Slop Detector
Only run this pass when UI/style files are in scope.
You are a design quality expert. Analyze the provided UI files for AI-generated visual slop — generic, template-looking patterns that signal "an AI made this, not a designer."
What to flag:
- Generic color patterns
- Purple-to-blue gradients (the AI default palette)
- Gratuitous gradients on everything (buttons, cards, backgrounds)
- Safe gray-on-white with one decorative accent color
- Unintentional color usage (decorative, not semantic)
- Template layouts
- Default card grids with uniform spacing and no hierarchy
- Generic hero: centered headline + subtitle + gradient blob + CTA
- Dashboard-by-numbers: sidebar + cards + charts with no point of view
- Uniform radius, spacing, and shadows across every component
- Missing interaction states
- No hover states on interactive elements
- No focus states (accessibility gap)
- No active/pressed states
- No loading/empty/error states
- Lazy defaults
- Unmodified library defaults (default shadcn/Tailwind without customization)
- Default font stacks with no intentional pairing
- Glassmorphism cards that serve no UI purpose
- Rounded corners on elements that shouldn't be rounded (tables, code blocks)
- Excessive scroll-triggered animations
- No visual hierarchy
- Flat layouts with no layering, depth, or motion
- Uniform emphasis on everything (nothing stands out)
- No intentional rhythm in spacing
Return format:
{
"pass": "design-slop",
"findings": [
{
"file": "src/Hero.tsx",
"line": 22,
"issue": "Generic purple-to-blue gradient — replace with brand palette",
"severity": "medium",
"fix_safe": false,
"suggested_fix": "Define an intentional brand gradient in design tokens"
}
]
}</parallel_tasks>
Stage 3: Merge & Deduplicate
WAIT for all Stage 2 sub-agents to complete.
- Collect findings from all passes that ran
- Deduplicate: if two passes flag the same file+line (within 3 lines), keep the more specific finding and note both passes
- Sort by severity: High → Medium → Low
- Group by pass for the report
Stage 4: Present Report
Format the consolidated report using pipe-delimited markdown tables:
De-slop Report
==============
Scope: [N] files changed since [base]
Passes: Code Slop [✓|✗] | Comment Rot [✓|✗] | Design Slop [✓|skipped]
## Code Slop ([N] findings)
| # | File | Line | Issue | Severity |
|---|------|------|-------|----------|
| 1 | path | line | description | High/Medium/Low |
## Comment Rot ([N] findings)
| # | File | Line | Issue | Severity |
|---|------|------|-------|----------|
| 1 | path | line | description | High/Medium/Low |
## Design Slop ([N] findings)
| # | File | Line | Issue | Severity |
|---|------|------|-------|----------|
| 1 | path | line | description | High/Medium/Low |
─────────────────────────────
Summary: [N] findings ([H] High, [M] Medium, [L] Low)
Potential LOC reduction: ~[N] linesOmit any pass section with zero findings. If all passes return zero findings:
De-slop Report: Clean! No slop detected in [N] files.Stage 5: Auto-Fix (only if fix argument was provided)
If the user invoked /unslop fix:
- Collect all findings where
fix_safe: true - Apply fixes in file order:
- Code Slop safe fixes: Remove commented-out code blocks, remove unused imports
- Comment Rot safe fixes: Delete obvious restatement comments, remove stale TODOs
- Do NOT auto-fix:
- Design slop (requires design judgment)
- Factually inaccurate comments (requires understanding intent)
- YAGNI violations (requires knowing the roadmap)
- Abstractions (requires understanding the broader architecture)
- Report what was fixed:
Auto-fix applied:
✓ Removed 3 commented-out code blocks (42 lines)
✓ Deleted 5 obvious-restatement comments
✓ Removed 2 stale TODOs
Remaining (manual review needed): 4 findingsIf fix was NOT provided but fixable findings exist, suggest it:
Tip: Run /unslop fix to auto-apply [N] safe fixesSeverity Guide
| Level | Meaning | Examples |
| High | Actively misleading or creates maintenance burden | Inaccurate comment, missing hover states, large dead code block |
| Medium | Noticeable slop that reduces quality | Unnecessary abstraction, AI filler phrase, generic gradient |
| Low | Minor quality improvement | Restatement comment, unused import, over-documentation |
Slop is never "Critical" — it's a quality concern, not a correctness or security issue.
Quality Gates
Before presenting findings:
- Every finding must be actionable. Don't say "could be simpler" — say what to change and where.
- No false positives from skimming. Verify the abstraction isn't used elsewhere before flagging it. Verify the comment is truly redundant.
- Line numbers must be accurate. Check each cited line against file content.
- Respect project conventions. If the project uses JSDoc everywhere, don't flag JSDoc as over-documentation.
- Don't flag generated code. Skip files in
dist/,build/,node_modules/,.next/,vendor/, or similar generated directories.
Notes
- This skill is read-only by default. It reports but does not edit files unless
fixis specified. - Design Slop pass is automatically skipped for backend-only projects.
- Works on any language/framework — the slop patterns are universal.
- Pairs well with
/ce-review(which checks correctness) —/unslopchecks aesthetics and quality.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

