dead-code-removal by 89jobrien/steve
npx skills add https://github.com/89jobrien/steve --skill dead-code-removal此技能可安全识别并移除多种编程语言中未使用的代码。它包含全面的安全检查,以防止移除实际需要的代码。
此技能在 scripts/ 目录中包含 Python 辅助脚本:
find_unused_imports.py:使用 AST 解析来准确检测 Python 文件中未使用的导入。输出包含未使用导入和行号的 JSON。
python scripts/find_unused_imports.py src/utils.py src/services.py
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
查找并移除此项目中未使用的导入和函数
清理 src/ 目录中的死代码,但要保守操作
检查 src/utils/ 中未使用的函数并安全地移除它们
识别项目类型:
pyproject.toml、setup.py、requirements.txtpackage.json、tsconfig.jsonpom.xml、build.gradlego.modCargo.toml检测入口点:
main.py、__main__.py、app.py、run.pyindex.js、main.js、server.js、app.jsMain.java、*Application.java、*Controller.java*.config.*、settings.*、setup.*test_*.py、*.test.js、*.spec.js跨文件依赖:
框架模式:
使用辅助脚本:
此技能包含一个用于查找未使用导入的 Python 辅助脚本:
# 在 Python 文件中查找未使用的导入
python scripts/find_unused_imports.py src/utils.py src/services.py
未使用的导入:
# Python: 基于 AST 的分析
import ast
# 跟踪: 导入语句与实际使用情况
# 跳过: 动态导入 (importlib, __import__)
// JavaScript: 模块分析
// 跟踪: import/require 与引用
// 跳过: 动态导入,懒加载
未使用的函数/类:
绝不移除如果:
getattr()、eval()、globals() 的使用window[]、this[]、动态 import() 的使用@Component、@Service)框架保留:
Python:
JavaScript:
Java:
备份创建:
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"
增量移除:
验证:
# Python
python -m py_compile file.py
python -m pytest
# JavaScript
npx eslint file.js
npm test
# Java
javac -Xlint file.java
mvn test
输入:清理 src/utils/helpers.py 中未使用的导入
输出:
## 死代码移除: src/utils/helpers.py
### 分析
- **文件**: `src/utils/helpers.py`
- **总导入数**: 8
- **未使用导入数**: 3
### 发现的未使用导入
1. `import os` - 第 2 行(未在任何地方使用)
2. `import json` - 第 3 行(未在任何地方使用)
3. `from datetime import timedelta` - 第 5 行(未在任何地方使用)
### 可安全移除
✅ 所有 3 个导入都可以安全移除(未检测到动态使用)
### 更改
```python
# 之前
import os
import json
from datetime import datetime, timedelta
import requests
# 之后
from datetime import datetime
import requests
✅ 语法检查通过
✅ 测试通过
✅ 未检测到动态导入
输入: 查找 src/services/ 中未使用的函数
输出:
## 死代码移除: src/services/
### 分析
- **已分析文件**: 12
- **发现函数**: 45
- **未使用函数**: 2
### 未使用函数
**1. `formatOldDate()` 在 `src/services/utils.js` 中**
- **位置**: 第 34-42 行
- **状态**: ✅ 可安全移除
- **原因**: 未找到引用,未导出,未在测试中使用
**2. `legacyAuth()` 在 `src/services/auth.js` 中**
- **位置**: 第 78-95 行
- **状态**: ⚠️ 已保留(框架模式)
- **原因**: 在路由配置中被引用(第 12 行)
### 总结
- **已移除**: 1 个函数 (`formatOldDate`)
- **已保留**: 1 个函数(框架使用)
- **移除行数**: 9
- **大小缩减**: ~300 字节
应做:
不应做:
静态分析:
验证:
报告应包含:
每周安装数
111
仓库
GitHub 星标数
4
首次出现
2026年1月24日
安全审计
安装于
opencode94
gemini-cli93
codex89
claude-code88
github-copilot86
cursor80
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.
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
Find and remove unused imports and functions in this project
Clean up dead code in src/ directory, but be conservative
Check for unused functions in src/utils/ and remove them safely
Identify Project Type:
pyproject.toml, setup.py, requirements.txtpackage.json, tsconfig.jsonpom.xml, build.gradlego.modCargo.tomlDetect Entry Points:
main.py, __main__.py, app.py, run.pyindex.js, main.js, server.js, app.jsMain.java, *Application.java, *Controller.javaCross-File Dependencies:
Framework Patterns:
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:
Never Remove If:
getattr(), eval(), globals() usage detectedwindow[], this[], dynamic import() usage@Component, @Service)Framework Preservation:
Python:
JavaScript:
Java:
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:
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
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
✅ Syntax check passed
✅ Tests pass
✅ No dynamic imports detected
Input: Find unused functions in src/services/
Output:
## 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
Do:
Don't:
Static Analysis:
Validation:
Report Should Include:
Weekly Installs
111
Repository
GitHub Stars
4
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode94
gemini-cli93
codex89
claude-code88
github-copilot86
cursor80
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
40,000 周安装
缓存策略指南:Redis、Node.js、Python实现,提升应用性能与降低延迟
196 周安装
Firecrawl 网页抓取工具:AI 友好的 Markdown 转换与反爬虫处理
192 周安装
AI智能体开发指南:Python与Node.js框架选择、核心原则与架构解析
195 周安装
GitHub Pages 一键部署指南:使用 GitHub CLI 快速部署静态网站
193 周安装
macOS日历管理脚本:自动化创建、管理Apple日历事件,支持自然语言解析
196 周安装
数据库备份与恢复指南:PostgreSQL/MySQL备份策略、灾难恢复与RTO/RPO实践
197 周安装
*.config.*, settings.*, setup.*test_*.py, *.test.js, *.spec.js