agentleFS
shyamsridhar123shyamsridhar123/kevin-copilot/.github/skills/unslop/SKILL.md

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

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.
  • jaydubya818Skill

    principle-never-block-on-the-human

    Apply when safe reversible implementation details can proceed inside scope.

    Also in 45 projects that use this

  • jaydubya818Skill

    greploop-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

  • ianclearySkill

    principle-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

  • bnemaSkill

    setup-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

  • ianclearySkill

    poteto-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

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
  1. Distinctive:

    After completing a feature — check for slop before PR

    line 13
  2. Distinctive:

    Before code review — pre-clean your changes

    line 14
  3. Distinctive:

    When code "feels AI-generated" but you can't pinpoint why

    line 15
  4. Distinctive:

    After a long AI-assisted session to audit quality

    line 17
  5. Distinctive:

    If no UI/style files are in scope, skip the Design Slop pass entirely.

    line 55
  6. Distinctive:

    Default card grids with uniform spacing and no hierarchy

    line 196
  7. Distinctive:

    No hover states on interactive elements

    line 202
  8. Distinctive:

    No focus states (accessibility gap)

    line 203
  9. Distinctive:

    No active/pressed states

    line 204
  10. Very specific:

    No loading/empty/error states

    line 205
  11. Distinctive:

    Default font stacks with no intentional pairing

    line 209
  12. Distinctive:

    No intentional rhythm in spacing

    line 217
  13. Very specific:

    If the user invoked /unslop fix:

    line 288
  14. Distinctive:

    Code Slop safe fixes: Remove commented-out code blocks, remove unused imports

    line 292
  15. Distinctive:

    Comment Rot safe fixes: Delete obvious restatement comments, remove stale TODOs

    line 293
  16. Very specific:

    If fix was NOT provided but fixable findings exist, suggest it:

    line 310
  17. Distinctive:

    Every finding must be actionable: Don't say "could be simpler" — say what to change and where.

    line 330
  18. Distinctive:

    No false positives from skimming: Verify the abstraction isn't used elsewhere before flagging it.

    line 331
  19. Distinctive:

    Line numbers must be accurate: Check each cited line against file content.

    line 332
  20. Distinctive:

    Respect project conventions: If the project uses JSDoc everywhere, don't flag JSDoc as over-documentation.

    line 333

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/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:

TokenExampleEffect
fix/unslop fixAuto-apply safe fixes after reporting
<path>/unslop src/components/Scope to specific file or directory
(none)/unslopAnalyze 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 $BASE

Classify files in scope:

File extensionsPasses to run
.ts, .tsx, .js, .jsx, .py, .go, .rb, .rs, .java, .cs, .swift, .ktCode Slop + Comment Rot
.css, .scss, .less, .tsx, .jsx, .html, .vue, .svelte+ Design Slop
.json, .yaml, .yml, .toml, .mdCode 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:

  1. 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
  2. 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)
  3. 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
  4. 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)
  5. 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:

  1. Obvious restatements
    • // increment counter above counter++
    • // return the result above return result
    • // set the name above this.name = name
    • Comments that repeat the function/variable name in prose
  2. 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..."
  3. 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
  4. 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
  5. 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:

  1. 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)
  2. 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
  3. Missing interaction states
    • No hover states on interactive elements
    • No focus states (accessibility gap)
    • No active/pressed states
    • No loading/empty/error states
  4. 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
  5. 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.

  1. Collect findings from all passes that ran
  2. Deduplicate: if two passes flag the same file+line (within 3 lines), keep the more specific finding and note both passes
  3. Sort by severity: High → Medium → Low
  4. 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] lines

Omit 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:

  1. Collect all findings where fix_safe: true
  2. 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
  3. 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)
  4. 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 findings

If fix was NOT provided but fixable findings exist, suggest it:

Tip: Run /unslop fix to auto-apply [N] safe fixes

Severity Guide

LevelMeaningExamples
HighActively misleading or creates maintenance burdenInaccurate comment, missing hover states, large dead code block
MediumNoticeable slop that reduces qualityUnnecessary abstraction, AI filler phrase, generic gradient
LowMinor quality improvementRestatement 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:

  1. Every finding must be actionable. Don't say "could be simpler" — say what to change and where.
  2. No false positives from skimming. Verify the abstraction isn't used elsewhere before flagging it. Verify the comment is truly redundant.
  3. Line numbers must be accurate. Check each cited line against file content.
  4. Respect project conventions. If the project uses JSDoc everywhere, don't flag JSDoc as over-documentation.
  5. 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 fix is 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) — /unslop checks aesthetics and quality.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.