본문으로 건너뛰기
cccskills
무료GitHub에 공개

dead-code-removal

Detects and safely removes unused code (imports, functions, classes) across multiple languages. Use after refactoring, when removing features, or before production deployment. Includes safety checks and validation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(3)

  • SKILL.md7.4 KB
  • scripts/find-unused-imports.py3.0 KB
  • skill-report.json49.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Dead Code Removal

This skill safely identifies and removes unused code across multiple programming languages. It includes comprehensive safety checks to prevent removing code that's actually needed.

When to Use This Skill

  • After refactoring code and removing features
  • Before production deployment to reduce bundle size
  • When cleaning up legacy code
  • When removing deprecated functionality
  • When optimizing codebase size
  • When maintaining code quality standards

What This Skill Does

  1. Language Detection: Identifies project languages and structure
  2. Entry Point Mapping: Maps entry points and critical paths
  3. Dependency Analysis: Builds dependency graphs and usage patterns
  4. Safe Detection: Identifies unused elements with safety checks
  5. Incremental Removal: Removes code incrementally with validation
  6. Backup Creation: Creates backups before making changes

Helper Scripts

This skill includes Python helper scripts in scripts/:

  • find_unused_imports.py: Uses AST parsing to accurately detect unused imports in Python files. Outputs JSON with unused imports and line numbers.

    python scripts/find_unused_imports.py src/utils.py src/services.py
    

How to Use

Remove Unused Code

Find and remove unused imports and functions in this project
Clean up dead code in src/ directory, but be conservative

Specific Analysis

Check for unused functions in src/utils/ and remove them safely

Analysis Process

1. Language Detection

Identify Project Type:

  • Python: Look for pyproject.toml, setup.py, requirements.txt
  • JavaScript/TypeScript: Check package.json, tsconfig.json
  • Java: Look for pom.xml, build.gradle
  • Go: Check go.mod
  • Rust: Check Cargo.toml

Detect Entry Points:

  • Python: main.py, __main__.py, app.py, run.py
  • JavaScript: index.js, main.js, server.js, app.js
  • Java: Main.java, *Application.java, *Controller.java
  • Config files: *.config.*, settings.*, setup.*
  • Test files: test_*.py, *.test.js, *.spec.js

2. Build Dependency Graph

Cross-File Dependencies:

  • Track imports and requires
  • Map function/method calls
  • Identify class inheritance
  • Track dynamic usage patterns

Framework Patterns:

  • Preserve framework-specific patterns (Django models, React components, etc.)
  • Check for decorators and annotations
  • Verify entry point registrations

3. Detect Unused Elements

Using Helper Script:

The skill includes a Python helper script for finding unused imports:

# Find unused imports in Python files
python scripts/find_unused_imports.py src/utils.py src/services.py

Unused Imports:

# Python: AST-based analysis
import ast
# Track: Import statements vs actual usage
# Skip: Dynamic imports (importlib, __import__)
// JavaScript: Module analysis
// Track: import/require vs references
// Skip: Dynamic imports, lazy loading

Unused Functions/Classes:

  • Define: All declared functions/classes
  • Reference: Direct calls, inheritance, callbacks
  • Preserve: Entry points, framework hooks, event handlers

4. Safety Checks

Never Remove If:

  • Python: getattr(), eval(), globals() usage detected
  • JavaScript: window[], this[], dynamic import() usage
  • Java: Reflection, annotations (@Component, @Service)
  • Framework patterns: Models, controllers, routes, components
  • Entry points: Main functions, app initialization
  • Test files: All test-related code

Framework Preservation:

Python:

  • Django: Models, migrations, admin registrations
  • Flask: Routes, blueprints, app factories
  • FastAPI: Endpoints, dependencies

JavaScript:

  • React: Components, hooks, context providers
  • Vue: Components, directives, mixins
  • Angular: Decorators, services, modules

Java:

  • Spring: Beans, controllers, repositories
  • JPA: Entities, repositories

5. Safe Removal Process

Backup Creation:

backup_dir="./unused_code_backup_$(date +%Y%m%d_%H%M%S)"
cp -r . "$backup_dir" 2>/dev/null || mkdir -p "$backup_dir" && rsync -a . "$backup_dir"

Incremental Removal:

  1. Create temp file with change
  2. Validate syntax
  3. Run tests if available
  4. Apply or rollback

Validation:

