.claude/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/bitsocial-web 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:verify && yarn lint && yarn typecheck
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
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
data-ai
Add or update i18next translation keys across all language files by spawning translator subagents. Use when the user asks to add a new translation, update existing translations, translate text, or work with i18n keys. Triggers on "translate", "add translation", "translation key", "i18n", "localization".
development
Test and debug Android wrapper features for Bitsocial Web using a local Android emulator or attached device. Manages emulator lifecycle, builds and installs the wrapper when commands are provided, runs focused checks, captures logcat diagnostics, and debugs WebView or TWA behavior. Use when the user asks to test Android, debug WebView behavior, run emulator tests, or says "test-apk".
testing
Review an open GitHub pull request, inspect bot and human feedback, decide which findings are valid, implement fixes on the PR branch, and merge the PR into master when it is ready. Use when the user says "check the PR", "address review comments", "review PR feedback", or "merge this PR".