dead-code-detector
1
总安装量
1
周安装量
#42732
全站排名
安装命令
npx skills add https://github.com/montagao/skills --skill dead-code-detector
Agent 安装分布
codex
1
claude-code
1
gemini-cli
1
Skill 文档
Dead Code Detector
Detect and eliminate dead code in TypeScript/JavaScript codebases.
Quick Start
Run the automated scanner:
node ~/.claude/skills/dead-code-detector/scripts/find-dead-code.js .
Output: Console report + dead-code-report.json with all findings.
What Gets Detected
1. Unused Exports
Exported symbols never imported elsewhere in the codebase.
// src/utils/helpers.ts
export function formatDate() { ... } // Used
export function oldFormatter() { ... } // DEAD - never imported
False positive handling: Automatically skips:
- Entry points (
index.ts,page.tsx,convex/functions) - Common type suffixes (
Props,Config,Schema) - Default exports (may be dynamically imported)
2. Unused Dependencies
Packages in package.json never imported anywhere.
{
"dependencies": {
"lodash": "^4.17.21", // DEAD - replaced by native methods
"react": "^18.0.0" // Used
}
}
False positive handling: Automatically skips:
- Dev tools: typescript, eslint, prettier, vitest, jest
- Type packages: @types/*
- Build tools: webpack, vite, rollup, postcss, tailwindcss
3. Unreachable Code Patterns
// Code after return
function foo() {
return 1;
console.log("dead"); // FLAGGED
}
// Always-false conditions
if (false) { ... } // FLAGGED
// Stale TODOs
// TODO (2021): Fix this // FLAGGED as stale
Manual Investigation Workflow
For findings that need verification:
Check if export is truly unused
rg "symbolName" --type ts
rg "from.*filename" --type ts # Check imports of file
Check for dynamic imports
rg "import\(['\"].*moduleName" --type ts
rg "require\(['\"].*moduleName" --type js
Check if dependency is used in config
rg "packageName" *.config.* package.json
Framework Considerations
Framework-specific exports that look unused but aren’t:
| Framework | Safe to Keep |
|---|---|
| Next.js | generateStaticParams, generateMetadata, exports from page.tsx/layout.tsx |
| Remotion | Compositions in Root.tsx, calculateMetadata |
| Convex | All convex/ function exports (deployed via API) |
| Express | Route handlers, middleware (registered, not imported) |
Cleanup Workflow
- Run scanner on project root
- Review findings – verify each is truly dead
- Remove code – delete unused exports and functions
- Remove dependencies –
npm uninstall <package> - Run tests – ensure nothing broke
- Commit – “chore: remove dead code”
Reference
For detailed patterns and edge cases, see references/patterns.md.