CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

knip-dead-code

Use after a feature or route is deleted and the project still compiles, or when package.json has dependencies nobody can explain. Runs Knip on a JS/TS project to find unused files, dependencies, exports and class or enum members, aware of test entry points through its framework plugins.

Quality

91%

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

The canonical home for this skill is testland/knip-dead-code

SKILL.md
Quality
Evals
Security

Quality

Content

86%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 lean, highly actionable skill that teaches Knip-specific configuration without padding, with a clear seven-step sequence and appropriate external references. Its two weaknesses are minor: a small amount of citation/description redundancy, and the absence of an explicit verify-after-cleanup feedback loop.

Suggestions

Consolidate the three "Per the [Knip docs]." citations (after Step 1, Step 5, and in References) into a single mention in the References section, and drop or trim the "When to use" bullets that restate the frontmatter description.

Close the feedback loop after cleanup: add a final step to re-run `npx knip` and expect exit code 0 to confirm all flagged files, dependencies, and exports were actually removed (especially after `npm uninstall`).

In Step 7, show the exact `tags: ["public"]` knip.json snippet alongside the JSDoc `@public` mention so the public-API escape hatch is copy-paste ready instead of implied.

DimensionReasoningScore

Conciseness

The body is efficient and tool-specific — config JSON, commands, and tables with no explanations of concepts Claude already knows (the "Entry vs project" note is genuinely non-obvious Knip semantics). Minor trimmable redundancy keeps it below a 5: "Per the [Knip docs]." appears after Step 1, Step 5, and again in References, and the "When to use" section largely restates the frontmatter description.

4 / 5

Actionability

Fully executable, copy-paste-ready guidance covering the common cases: "npm init @knip/config", "npm install -D knip typescript @types/node", a complete knip.json, "npx knip --max-show-issues 5", the baseline command "npx knip --no-exit-code > knip-baseline.txt", GitHub Actions YAML, and a per-issue triage table with concrete actions. The only terse spot ("tags: [\"public\"]" config) is a minor edge-case detail, not a common-case gap.

5 / 5

Workflow Clarity

Seven clearly sequenced steps (install → configure entry → first run → plugins → limit output → CI gate → triage) with checkpoints present in the form of the Step 7 triage table ("Sometimes (public API)") and the anti-pattern guidance "Manual review first; --fix after baseline clean", so the destructive/batch cap at 3 does not bind. It falls short of a 5 because there is no explicit post-cleanup verification step (e.g., re-run knip to confirm a clean exit after deletions or npm uninstall).

4 / 5

Progressive Disclosure

No bundle files exist and none are needed: the skill is well-organized into short numbered sections and tables, and both references ([Knip docs], [Knip plugins page]) are external URLs that are one level deep and clearly signaled both inline and in a dedicated References section. Nothing inlined here belongs in a separate file, and the plugin list is correctly delegated to the external plugins page rather than duplicated.

5 / 5

Total

18

/

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 that explicitly pairs a concrete, comprehensive statement of what the skill does with natural, specific trigger scenarios. The only gap is missing common synonyms such as "dead code" or "orphaned files" that users would naturally say.

DimensionReasoningScore

Specificity

The description enumerates Knip's complete reporting scope — "to find unused files, dependencies, exports and class or enum members, aware of test entry points through its framework plugins" — plus the concrete action "Runs Knip on a JS/TS project". This is comprehensive coverage of concrete actions with no gaps, matching the top anchor rather than the "minor gaps in coverage" of a 4.

5 / 5

Completeness

Both questions are answered explicitly: "what" via "Runs Knip on a JS/TS project to find unused files, dependencies, exports and class or enum members", and "when" via the concrete trigger clause "Use after a feature or route is deleted and the project still compiles, or when package.json has dependencies nobody can explain". The explicit trigger guidance means the completeness cap of 3 does not apply.

5 / 5

Trigger Term Quality

Natural user phrasings are present — "after a feature or route is deleted", "the project still compiles", "package.json has dependencies nobody can explain", "unused exports" — giving good keyword coverage. However the headline terms "dead code" and "orphaned" never appear in the description itself (dead-code only surfaces in metadata keywords), so it falls short of the synonym-level coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

It names the specific tool (Knip), the ecosystem (JS/TS), and distinct post-deletion/unexplained-dependency scenarios, creating a clear niche with minimal overlap risk. It is written in third person ("Runs Knip"), so no voice penalty applies to specificity.

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.

Repository

testland/qa

Path

plugins/qa-code-quality/skills/knip-dead-code/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.