Node Auto Debugger
by @jengajojo
Scan Node.js/Express/Next.js projects for bugs, security issues, and anti-patterns. Use when debugging a Node.js web app, running code audits, fixing client-...
clawhub install node-auto-debuggerπ About This Skill
name: node-auto-debugger description: Scan Node.js/Express/Next.js projects for bugs, security issues, and anti-patterns. Use when debugging a Node.js web app, running code audits, fixing client-side exceptions, hydration errors, hardcoded secrets, missing error handling, or preparing for production. Covers backend (Express/Fastify routes, async errors, undefined vars) and frontend (Next.js/React hydration, SSR crashes, wagmi/RainbowKit issues, missing 'use client' directives) plus config validation and optional build verification.
Node.js Auto Debugger
Automated scanner for Node.js projects β finds bugs across backend, frontend, and config.
Quick Start
node scripts/auto-debug.js
Options:
--build β Also run npm run build and capture compilation errorsWhat It Checks
Backend (Express/Fastify)
.push() on undeclared variablesFrontend (Next.js/React)
Date.now(), Math.random() in render (should be in useEffect or useState)window/document access outside useEffectisLoading/isFetchingConfig
Output
Report saved to with issues grouped by severity:
Exit code: 1 if any critical issues found, 0 otherwise.
Fixing Hydration Issues (Next.js)
Date.now()/new Date() in render:
// β Bad β causes hydration mismatch
const now = Math.floor(Date.now() / 1000);// β
Good β guard with isMounted
const [isMounted, setIsMounted] = useState(false);
useEffect(() => { setIsMounted(true); }, []);
const now = isMounted ? Math.floor(Date.now() / 1000) : 0;
Math.random() in render:
// β Bad β different on server vs client
${Math.random() * 100}% }} />// β
Good β pre-generate in useState (runs once)
const [particles] = useState(() =>
Array.from({ length: 10 }, () => ({
left: ${Math.random() * 100}%,
}))
);
window/document access:
// β Bad β crashes during SSR
const width = window.innerWidth;// β
Good β only after mount
const [width, setWidth] = useState(0);
useEffect(() => setWidth(window.innerWidth), []);
π‘ Examples
node scripts/auto-debug.js
Options:
--build β Also run npm run build and capture compilation errorsβοΈ Configuration
Missing next.config.js β defaults warning
Missing build script β package.json validation