About dead-code-cleanup
Repowise’s dead-code cleanup skill uses code-graph analysis to identify potentially unused files, exports, and packages for developers to review. Findings are tiered by confidence, with guidance for assessing safe deletion and checking dependencies.
Key features
- 01Detect unreachable files and unused exports
- 02Find packages with no consumers
- 03Filter findings by confidence
- 04Group results by directory or owner
- 05Check dependency risk before deletion
Use cases
- 01Clean up unused code in older directories
- 02Locate monorepo packages with no consumers
- 03Find candidates considered safe to delete
- 04Review file dependencies before removal
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ repowise-dev/ repowise --skill dead-code-cleanupAfter installing, type/dead-code-cleanupin Claude Code to confirm it loaded.
Details
From the project READMEDead Code Cleanup with Repowise
Repowise detects dead code through graph analysis — no LLM needed, works even with a template-rendered wiki.
When the user asks about dead/unused code
Call get_dead_code() to get findings sorted by confidence tier. Useful parameters:
safe_only=true— only findings confirmed safe to delete (confidence >= 0.7)kind="unreachable_file"— files with no importerskind="unused_export"— public symbols nobody useskind="zombie_package"— monorepo packages with no consumersdirectory="src/old/"— limit to a specific directorytier="high"— only high-confidence findings (>= 0.8)min_confidence=0.7— raise the floor (default is 0.5) for a release-ready cleanupgroup_by="directory"orgroup_by="owner"— roll up to see where the dead code concentrates and who owns the most of it
How to present findings
- Only suggest deletion for findings with
safe_to_delete: true - For lower-confidence findings, present them as "candidates to investigate" not "things to delete"
- Dynamically-loaded code (plugins, handlers, adapters) may appear as dead code but isn't — Repowise filters common patterns but edge cases exist
Before deleting anything
- Confirm with the user. Present the file/symbol name, confidence score, and why Repowise thinks it's dead.
- Call
get_risk(targets=["path/to/file"])to double-check dependents. - Recently-modified "dead" code is more likely a false positive — flag this if the finding has recent git activity.
Safe deletion order
- Unreachable files first (whole file removal, cleanest)
- Unused internal symbols next
- Unused exports last (highest false-positive risk due to potential dynamic imports)
Comments
Markdown supported