configure-dead-code
SKILL.md
/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.jsonorknip.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:
- Install tool (e.g.,
bun add --dev knip,uv add --group dev vulture) - Create config file with entry points, exclusions, and plugins
- Add scripts to package.json or create run commands
- 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
Weekly Installs
48
Repository
laurigates/clau…-pluginsGitHub Stars
14
First Seen
Feb 9, 2026
Security Audits
Installed on
opencode48
gemini-cli48
github-copilot48
codex48
amp48
cline48