@claude-powers/slash-commands
Version:
🚀 Claude Powers - Essential slash commands for Claude Code
331 lines (271 loc) • 9.11 kB
Markdown
# Find Unused Code Command
Detects code, variables, functions, imports, and files that are not used in the project.
## Description
The `/find-unused-code` command performs deep project analysis to identify:
- Variables declared but not used
- Functions defined but never called
- Imports not referenced in code
- Exports without external references
- Unused React components
- Files completely without references
- CSS classes and styles not applied
- Unused package.json dependencies
- Object properties not accessed
- Function parameters not used
## Usage
```
/find-unused-code [directory] [--types] [--severity] [--include]
```
### Parámetros
- `directory` (opcional): directory específico a analizar. Por defecto analiza todo el proyecto.
- `--types`: Tipos específicos a buscar (variables, functions, imports, exports, files, css, deps)
- `--severity`: Nivel de impacto (high, medium, low, all)
- `--include`: Incluir categorías específicas (test-files, node-modules, config-files)
- `--exclude-patterns`: Patterns de files a excluir
- `--min-size`: Tamaño mínimo de código para considerar (en líneas)
### Examples
```
/find-unused-code
/find-unused-code src/ --types=variables,functions
/find-unused-code --types=imports --severity=high
/find-unused-code components/ --types=react --include=test-files
/find-unused-code --types=deps --severity=high
/find-unused-code styles/ --types=css
```
## Patterns Detectados
### Variables No Utilizadas
- Variables declaradas con let, const, var sin uso
- Destructuring assignments no utilizados
- Loop variables no usadas
- Parameters de función no utilizados
### functions No Utilizadas
- functions declaradas pero nunca llamadas
- Arrow functions sin referencias
- Méall de clase no invocados
- Callbacks no utilizados
### Imports/Exports No Utilizados
- Import statements sin uso en el código
- Default imports no referenciados
- Named imports sin uso
- Exports que no se importan en ningún lugar
- Re-exports innecesarios
### Componentes React
- Componentes definidos pero nunca renderizados
- Hooks personalizados sin uso
- Contexts no utilizados
- Higher-Order Components sin referencias
### files Sin Referencias
- files TypeScript/JavaScript no importados
- Componentes no utilizados en ningún lugar
- Utilities sin referencias
- files de configuración obsoletos
### CSS/Estilos
- Classes CSS no aplicadas en JSX/HTML
- IDs no referenciados
- Selectores sin uso
- Variables CSS no utilizadas
- Keyframes no aplicados
### Dependencias
- Packages en package.json no importados
- DevDependencies no utilizadas en scripts
- Peer dependencies innecesarias
## Configuración
El comando utiliza `.claude/find-unused-code-config.json`:
```json
{
"severity": "medium",
"analysis": {
"variables": true,
"functions": true,
"imports": true,
"exports": true,
"files": true,
"css": true,
"dependencies": true,
"react": true
},
"thresholds": {
"minFileSize": 5,
"minFunctionSize": 2,
"maxUnusedPercentage": 20
},
"exclude": [
"node_modules",
"dist",
"build",
"coverage",
"*.test.*",
"*.spec.*",
"*.d.ts",
".git"
],
"include": [
"**/*.js",
"**/*.ts",
"**/*.jsx",
"**/*.tsx",
"**/*.css",
"**/*.scss",
"**/*.vue"
],
"specialPatterns": {
"testFiles": ["*.test.*", "*.spec.*", "__tests__/**"],
"configFiles": ["*.config.*", ".*rc.*", "*.setup.*"],
"typeFiles": ["*.d.ts", "types/**"]
},
"ignorePatterns": [
"console\\.(log|warn|error)",
"process\\.env\\.",
"window\\.",
"document\\.",
"__dirname",
"__filename"
]
}
```
## Salida
### Resumen Ejecutivo
```
🧹 CLAUDE POWER - UNUSED CODE REPORT
====================================
📊 RESUMEN:
┌─────────────────┬───────┬─────────┐
│ Categoría │ Count │ Tamaño │
├─────────────────┼───────┼─────────┤
│ Variables │ 15 │ 45 LOC │
│ functions │ 8 │ 120 LOC │
│ Imports │ 23 │ 23 LOC │
│ files │ 5 │ 340 LOC │
│ CSS Classes │ 12 │ 60 LOC │
│ Dependencies │ 3 │ N/A │
│ Total │ 66 │ 588 LOC │
└─────────────────┴───────┴─────────┘
💾 IMPACTO POTENCIAL:
• Reducción de bundle: ~45KB
• files eliminables: 5
• Limpieza estimada: 588 líneas
```
### Detalles por Categoría
```
🔍 VARIABLES NO UTILIZADAS (15):
📁 src/components/UserProfile.tsx
💡 [medium] Línea 12: const unusedVariable = getData()
> Declarada pero nunca referenciada
💾 Impacto: 1 línea
💡 [low] Línea 25: const { name, ...unused } = props
> Destructuring no utilizado
💾 Impacto: 1 línea
📁 src/utils/helpers.js
⚠️ [high] Línea 5: function calculateTotal(items) { ... }
> Función completa sin uso (15 líneas)
💾 Impacto: 15 líneas
🔍 IMPORTS NO UTILIZADOS (23):
📁 src/components/Dashboard.tsx
💡 [medium] Línea 3: import { useState } from 'react'
> Hook importado pero no utilizado
💡 [medium] Línea 5: import lodash from 'lodash'
> Librería importada sin uso
🔍 files SIN REFERENCIAS (5):
📁 src/components/OldButton.tsx (68 líneas)
❌ [high] Archivo completo sin imports ni referencias
> Componente React no utilizado en ningún lugar
💾 Impacto: 68 líneas + eliminación segura
📁 src/utils/deprecated.js (95 líneas)
❌ [high] Utilidades legacy sin referencias
💾 Impacto: 95 líneas + eliminación segura
🔍 CSS NO UTILIZADO (12):
📁 src/styles/components.css
💡 [medium] .unused-button-style { ... }
> Class CSS no aplicada en JSX
💡 [low] #unique-id { ... }
> ID selector sin referencias en HTML/JSX
🔍 DEPENDENCIAS NO UTILIZADAS (3):
📁 package.json
⚠️ [high] "moment": "^2.29.4"
> Dependencia no importada en ningún archivo
💾 Impacto: ~67KB en bundle
💡 [medium] "uuid": "^9.0.0"
> Utilizada solo en tests, mover a devDependencies
```
### Sugerencias de Limpieza
```
🛠️ ACCIONES RECOMENDADAS:
🟢 SEGURAS (Auto-aplicables):
• Remover 15 variables no utilizadas
• Eliminar 23 imports innecesarios
• Limpiar 12 CSS rules sin uso
🟡 REVISAR MANUALMENTE:
• 5 files sin referencias (verificar si son entry points)
• 3 dependencias no utilizadas (verificar uso en build/config)
• 8 functions sin llamadas directas (pueden ser exports públicos)
🔴 REQUIERE ATENCIÓN:
• src/components/OldButton.tsx - Posible feature legacy
• moment dependency - 67KB de impacto en bundle
⚡ COMANDOS SUGERIDOS:
/fix-unused --auto --types=variables,imports
/remove-files --confirm --files=src/components/OldButton.tsx
npm uninstall moment uuid && npm install --save-dev uuid
```
## Integración y Automatización
### CI/CD Pipeline
```yaml
# .github/workflows/cleanup.yml
- name: Detect unused code
run: |
npx claude-power find-unused-code --output=json > unused.json
UNUSED_COUNT=$(jq '.summary.total' unused.json)
if [ $UNUSED_COUNT -gt 50 ]; then
echo "⚠️ High amount of unused code detected: $UNUSED_COUNT items"
# Optional: fail build or create PR comment
fi
```
### Pre-commit Hook
```bash
#!/bin/sh
# .git/hooks/pre-commit
UNUSED=$(npx claude-power find-unused-code --severity=high --types=variables,imports)
if [ $? -eq 0 ] && [ ! -z "$UNUSED" ]; then
echo "⚠️ Unused code detected. Run cleanup before commit:"
echo "$UNUSED"
fi
```
### VS Code Task
```json
{
"tasks": [
{
"label": "Find Unused Code",
"type": "shell",
"command": "npx claude-power find-unused-code ${workspaceFolder}",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always"
}
}
]
}
```
## Casos de Uso Avanzados
### Análisis de Bundle Size
```bash
# Detectar código no usado que impacta el bundle
/find-unused-code --types=deps,imports --severity=high --output=json
```
### Limpieza de Legacy Code
```bash
# Encontrar files y functions de features antiguas
/find-unused-code src/legacy/ --types=files,functions --min-size=10
```
### Optimización de CSS
```bash
# Detectar estilos no utilizados en componentes
/find-unused-code styles/ --types=css --include=components
```
### Análisis de Test Coverage
```bash
# Encontrar código de tests no utilizado
/find-unused-code tests/ --include=test-files --types=functions
```
---
*Parte del ecosistema **Claude Power** - Potenciando el desarrollo con IA* 🚀