Agent Skills: /configure:dead-code

Check and configure dead code detection (Knip, Vulture, cargo-machete)

UncategorizedID: laurigates/claude-plugins/configure-dead-code

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/configure-plugin/skills/configure-dead-code

Skill Files

Browse the full folder contents for configure-dead-code.

Download Skill

Loading file tree…

configure-plugin/skills/configure-dead-code/SKILL.md

Skill Metadata

Name
configure-dead-code
Description
Check and configure dead code detection (Knip, Vulture, cargo-machete)

/configure:dead-code

Check and configure dead code detection tools.

When to Use This Skill

| Use this skill when... | Use another approach when... | |------------------------|------------------------------| | Setting up dead code detection for a new project | Running an existing dead code scan (knip, vulture) | | Auditing whether Knip, Vulture, or cargo-machete is configured correctly | Manually removing specific unused exports or imports | | Migrating between dead code detection tools | Debugging why a specific file is flagged as unused | | Adding dead code checks to CI/CD pipelines | Reviewing dead code findings one by one | | Standardizing dead code detection across a monorepo | Configuring linting rules (/configure:linting instead) |

Context

  • Project root: !pwd
  • Package files: !find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \)
  • Knip config: !find . -maxdepth 1 \( -name 'knip.json' -o -name 'knip.config.*' \)
  • Vulture config: !find . -maxdepth 1 \( -name '.vulture' -o -name 'vulture.ini' \)
  • Pre-commit: !find . -maxdepth 1 -name '.pre-commit-config.yaml'
  • Project standards: !find . -maxdepth 1 -name '.project-standards.yaml'

Parameters

Parse from command arguments:

  • --check-only: Report compliance status without modifications (CI/CD mode)
  • --fix: Apply fixes automatically without prompting
  • --tool <knip|vulture|deadcode|machete>: Override tool detection

Dead code detection tools:

  • JavaScript/TypeScript: Knip (finds unused files, exports, dependencies)
  • Python: Vulture or deadcode (finds unused code)
  • Rust: cargo-machete (finds unused dependencies)

Execution

Execute this dead code detection compliance check:

Step 1: Detect project language and existing tools

Check for language and tool indicators:

| Indicator | Language | Tool | |-----------|----------|------| | knip.json or knip.config.* | JavaScript/TypeScript | Knip | | package.json with knip | JavaScript/TypeScript | Knip | | pyproject.toml [tool.vulture] | Python | Vulture | | .vulture or vulture.ini | Python | Vulture | | Cargo.toml | Rust | cargo-machete |

Use WebSearch or WebFetch to verify latest versions before configuring.

Step 2: Analyze current configuration

For the detected tool, check configuration completeness:

Knip:

  • [ ] Config file exists (knip.json or knip.config.*)
  • [ ] Entry points configured
  • [ ] Ignore patterns set
  • [ ] Plugin configurations
  • [ ] Workspace support (monorepo)
  • [ ] CI integration

Vulture:

  • [ ] Configuration file exists
  • [ ] Minimum confidence set
  • [ ] Paths configured
  • [ ] Ignore patterns
  • [ ] Allowlist file (if needed)

cargo-machete:

  • [ ] Installed as cargo subcommand
  • [ ] Workspace configuration
  • [ ] CI integration

Step 3: Generate compliance report

Print a formatted compliance report:

Dead Code Detection Compliance Report
======================================
Project: [name]
Language: [TypeScript | Python | Rust]
Tool: [Knip 5.x | Vulture 2.x | cargo-machete 0.6.x]

Configuration:
  Config file             knip.json                  [EXISTS | MISSING]
  Entry points            configured                 [CONFIGURED | AUTO-DETECTED]
  Ignore patterns         node_modules, dist         [CONFIGURED | INCOMPLETE]
  Plugin support          enabled                    [ENABLED | N/A]

Detection Scope:
  Unused files            enabled                    [ENABLED | DISABLED]
  Unused exports          enabled                    [ENABLED | DISABLED]
  Unused dependencies     enabled                    [ENABLED | DISABLED]
  Unused types            enabled                    [ENABLED | DISABLED]

Scripts:
  dead-code command       package.json scripts       [CONFIGURED | MISSING]

Integration:
  Pre-commit hook         .pre-commit-config.yaml    [OPTIONAL | MISSING]
  CI/CD check             .github/workflows/         [CONFIGURED | MISSING]

Overall: [X issues found]

If --check-only, stop here.

Step 4: Configure dead code detection (if --fix or user confirms)

Apply configuration based on detected language. Use templates from REFERENCE.md:

  1. Install tool (e.g., bun add --dev knip, uv add --group dev vulture)
  2. Create config file with entry points, exclusions, and plugins
  3. Add scripts to package.json or create run commands
  4. Add CI workflow step (warning mode, not blocking)

Step 5: Update standards tracking

Update .project-standards.yaml:

standards_version: "2025.1"
last_configured: "[timestamp]"
components:
  dead_code: "2025.1"
  dead_code_tool: "[knip|vulture|deadcode|machete]"
  dead_code_ci: true

Step 6: Print final report

Print a summary of changes applied, run an initial scan if possible, and provide next steps for reviewing findings.

For detailed configuration templates and usage examples, see REFERENCE.md.

Agentic Optimizations

| Context | Command | |---------|---------| | Quick compliance check | /configure:dead-code --check-only | | Auto-fix all issues | /configure:dead-code --fix | | Run Knip scan (JS/TS) | npx knip --reporter compact | | Run Vulture scan (Python) | vulture . --min-confidence 80 | | Run cargo-machete (Rust) | cargo machete | | CI mode (JSON output) | npx knip --reporter json |

Flags

| Flag | Description | |------|-------------| | --check-only | Report status without offering fixes | | --fix | Apply all fixes automatically without prompting | | --tool <tool> | Override tool detection (knip, vulture, deadcode, machete) |

Examples

# Check compliance and offer fixes
/configure:dead-code

# Check only, no modifications
/configure:dead-code --check-only

# Auto-fix with Knip
/configure:dead-code --fix --tool knip

Error Handling

  • No language detected: Cannot determine appropriate tool, error
  • Tool installation fails: Report error, suggest manual installation
  • Configuration conflicts: Warn about multiple tools, suggest consolidation
  • High number of findings: Suggest starting with allowlist

See Also

  • /configure:linting - Configure linting tools
  • /configure:all - Run all compliance checks
  • Knip documentation: https://knip.dev
  • Vulture documentation: https://github.com/jendrikseipp/vulture
  • cargo-machete documentation: https://github.com/bnjbvr/cargo-machete
/configure:dead-code Skill | Agent Skills