Agent skill
dead-code
Find and remove unused code added in the current branch. Use when asked to find dead code, remove unused functions, clean up unreferenced code, or check for orphaned controllers/services/SDK functions. Triggers on phrases like "find dead code", "remove unused code", "check for orphaned functions", or "clean up unreferenced exports".
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/dead-code
SKILL.md
Dead Code Removal
Find and remove code added in the current branch that is never actually used.
Workflow
- Get the diff:
git diff master...HEAD --name-onlyto find changed files - For each changed file, identify newly added exports:
- Functions, classes, constants, types
- Controllers, services, SDK functions, API endpoints
- React components, hooks, utilities
- Search the codebase for references to each new export
- Flag exports with zero references (excluding their own definition and re-exports)
- Remove confirmed dead code or report findings
What to Look For
Backend dead code
- Controllers with no routes pointing to them
- Service methods never called by controllers or other services
- SDK/API client functions never imported in frontend
- Middleware not registered in any route
- Database models with no queries
Frontend dead code
- Components never rendered or imported
- Hooks never called
- Utility functions never imported
- Context providers never used
- Redux actions/selectors with no dispatch/useSelector calls
Shared dead code
- Types/interfaces never referenced
- Constants never imported
- Exported functions only used internally (should not be exported)
Search Strategy
For each new export ExportName:
- Grep for import statements:
import.*ExportNameorrequire.*ExportName - Grep for direct usage:
ExportName(or<ExportNameor.ExportName - Check barrel files (index.ts) for re-exports
- Exclude the file where it's defined from results
An export is dead if:
- Zero imports outside its own file
- Zero usages outside its own file
- Not re-exported from a public API barrel
Guidelines
- Only analyze code added in the current branch (not pre-existing code)
- Be careful with dynamically referenced code (string-based imports, reflection)
- Check for indirect usage through barrel files and re-exports
- When uncertain, report as "potentially unused" rather than auto-deleting
- Preserve code that's part of a public API even if unused internally
- Report a summary: number of dead exports found, files affected, bytes removed
Didn't find tool you were looking for?