> knip-deadcode
Knip dead code detection best practices for JavaScript and TypeScript projects. Use when configuring Knip, analyzing unused code, setting up CI integration, or cleaning up codebases. Triggers on knip.json, dead code, unused exports, unused dependencies, bundle optimization.
curl "https://skillshub.wtf/pproenca/dot-skills/knip-deadcode?format=md"Community Knip Dead Code Detection Best Practices
Comprehensive guide for detecting and removing dead code in JavaScript and TypeScript projects using Knip. Contains 43 rules across 8 categories, prioritized by impact to guide configuration, CI integration, and cleanup workflows.
When to Apply
Reference these guidelines when:
- Configuring Knip for a new project or monorepo
- Investigating false positives or false negatives
- Setting up CI pipelines to prevent dead code regressions
- Using auto-fix to clean up unused code
- Optimizing Knip performance for large codebases
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Configuration Foundations | CRITICAL | config- |
| 2 | Entry Point Strategy | CRITICAL | entry- |
| 3 | Workspace & Monorepo | HIGH | workspace- |
| 4 | Dependency Analysis | HIGH | deps- |
| 5 | Export Detection | MEDIUM-HIGH | exports- |
| 6 | CI Integration | MEDIUM | ci- |
| 7 | Auto-Fix Workflow | MEDIUM | fix- |
| 8 | Performance Optimization | LOW-MEDIUM | perf- |
Quick Reference
1. Configuration Foundations (CRITICAL)
config-avoid-broad-ignore- Avoid broad ignore patternsconfig-configure-path-aliases- Configure path aliases in Knipconfig-enable-plugins-explicitly- Enable framework plugins explicitlyconfig-run-without-config- Run without config first for baselineconfig-separate-entry-project- Separate entry files from project filesconfig-use-json-schema- Use JSON schema for configuration validationconfig-use-negation-patterns- Use negation patterns for exclusionsconfig-use-production-mode- Use production mode for shipping code analysis
2. Entry Point Strategy (CRITICAL)
entry-add-dynamic-imports- Add dynamic import targets as entry pointsentry-exclude-test-files- Exclude test files from production entriesentry-include-all-entry-points- Include all application entry pointsentry-include-bin-scripts- Include binary scripts as entry pointsentry-use-compilers- Use compilers for non-standard file typesentry-use-plugin-entries- Use plugin entry points for frameworksentry-verify-with-debug- Verify entry points with debug mode
3. Workspace & Monorepo (HIGH)
workspace-configure-root-workspace- Configure root workspace explicitlyworkspace-ignore-specific- Ignore specific workspaces when neededworkspace-isolate-for-strict- Isolate workspaces for strict dependency checkingworkspace-list-cross-deps- List cross-workspace dependencies explicitlyworkspace-per-workspace-plugins- Configure plugins per workspaceworkspace-use-workspace-globs- Use workspace globs for consistent configuration
4. Dependency Analysis (HIGH)
deps-add-unlisted-deps- Add unlisted dependencies to package.jsondeps-avoid-transitive-reliance- Avoid relying on transitive dependenciesdeps-configure-plugin-deps- Configure plugins for tool-specific dependenciesdeps-fix-files-first- Fix unused files before dependenciesdeps-ignore-conditional-deps- Ignore conditionally loaded dependenciesdeps-remove-obsolete-types- Remove obsolete type definition packages
5. Export Detection (MEDIUM-HIGH)
exports-check-class-members- Check class members for unused codeexports-enable-entry-exports- Enable entry export checking for private packagesexports-handle-reexports- Handle re-exports in barrel filesexports-ignore-same-file- Ignore exports used in same fileexports-tag-public-api- Tag public API exports with JSDocexports-trace-usage- Trace export usage before removalexports-use-include-libs- Use include libs for type-based consumption
6. CI Integration (MEDIUM)
ci-add-to-pipeline- Add Knip to CI pipelineci-separate-production-check- Separate production and default mode checksci-use-cache- Enable cache for faster CI runsci-use-max-issues- Use max issues for gradual adoptionci-use-reporters- Use appropriate reporters for CI outputci-watch-mode-local- Use watch mode for local development
7. Auto-Fix Workflow (MEDIUM)
fix-allow-remove-files- Explicitly allow file removalfix-format-after-fix- Format code after auto-fixfix-review-before-commit- Review auto-fix changes before commitfix-update-deps-after- Update package manager after dependency fixfix-use-fix-type- Use fix type for targeted cleanup
8. Performance Optimization (LOW-MEDIUM)
perf-filter-issue-types- Filter issue types for focused analysisperf-limit-output- Limit output for large codebasesperf-profile-performance- Profile performance for slow analysisperf-use-bun-runtime- Use Bun runtime for faster analysisperf-use-cache-flag- Enable cache for repeated analysisperf-use-workspace-filter- Filter workspaces for faster monorepo analysis
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
Reference Files
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |
> related_skills --same-repo
> valid-skill
A valid test skill with proper formatting. This skill should pass all validations and serves as a reference for the expected format.
> too-long-skill
This skill has more than 500 lines which should fail validation.
> missing-references
This skill references rules that do not have corresponding files in the references directory.
> missing-description
missing-description skill from pproenca/dot-skills