.cursor/skills/deslop/SKILL.md
Scan recent changes for AI-generated code slop and remove it. Use when the user says "deslop", "remove slop", "clean up AI code", or asks to remove AI-generated artifacts from the codebase.
npx skillsauth add bitsocialnet/seedit deslopInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scan the diff against main and remove AI-generated slop introduced in this branch.
Get the diff
git diff main...HEAD
If there are also uncommitted changes, include them:
git diff main
Scan each changed file for the slop categories below
Fix each instance — remove or rewrite to match the surrounding code style
Verify the build still passes:
yarn build && yarn lint && yarn type-check
Report a 1-3 sentence summary of what you changed
AI loves adding comments that restate the code. Remove comments that a human wouldn't write. Keep comments that explain why — domain reasoning, constraints, trade-offs, or non-obvious intent.
// ❌ Slop — restates the code
const [count, setCount] = useState(0); // Initialize count state to 0
// ❌ Slop — obvious from context
// Fetch the user data
const user = useComment({ commentCid });
// ✅ Keep — explains non-obvious intent
// plebbit-react-hooks returns undefined while loading, null if not found
const isLoading = comment === undefined;
AI adds try/catch blocks and null guards everywhere, even on trusted codepaths. Remove guards that the surrounding code doesn't need.
// ❌ Slop — plebbit-react-hooks already handles errors internally
try {
const { feed } = useFeed({ subplebbitAddresses });
} catch (error) {
console.error('Failed to fetch feed:', error);
}
// ✅ Clean — just use the hook directly
const { feed } = useFeed({ subplebbitAddresses });
as any castsAI casts to any to bypass type errors instead of fixing the actual types. Remove the cast and fix the underlying type issue.
Any pattern that doesn't match the rest of the file: different naming conventions, different import ordering, unnecessary abstractions, or overly verbose code where the file is concise.
AI tends to add unnecessary abstractions, utility functions, or wrapper components that obscure simple logic. If a one-liner was wrapped in a helper, unwrap it.
Comments are necessary when code expresses:
When in doubt, check if similar code nearby has comments. Match the file's existing comment density.
development
Perform a refactor pass focused on simplicity after recent changes. Use when the user asks for a refactor/cleanup pass, simplification, dead-code removal, or says "refactor pass".
devops
When the user wants to create or update a README.md file for a project. Also use when the user says "write readme," "create readme," "document this project," "project documentation," or asks for help with README.md. This skill creates absurdly thorough documentation covering local setup, architecture, and deployment.
tools
Profile app performance while browsing, collecting Web Vitals and React rerender data via react-scan. Orchestrates parallel profiler subagents via playwright-cli to capture navigation timing, long tasks, layout shifts, LCP, React commit counts, render bursts, and per-component render data. Use when profiling browsing performance, finding bottlenecks, diagnosing excessive rerenders, or auditing page performance.
tools
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.