# Python
python -m py_compile file.py
python -m pytest

# JavaScript
npx eslint file.js
npm test

# Java
javac -Xlint file.java
mvn test

Examples

Example 1: Remove Unused Imports

Input: Clean up unused imports in src/utils/helpers.py

Output:

## Dead Code Removal: src/utils/helpers.py

### Analysis
- **File**: `src/utils/helpers.py`
- **Total imports**: 8
- **Unused imports**: 3

### Unused Imports Found
1. `import os` - Line 2 (not used anywhere)
2. `import json` - Line 3 (not used anywhere)
3. `from datetime import timedelta` - Line 5 (not used anywhere)

### Safe to Remove
✅ All 3 imports are safe to remove (no dynamic usage detected)

### Changes
```python
# Before
import os
import json
from datetime import datetime, timedelta
import requests

# After
from datetime import datetime
import requests

Validation

  • ✅ Syntax check passed
  • ✅ Tests pass
  • ✅ No dynamic imports detected

### Example 2: Remove Unused Functions

**Input**: Find unused functions in `src/services/`

**Output**:
```markdown
## Dead Code Removal: src/services/

### Analysis
- **Files analyzed**: 12
- **Functions found**: 45
- **Unused functions**: 2

### Unused Functions

**1. `formatOldDate()` in `src/services/utils.js`**
- **Location**: Line 34-42
- **Status**: ✅ Safe to remove
- **Reason**: No references found, not exported, not used in tests

**2. `legacyAuth()` in `src/services/auth.js`**
- **Location**: Line 78-95
- **Status**: ⚠️ Preserved (framework pattern)
- **Reason**: Referenced in route configuration (line 12)

### Summary
- **Removed**: 1 function (`formatOldDate`)
- **Preserved**: 1 function (framework usage)
- **Lines removed**: 9
- **Size reduction**: ~300 bytes

Best Practices

Safety Guidelines

Do:

  • Run tests after each removal
  • Preserve framework patterns
  • Check string references in templates
  • Validate syntax continuously
  • Create comprehensive backups
  • Remove incrementally

Don't:

  • Remove without understanding purpose
  • Batch remove without testing
  • Ignore dynamic usage patterns
  • Skip configuration files
  • Remove from migrations
  • Remove exported/public APIs

Detection Patterns

Static Analysis:

  • Use AST parsing for accurate detection
  • Track cross-file references
  • Check for dynamic usage patterns
  • Verify framework-specific patterns

Validation:

  • Always run syntax checks
  • Run tests after removal
  • Verify build still works
  • Check for runtime errors

Reporting

Report Should Include:

  • Files analyzed (count and types)
  • Unused detected (imports, functions, classes)
  • Safely removed (with validation status)
  • Preserved (reason for keeping)
  • Impact metrics (lines removed, size reduction)

Related Use Cases

  • Code cleanup before release
  • Reducing bundle size
  • Removing deprecated code
  • Maintaining code quality
  • Refactoring legacy codebases
  • Optimizing build times

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Trigger for: explaining current FAR, DFARS, or agency-supplement text; determining documented acquisition-policy status for an agency and FAR part; comparing codified text, RFO model text, and agency deviations; tracing acquisition rulemaking; finding procurement comment periods; analyzing public comments; refreshing prior policy analysis; or producing an Acquisition Policy Impact Brief. Use published federal sources and supplied policy documents without making legal or procurement-specific applicability determinations. Do not use for clause selection, market research execution, opportunities, pricing, grants, or cooperative agreements.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Systematic framework for extracting actionable items from documents and organizing them into prioritized, trackable checklists. Use when converting reports, meeting notes, audits, or any document with embedded action items into structured TODO lists.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Browser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Run AI apps via inference.sh CLI - image generation, video creation, LLMs, search, 3D, Twitter automation. Models: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter, and many more. Use when running AI apps, generating images/videos, calling LLMs, web search, or automating Twitter. Triggers: inference.sh, infsh, ai model, run ai, serverless ai, ai api, flux, veo, claude api, image generation, video generation, openrouter, tavily, exa search, twitter api, grok

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

Agile ceremonies and sprint management specialist. Use when running standups, retrospectives, sprint planning, or tracking sprint progress.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aiskillstore/marketplace4392026년 10월 18일 업데이트

aiskillstore의 스킬 모두 보기

이 스킬의 문제 신고