CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/knip-dead-code

Run Knip against a JS/TS project to detect unused files, unused dependencies, unused exports, and unused class/enum members. Scoped to production code; tests are entry-point-aware via Knip's framework plugins. Use after a feature or route is deleted and the project still compiles, or when `package.json` has accumulated dependencies nobody can account for.

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, command-driven skill: every section is executable, the entry-vs-project concept is explained in two lines, and pitfalls (auto-fix, brownfield rollout) are addressed as an anti-patterns table. The only gaps are cosmetic duplication and the absence of an explicit post-cleanup verification loop.

Suggestions

Trim duplication for conciseness: drop the "When to use" bullets that restate the description's triggers and collapse the three repeated "Per the [Knip docs]" citations into the single References-section link.

Close the workflow validation gap: after triage/deletion, add an explicit re-run step (e.g., "Re-run `npx knip` and confirm exit code 0 before declaring the project clean").

Move the per-framework plugin snippets in Step 4 (Next.js, Playwright configs) into a reference file so SKILL.md stays a lean overview with well-signaled one-level-deep references.

DimensionReasoningScore

Conciseness

The body is lean and operational throughout — no explanations of what dead code is or how import-graph analysis works — but the "When to use" section restates the frontmatter triggers, "Per the [Knip docs]" is repeated three times, and plugin names are listed inline and again in References, so minor trims remain (anchor 4, not 5).

4 / 5

Actionability

Every step ships copy-paste-ready material: `npm init @knip/config`, `npm install -D knip typescript @types/node`, a complete `knip.json`, `npx knip --max-show-issues 5`, `npx knip --no-exit-code > knip-baseline.txt`, CI YAML, and a triage table with per-issue actions (`npm uninstall`, `tags: ["public"]`) — clearly the fully-executable anchor.

5 / 5

Workflow Clarity

Steps 1–7 are clearly sequenced and validation is present (exit-code semantics in Step 3, baseline-before-CI in Step 6, triage table marking which findings need review before deletion), but there is no explicit re-run-to-confirm-clean loop after cleanup — a minor checkpoint gap that fits anchor 4 rather than 5.

4 / 5

Progressive Disclosure

A single ~160-line file with clear step headers, tables, and a References section linking the Knip docs and plugins page; structure and navigation are good, but nothing is split out (e.g., the per-framework plugin configs in Step 4) and the skill exceeds the under-50-lines case that would let well-organized sections alone score 5.

4 / 5

Total

17

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete third-person action list, explicit dual trigger scenarios, and a clearly bounded niche. Its only weakness is missing the natural "dead code" keyword despite the skill being named for it.

DimensionReasoningScore

Specificity

"Run Knip against a JS/TS project to detect unused files, unused dependencies, unused exports, and unused class/enum members" lists four concrete detection actions plus scoping detail (production code, plugin-aware tests), matching the comprehensive-coverage anchor; not anchor 4 since the detection categories cover Knip's full reporting set.

5 / 5

Completeness

The "what" is explicit and concrete (four detection targets, scoped to production code) and the "when" is explicit with two trigger scenarios: "Use after a feature or route is deleted and the project still compiles, or when `package.json` has accumulated dependencies nobody can account for" — squarely the both-answered anchor.

5 / 5

Trigger Term Quality

Natural phrases users would say are present ("unused dependencies", "unused exports", "package.json", "feature or route is deleted"), but the most natural synonym "dead code" is missing from the description, so coverage stops just short of the comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

Naming Knip, JS/TS projects, and specific unused-code categories carves out a clear niche with distinct triggers; it would not fire for unrelated skills, matching the minimal-conflict anchor.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents