Run code quality checks to find duplication and dead code.
First, determine if this is a JavaScript/TypeScript or Python project:
ls package.json pyproject.toml setup.py 2>/dev/nullCheck if jscpd and knip are installed:
cat package.json | grep -E "jscpd|knip"If not installed:
npm install -D jscpd knip
npx knip initAdd scripts to package.json if missing:
{
"scripts": {
"lint:dupes": "jscpd src/",
"lint:dead": "knip",
"lint:quality": "npm run lint:dupes && npm run lint:dead"
}
}npm run lint:dupes
npm run lint:dead- jscpd: Number of duplicate code blocks and duplication percentage
- knip: Unused files, unused dependencies, unused exports, unused types
Ensure ruff and vulture are available:
pip install ruff vulture # or: uv pip install ruff vulture# Unused imports, variables, redefinitions
ruff check src/ --select=F401,F841,F811 --statistics
# Dead code detection
vulture src/ --min-confidence 80# Fix unused imports automatically
ruff check src/ --select=F401,F841,F811 --fix
# For remaining issues that need manual review
ruff check src/ --select=F401,F841,F811 --fix --unsafe-fixes- ruff F401: Unused imports
- ruff F841: Unused variables
- ruff F811: Redefined names
- vulture: Dead code (unused functions, classes, variables)
For each issue found:
- Duplicate code: Extract to shared utility or module
- Unused files: Delete them
- Unused dependencies: Remove from package.json or pyproject.toml
- Unused exports/imports: Remove the export or delete if truly unused
- Dead functions/classes: Delete if no longer needed
git add -A
git commit -m "chore: remove dead code and fix lint issues"