Deslop -- RN App Code Quality
Run the scanner:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/deslop.sh" ${ARGUMENT:-.}
What It Scans
Critical (exit 1, block deploy)
NativeModulesusage -- legacy bridge, banned in New ArchitecturerequireNativeComponent-- usecodegenNativeComponentinsteadUIManagerusage -- legacy bridge, bannedAsyncStorageusage -- banned, use MMKV or SecureStoreTouchableOpacity/TouchableHighlight-- banned, use PressablePanResponder-- banned, use Gesture Handler v2GestureDetectorfetch(outsidesrc/libs/-- use axios instanceuseEffectwithfetch(-- use React Query- Hardcoded URLs (
https://,http://) in source -- useEXPO_PUBLIC_env vars {expr && <Component>}-- renders0orfalse; use ternary orBoolean()
Medium (warn, review before release)
console.log/console.warnanywhere insrc/-- crashes in Reanimated worklets, banned everywhereTODO/FIXME/HACKcommentsform.watch(-- useuseWatchinterfacedeclaration -- usetypeinstead- RN
Imagefromreact-native-- useexpo-image router.push('/string -- use typed routesstyle={}inline prop -- useclassNamewith NativeWind- Missing
accessibilityRoleon interactive elements
Low (info)
eslint-disablecomments@ts-ignore/@ts-expect-error- Default exports in
src/(except route files inapp/) anytype annotations
Never Auto-Fix
- Hardcoded secrets -- flag only, user removes
- Legacy bridge APIs -- requires architectural change
After Scanning
List critical issues with file:line format. Suggest fix for each. Group by severity.