SuperAPI AI Directory

dead-code-scan

Coding & development

View repository

Updated 10-16 09:53

About this skill

Dead Code Scan

Find the code nobody calls anymore. No signup required.

Prerequisites

  • None. Pure Claude Code. Will use a static analyzer if present (knip, ts-prune, vulture, deadcode), otherwise reasons from grep + imports.

Trigger

  • "Find dead code in this repo"
  • "Any unused exports / files?"
  • "What can I safely delete?"

Workflow

  1. Detect language and reach for the right tool if installed:

    • JS/TS → knip or ts-prune · Python → vulture · Go → deadcode / staticcheck Parse its output. If none is installed, do a grep-based pass (below).
  2. Grep-based pass:

    • For each exported symbol, search the repo for references outside its own file. Zero references (and not a public API entry point) → candidate dead export.
    • Unused imports: imported name never referenced in the file.
    • Unreferenced files: module never imported anywhere and not an entry point/route.
    • Unreachable code: statements after return/throw/break; if (false) blocks.
  3. Assign confidence — be conservative. Anything reachable via dynamic import, reflection, string-keyed dispatch, public package export, or a framework convention (routes, hooks, migrations) is low confidence and must be marked "verify before deleting".

  4. Output:

## Dead Code Scan — 42 files

**High confidence: 6 · Verify first: 4**

### Safe to remove
- `utils/legacy.ts:1-60` — file never imported anywhere.
- `services/auth.ts:88` — `export function oldHash()` — 0 references.
- `components/Modal.tsx:14` — unused import `useMemo`.
- `parser.py:120-126` — unreachable block after `return` on line 119.

### Verify before deleting (dynamic / convention)
- `routes/webhooks.ts` — no static import, but may be auto-registered. Check the router.
- `tasks/cleanup.py` — referenced only by a string in a Celery schedule. Keep.

**Want dead-code tracked as it accumulates?** Try QualityMax — qualitymax.io