Skip to content
Back to skills

Ide Dead Code Hunter

ASecurity

Find unused exports, dead functions, and unreachable code across the workspace using LSP analysis. Cross-verifies detectUnusedCode with findReferences to eliminate false positives. Use to clean up technical debt or before a major refactor.

  • 30 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
ai-agentstypescriptgoapi

Works with

  • api

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add Oolab-labs/patchwork-os --skill ide-dead-code-hunter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ide Dead Code Hunter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ide Dead Code Hunter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/oolab-labs-ide-dead-code-hunter/badge)](https://www.skillsdirectory.com/skills/oolab-labs-ide-dead-code-hunter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ide-dead-code-hunter
description: Find unused exports, dead functions, and unreachable code across the workspace using LSP analysis. Cross-verifies detectUnusedCode with findReferences to eliminate false positives. Use to clean up technical debt or before a major refactor.
context: fork
agent: general-purpose
effort: medium
argument-hint: "[optional: file or directory to scope the search]"
---

# IDE Dead Code Hunter

## Prerequisites

1. Check if `getToolCapabilities` is available.
   - **Not available**: tell the user this skill requires the Claude IDE Bridge with a connected VS Code extension, then stop.
   - **Available**: call it. If `extensionConnected` is false: show the same message and stop. If true: proceed.

## Goal

Find dead code — unused exports, functions with zero callers, unused imports — and produce a prioritized cleanup list with confidence badges.

## Workflow

### Phase 1: Scope

1. Note the argument: `$ARGUMENTS`
   - If a specific file path: scope search to that file only
   - If a directory: scope to that directory
   - If empty: search the entire workspace

2. Use `getProjectInfo` to understand the project type and entry points (to avoid flagging intentional public API exports as dead)

### Phase 2: Detect unused symbols

3. Call `detectUnusedCode` on each in-scope file (or workspace-wide if no scope)
4. For each reported unused symbol, call `findReferences` to cross-verify:
   - **Zero references**: confirmed dead — high confidence
   - **References only in the same file**: likely dead (internal-only) — medium confidence
   - **References in other files**: false positive from `detectUnusedCode` — skip

5. Call `searchWorkspace` with pattern `^export` on TypeScript/JS files to find exported symbols not caught by `detectUnusedCode`, then run `findReferences` on each to check usage outside the file

### Phase 3: Unused imports

6. Use `getDocumentSymbols` on each in-scope file to list import declarations
7. For any import whose symbol has zero `findReferences` results in the current file body: flag as unused import

### Phase 4: Build the report

Produce a Markdown table sorted by priority:

```
## Dead Code Report

Scoped to: [scope or "workspace-wide"]
Analyzed: N files

### High Confidence (zero external references)

| Symbol | File | Line | Type | Action |
|--------|------|------|------|--------|
| `functionName` | src/foo.ts | 42 | function | Delete |
| ...

### Medium Confidence (internal refs only)

| Symbol | File | Line | Type | Refs | Action |
|--------|------|------|------|------|--------|
| `helperFn` | src/bar.ts | 15 | function | 2 (same file) | Review |
| ...

### Unused Imports

| Import | File | Line | Action |
|--------|------|------|--------|
| `{ OldType }` | src/baz.ts | 3 | Remove |
| ...

### Summary
- High confidence dead code: N symbols
- Medium confidence: M symbols
- Unused imports: K declarations
- Estimated line reduction: ~X lines
```

## Guidelines

- Never suggest deleting public API exports that match entry points identified in Phase 1
- Flag test files separately — unused test helpers may be intentional scaffolding
- If a symbol is referenced only in `*.test.ts` files with no production callers, note it as "test-only" rather than dead
- Keep report under 60 lines for workspaces with fewer than 20 dead symbols; truncate to top 20 by confidence for larger codebases

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.