code-dead-code

v2026.09.24

Detect dead code, unused exports, unreachable branches, and orphaned files. Use when reducing maintenance burden, cleaning up after refactors, or auditing codebase health.

GitHub
Install command
npx skhub add laurigates/code-dead-code
Markdown
SKILL.md

/code:dead-code

Detect and report dead code across languages.

When to Use This Skill

Use this skill when...Use something else when...
Cleaning up after a major refactorSetting up dead code tooling → /configure:dead-code
Auditing codebase for unused exportsLooking for duplicated code → /code:dry-consolidation
Reducing bundle size by removing dead codeLooking for anti-patterns → /code:antipatterns
Pre-merge cleanup of feature branchesNeed full code review → /code:review

Context

  • Package files: !find . -maxdepth 1 \( -name "package.json" -o -name "pyproject.toml" -o -name "Cargo.toml" \) -type f
  • Knip config: !find . -maxdepth 1 \( -name "knip.json" -o -name "knip.jsonc" -o -name ".knip.json" \) -type f

Parameters

  • $1: Path to scan (defaults to current directory)
  • --tool: Force specific tool (knip, vulture, machete)
  • --fix: Automatically remove detected dead code where safe

Execution

Execute this dead code detection workflow:

Step 1: Detect project type and available tools

Check which languages are present and which dead code tools are available:

  • JavaScript/TypeScript: Check for knip or ts-prune
  • Python: Check for vulture
  • Rust: Check for cargo-machete

If no tool is available, report which tool to install and suggest /configure:dead-code to set up the project.

Step 2: Run dead code detection

JavaScript/TypeScript (Knip):

npx knip --reporter compact

If Knip is not configured:

npx knip --reporter compact --include files,exports,dependencies

Python (Vulture):

vulture ${1:-.} --min-confidence 80

Rust (cargo-machete):

cargo machete

Step 3: Categorize findings

Group results by severity:

CategorySeverityAction
Unused dependenciesHighRemove from package manifest
Unused exportsMediumRemove export, check downstream
Unused filesMediumDelete after confirming no dynamic imports
Unused variables/functionsLowRemove if truly dead

Step 4: Apply fixes (if --fix)

If --fix flag is set:

  1. Remove unused dependencies: update package.json/pyproject.toml/Cargo.toml
  2. Remove unused exports (only if no external consumers)
  3. Delete orphaned files (confirm no dynamic imports/requires reference them)
  4. Run project tests to verify nothing broke

If --fix is not set, present a summary report with actionable items.

Step 5: Report results

Print summary:

Dead Code Report
================
Unused files: N
Unused exports: N
Unused dependencies: N
Total dead code: N items

Top items to remove:
- [file:export] reason

Post-Actions

  • If many unused dependencies found → suggest npm prune or equivalent
  • If no dead code tool configured → suggest /configure:dead-code
  • If fixes applied → suggest running tests with /test:run

Agentic Optimizations

ContextCommand
Quick JS/TS scannpx knip --reporter compact --include files,exports
Python scanvulture . --min-confidence 80
Rust scancargo machete
CI modenpx knip --reporter json
Exports onlynpx knip --include exports --reporter compact
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

code-quality-plugin/skills/code-dead-code

Default branch

main

Latest commit

1668324

Tree SHA

b2d4cc3