Audit Repo
1838904818/audit-repo
Audit a software repository and turn reproducible signals into a prioritized, evidence-backed health report or compare audit snapshots over time.
Identify and analyze unused or redundant code including unused functions/methods, unused variables/imports, unreachable code, and redundant conditions.
$ npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ArabelaTso/Skills-4-SE dead-code-eliminator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dead-code-eliminator .claude/skills/dead-code-eliminator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dead-code-eliminator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminator into .claude/skills/dead-code-eliminator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dead-code-eliminator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ArabelaTso/Skills-4-SE dead-code-eliminator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dead-code-eliminator .agents/skills/dead-code-eliminator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dead-code-eliminator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminator into .agents/skills/dead-code-eliminator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dead-code-eliminator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ArabelaTso/Skills-4-SE dead-code-eliminator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dead-code-eliminator .cursor/skills/dead-code-eliminator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dead-code-eliminator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminator into .cursor/skills/dead-code-eliminator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dead-code-eliminator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ArabelaTso/Skills-4-SE.git --path skills/dead-code-eliminator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ArabelaTso/Skills-4-SE dead-code-eliminator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dead-code-eliminator .gemini/skills/dead-code-eliminator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dead-code-eliminator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminator into .gemini/skills/dead-code-eliminator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dead-code-eliminator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ArabelaTso/Skills-4-SE dead-code-eliminatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dead-code-eliminator .github/skills/dead-code-eliminator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dead-code-eliminator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminator into .github/skills/dead-code-eliminator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dead-code-eliminator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ArabelaTso/Skills-4-SE dead-code-eliminator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ArabelaTso/Skills-4-SE.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dead-code-eliminator .opencode/skills/dead-code-eliminator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dead-code-eliminator" agent skill from https://github.com/ArabelaTso/Skills-4-SE/tree/main/skills/dead-code-eliminator into .opencode/skills/dead-code-eliminator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dead-code-eliminator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dead-code-eliminatorIdentify and analyze unused or redundant code including unused functions/methods, unused variables/imports, unreachable code, and redundant conditions.
Dead Code Eliminator is an agent skill from ArabelaTso/Skills-4-SE. Identify and analyze unused or redundant code including unused functions/methods, unused variables/imports, unreachable code, and redundant conditions. Use when cleaning up codebases, improving maintainability, reducing technical debt, or conducting code quality audits. Analyzes Python code using AST analysis and produces markdown reports listing dead code locations with line numbers, severity ratings, and recommendations. Triggers when users ask to find dead code, remove unused code, identify unused imports…
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/dead-code-patterns.md`, `scripts/find_unused_functions.py` and `scripts/find_unused_imports.py`).
It sits in Development, covering Code quality and Technical debt. It works with Python. The repository describes itself as: A curated list of 180+ useful Claude Skills for Software Engineering and resources for customizing AI for SE workflows. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4f38503. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dead Code Eliminator loads about 3.3k tokens when it runs, and up to ~5.6k if it reads all its reference files. Until then it costs about 147 tokens; SKILL.md has 1,123 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ArabelaTso/Skills-4-SE at commit 4f38503, republished under its Apache-2.0 licence (© ArabelaTso). 1,123 words, ~3,316 tokens.
.claude/skills/dead-code-eliminator/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Systematically identify unused or redundant code in Python codebases to improve maintainability, reduce confusion, and eliminate technical debt.
Define what to analyze:
Questions to ask:
Determine analysis scope:
# Check project structure
ls -la
# Count Python files
find . -name "*.py" | wc -l
# Identify test directories
find . -type d -name "*test*"Use multiple detection strategies to find different types of dead code.
Use the bundled script for AST-based analysis:
# Scan entire project
python scripts/find_unused_functions.py /path/to/project
# Exclude specific directories
python scripts/find_unused_functions.py /path/to/project tests,venv,docsWhat it detects:
Limitations:
Use the bundled script to identify unused imports:
# Scan single file
python scripts/find_unused_imports.py /path/to/file.py
# Scan entire directory
python scripts/find_unused_imports.py /path/to/project
# Exclude directories
python scripts/find_unused_imports.py /path/to/project venv,.venv,testsWhat it detects:
from X import Y statementsLeverage Python ecosystem tools for comprehensive analysis:
vulture - Finds unused code:
# Install
pip install vulture
# Run on project
vulture /path/to/project
# Exclude directories
vulture /path/to/project --exclude venv,tests
# Set minimum confidence (0-100)
vulture /path/to/project --min-confidence 80autoflake - Focuses on imports and variables:
# Install
pip install autoflake
# Check for unused imports
autoflake --check --imports /path/to/file.py
# Check unused imports and variables
autoflake --check --remove-all-unused-imports --remove-unused-variables /path/to/file.py
# Recursive scan
autoflake --check -r /path/to/projectpylint - General linting including dead code:
# Install
pip install pylint
# Check for unused variables, imports, functions
pylint /path/to/project --disable=all --enable=unused-import,unused-variable,unreachableRead the code to identify patterns:
Unreachable code:
return statementsbreak, continue, or raiseRedundant conditions:
else after returnLook for:
# Find code after return statements (basic pattern)
grep -A 3 "return" **/*.py | grep -v "^--$"
# Find functions with "old" or "legacy" in name
grep -r "def.*old\|def.*legacy" .
# Find TODO comments about removal
grep -r "TODO.*remove\|FIXME.*delete" .Organize dead code by type and priority.
See dead-code-patterns.md for comprehensive pattern catalog.
Priority: High (easy to remove, low risk)
Examples:
import os but os is never usedfrom typing import List, Dict but only List is usedPriority: Medium to High
Subcategories:
Caution - May be intentional:
Priority: High (indicates bugs or confusion)
Examples:
returnraisePriority: Medium
Examples:
else after returnPriority: Low to Medium
Examples:
Before reporting, verify that identified code is truly dead.
Check for dynamic usage:
# Code may appear unused but is called dynamically
handlers = {
'process': process_handler, # Looks unused but isn't
}
# Or via getattr
handler = getattr(module, function_name)Check for external usage:
Check for framework conventions:
# Django signal handlers
@receiver(post_save, sender=User)
def user_saved(sender, instance, **kwargs): # May appear unused
pass
# Pytest fixtures
@pytest.fixture
def sample_data(): # Used by tests but not "called" directly
return {"key": "value"}Verify with grep:
# Search for function name in entire codebase
grep -r "function_name" .
# Search in quotes (dynamic calls)
grep -r "'function_name'\|\"function_name\"" .
# Search in setup.py or config files
grep -r "function_name" setup.py pyproject.tomlCreate a structured markdown report of findings.
Project: [Project Name] Analyzed: [Date] Scope: [Directories analyzed] Excluded: [Excluded directories]
Total: Z dead code instances found
Code that can never execute - should be removed immediately.
Location: src/utils.py:45-47
Code:
def process_data(data):
if not data:
return None
logging.warning("Empty data") # UNREACHABLE
validate(data) # UNREACHABLERecommendation: Remove lines 46-47 (unreachable after return).
Impact: Misleading code that suggests validation happens but doesn't.
src/main.pyLines:
import os (unused)from typing import Dict, Tuple (only Dict is used)import re (unused)Recommendation: Remove unused imports. Update line 5 to from typing import Dict.
Functions that appear unused but should be verified before removal.
Location: src/helpers.py:89
Function: format_timestamp(ts: int) -> str
Analysis:
Verification needed:
Recommendation: If not part of public API, remove. Otherwise, document it.
Locations:
src/processor_a.py:45-52src/processor_b.py:78-85Code: Both files contain identical validation logic.
Recommendation: Extract common logic into shared utility function.
Impact: Maintenance burden - changes must be duplicated.
Location: src/validator.py:123-127
Code:
def check_status(value):
if value > 0:
return "positive"
else: # Unnecessary
return "negative"Recommendation: Remove else clause (implicit after return).
Impact: Minor - slightly less readable but no functional impact.
Location: src/calculator.py:56
Code:
def compute(a, b):
total = a + b # Assigned but never used
return a * bRecommendation: Remove unused total variable.
These appear unused but may be called dynamically. Manual verification needed.
handle_create()Location: src/handlers.py:34
Reason for caution: File contains handler registry suggesting dynamic dispatch.
Code pattern:
HANDLERS = {
'create': handle_create,
'update': handle_update,
}Recommendation: Verify this is registered and used. If confirmed unused, remove.
Add to CI/CD pipeline:
# Add to pre-commit hook or CI
vulture src/ --min-confidence 80
autoflake --check -r src/Configure IDE:
Code review checklist:
[If needed, include full lists of all findings organized by file]
Share the report with the team and get feedback.
Present clearly:
Be cautious about:
Request feedback:
Start conservatively:
Use multiple detection methods:
Prioritize by risk:
Consider the context:
Prevention is better than cure:
Be aware of code that appears dead but isn't:
1. Dynamic dispatch:
handler = getattr(module, f"handle_{action}")2. Entry points:
# setup.py
entry_points={
'console_scripts': ['tool=module:main_function']
}3. Pytest fixtures:
@pytest.fixture
def sample_data(): # Used by tests implicitly
return data4. Django signals:
@receiver(post_save, sender=Model)
def handle_save(sender, instance, **kwargs): # Called by framework
pass5. Decorators and metaclasses:
class Meta:
def __init_subclass__(cls): # Called implicitly
register(cls)6. Public API functions:
# In library code - may be used by external code
def public_function(): # Appears unused internally
passFor comprehensive dead code patterns and detection strategies, see dead-code-patterns.md.
© ArabelaTso, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in skills/dead-code-eliminator of ArabelaTso/Skills-4-SE.
Open the folder on GitHubat commit 4f38503
Dead Code Eliminator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dead Code Eliminator this skillArabelaTso/Skills-4-SE | 253 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Audit Repo1838904818/audit-repo | 157 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Systematic Code Refactoringluongnv89/claude-howto | 42k | — | ~3k | Automated safety check: Pass | MIT | |
| Dignified Python Standardsdocling-project/docling | 68k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Code Refactoring Workflowluongnv89/claude-howto | 42k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Code Review Skillawesome-skills/code-review-skill | 2.1k | — | ~2.8k | Automated safety check: Notes | MIT |
1838904818/audit-repo
Audit a software repository and turn reproducible signals into a prioritized, evidence-backed health report or compare audit snapshots over time.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
docling-project/docling
Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.
luongnv89/claude-howto
Guides systematic, test-backed refactoring in the style of Martin Fowler, moving through research, planning and small incremental changes with your approval at each phase.
awesome-skills/code-review-skill
Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, Java 8, PHP, Ruby, Rails, Python, Django, FastAPI, Go, C/.NET, Kotlin, Swift, Dart…
ailabs-393/ai-labs-claude-skills
This skill should be used when analyzing technical debt in a codebase, documenting code quality issues, creating technical debt registers, or assessing code maintainability.
ArabelaTso/Skills-4-SE
Generate prioritized CVE watchlists and actionable security recommendations for repositories.
ArabelaTso/Skills-4-SE
Automatically migrate Python web applications between frameworks (Flask → FastAPI, Django → FastAPI).
ArabelaTso/Skills-4-SE
Generate test cases using metamorphic testing by applying transformations based on metamorphic properties.
ArabelaTso/Skills-4-SE
Instruments programs to capture execution traces specifically for reproducing reported bugs, enabling consistent replay and diagnosis of failures.
ArabelaTso/Skills-4-SE
Automatically migrate Spring MVC applications to Spring Boot.
ArabelaTso/Skills-4-SE
Instrument programs (Python, C/C++, Java) to capture snapshots of key program states at runtime, including variables, memory, and call stacks.
Works with
Categories
Identify and analyze unused or redundant code including unused functions/methods, unused variables/imports, unreachable code, and redundant conditions. Dead Code Eliminator is an agent skill from ArabelaTso/Skills-4-SE. Identify and analyze unused or redundant code including unused functions/methods, unused variables/imports, unreachable code, and redundant conditions.
Dead Code Eliminator fits situations like: cleaning up codebases; improving maintainability; reducing technical debt; conducting code quality audits.
Run `npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a claude-code`. Or copy the skill folder (skills/dead-code-eliminator in ArabelaTso/Skills-4-SE) into .claude/skills/dead-code-eliminator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a codex`. Or copy the skill folder (skills/dead-code-eliminator in ArabelaTso/Skills-4-SE) into .agents/skills/dead-code-eliminator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ArabelaTso/Skills-4-SE --skill dead-code-eliminator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dead-code-eliminator, .gemini/skills/dead-code-eliminator, .github/skills/dead-code-eliminator and .opencode/skills/dead-code-eliminator in your project.
Going by SKILL.md and its folder, Dead Code Eliminator needs Python for the scripts in its folder and the command-line tools its instructions call (python and pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Dead Code Eliminator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Dead Code Eliminator: Audit Repo (1838904818/audit-repo, 157 stars), Systematic Code Refactoring (luongnv89/claude-howto, 42k stars), Dignified Python Standards (docling-project/docling, 68k stars) and Code Refactoring Workflow (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ArabelaTso (a GitHub user) maintains it in ArabelaTso/Skills-4-SE, which has 253 GitHub stars. The repository holds 151 skills in this directory. The repository was last updated on August 21, 2026.
Source: ArabelaTso/Skills-4-SE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.