mcpField
D
dead-code-cleanup

dead-code-cleanup

github.com/repowise-devDevelopment8.0k91 installsUpdated today
Repository

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

  1. 01Detect unreachable files and unused exports
  2. 02Find packages with no consumers
  3. 03Filter findings by confidence
  4. 04Group results by directory or owner
  5. 05Check dependency risk before deletion

Use cases

  1. 01Clean up unused code in older directories
  2. 02Locate monorepo packages with no consumers
  3. 03Find candidates considered safe to delete
  4. 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-cleanup

After installing, type/dead-code-cleanupin Claude Code to confirm it loaded.

Details

From the project README

Dead 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 importers
  • kind="unused_export" — public symbols nobody uses
  • kind="zombie_package" — monorepo packages with no consumers
  • directory="src/old/" — limit to a specific directory
  • tier="high" — only high-confidence findings (>= 0.8)
  • min_confidence=0.7 — raise the floor (default is 0.5) for a release-ready cleanup
  • group_by="directory" or group_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

  1. Confirm with the user. Present the file/symbol name, confidence score, and why Repowise thinks it's dead.
  2. Call get_risk(targets=["path/to/file"]) to double-check dependents.
  3. Recently-modified "dead" code is more likely a false positive — flag this if the finding has recent git activity.

Safe deletion order

  1. Unreachable files first (whole file removal, cleanest)
  2. Unused internal symbols next
  3. Unused exports last (highest false-positive risk due to potential dynamic imports)

Comments

Markdown supported