# Dead Code Cleanup

Use when the user asks about cleanup, removing unused code, refactoring, reducing...

- Repository: https://github.com/repowise-dev/repowise (8087 stars)
- Category: Engineering
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add repowise-dev/repowise --skill dead-code-cleanup -g -a claude-code -y`
Codex: `npx skills add repowise-dev/repowise --skill dead-code-cleanup -g -a codex -y`
Cursor: `npx skills add repowise-dev/repowise --skill dead-code-cleanup -g -a cursor -y`
Gemini CLI: `npx skills add repowise-dev/repowise --skill dead-code-cleanup -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add repowise-dev/repowise`

## Description

Use when the user asks about cleanup, removing unused code, refactoring, reducing bundle size, or identifying dead code in a Repowise-indexed codebase (.repowise/ directory exists). Also activates when discussing technical debt, code hygiene, or repository maintenance.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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)

