deslop

Clean AI slop from code with certainty-based findings and auto-fixes.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "deslop" with this command: npx skills add avifenesh/agentsys/avifenesh-agentsys-deslop

deslop

Clean AI slop from code with certainty-based findings and auto-fixes.

Parse Arguments

const args = '$ARGUMENTS'.split(' ').filter(Boolean); const mode = args.find(a => ['report', 'apply'].includes(a)) || 'report'; const scope = args.find(a => a.startsWith('--scope='))?.split('=')[1] || 'all'; const thoroughness = args.find(a => a.startsWith('--thoroughness='))?.split('=')[1] || 'normal';

Input

Arguments: [report|apply] [--scope=<path>|all|diff] [--thoroughness=quick|normal|deep]

  • Mode: report (default) or apply

  • Scope: What to scan

  • all (default): Entire codebase

  • diff : Only files changed in current branch

  • <path> : Specific directory or file

  • Thoroughness: Analysis depth (default: normal )

  • quick : Regex patterns only

  • normal : + multi-pass analyzers

  • deep : + CLI tools (jscpd, madge) if available

Detection Pipeline

Phase 1: Run Detection Script

The detection script is at ../../scripts/detect.js relative to this skill.

Run detection (use relative path from skill directory):

Scripts are at plugin root: ../../scripts/ from skills/deslop/

node ../../scripts/detect.js . --thoroughness normal --compact --max 50

For diff scope (only changed files):

BASE=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@' || echo "main")

Use newline-separated list to safely handle filenames with special chars

git diff --name-only origin/${BASE}..HEAD |
xargs -d '\n' node ../../scripts/detect.js --thoroughness normal --compact

Note: The relative path ../../scripts/detect.js navigates from skills/deslop/ up to the plugin root where scripts/ lives.

Phase 2: Repo-Map Enhancement (Optional)

If repo-map exists, enhance detection with AST-based analysis:

// Use relative path from skill directory to plugin lib // Path: skills/deslop/ -> ../../lib/repo-map const repoMap = require('../../lib/repo-map');

if (repoMap.exists(basePath)) { const map = repoMap.load(basePath); const usageIndex = repoMap.buildUsageIndex(map);

// Find orphaned infrastructure with HIGH certainty const orphaned = repoMap.findOrphanedInfrastructure(map, usageIndex); for (const item of orphaned) { findings.push({ file: item.file, line: item.line, pattern: 'orphaned-infrastructure', message: ${item.name} (${item.type}) is never used, certainty: 'HIGH', severity: 'high', autoFix: false }); }

// Find unused exports const unusedExports = repoMap.findUnusedExports(map, usageIndex); for (const item of unusedExports) { findings.push({ file: item.file, line: item.line, pattern: 'unused-export', message: Export '${item.name}' is never imported, certainty: item.certainty, severity: 'medium', autoFix: false }); } }

Phase 3: Aggregate and Prioritize

Sort findings by:

  • Certainty: HIGH before MEDIUM before LOW

  • Severity: high before medium before low

  • Fix complexity: auto-fixable before manual

Phase 4: Return Structured Results

Skill returns structured JSON - does NOT apply fixes (orchestrator handles that).

Output Format

JSON structure between markers:

=== DESLOP_RESULT === { "mode": "report|apply", "scope": "all|diff|path", "filesScanned": N, "findings": [ { "file": "src/api.js", "line": 42, "pattern": "debug-statement", "message": "console.log found", "certainty": "HIGH", "severity": "medium", "autoFix": true, "fixType": "remove-line" } ], "fixes": [ { "file": "src/api.js", "line": 42, "fixType": "remove-line", "pattern": "debug-statement" } ], "summary": { "high": N, "medium": N, "low": N, "autoFixable": N } } === END_RESULT ===

Certainty Levels

Level Meaning Action

HIGH Definitely slop, safe to auto-fix Auto-fix via simple-fixer

MEDIUM Likely slop, needs verification Review first

LOW Possible slop, context-dependent Flag only

Pattern Categories

HIGH Certainty (Auto-Fixable)

  • debug-statement : console.log, console.debug, print, println!

  • debug-import : Unused debug/logging imports

  • placeholder-text : "Lorem ipsum", "TODO: implement"

  • empty-catch : Empty catch blocks without comment

  • trailing-whitespace : Trailing whitespace

  • mixed-indentation : Mixed tabs/spaces

MEDIUM Certainty (Review Required)

  • excessive-comments : Comment/code ratio > 2:1

  • doc-code-ratio : JSDoc > 3x function body

  • stub-function : Returns placeholder value only

  • dead-code : Unreachable after return/throw

  • infrastructure-without-impl : DB clients created but never used

LOW Certainty (Flag Only)

  • over-engineering : File/export ratio > 20x

  • buzzword-inflation : Claims without evidence

  • shotgun-surgery : Files frequently change together

Fix Types

Fix Type Action Patterns

remove-line

Delete line debug-statement, debug-import

add-comment

Add explanation empty-catch

remove-block

Delete code block stub-function with TODO

Error Handling

  • Git not available: Skip git-dependent checks

  • Invalid scope: Return error in JSON

  • Parse errors: Skip file, continue scan

Integration

This skill is invoked by:

  • deslop-agent for /deslop command

  • /next-task Phase 8 (pre-review gates) with scope=diff

The orchestrator spawns simple-fixer to apply HIGH certainty fixes.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

perf-code-paths

No summary provided by upstream source.

Repository SourceNeeds Review
General

agnix

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

consult

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

debate

No summary provided by upstream source.

Repository SourceNeeds Review