CtrlK
BlogDocsLog inGet started
Tessl Logo

npm

Npm integration. Manage data, records, and automate workflows. Use when the user wants to interact with Npm data.

57

Quality

66%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./skills/npm/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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.

The body is highly actionable with copy-paste CLI commands, explicit connection-state checkpoints, and a feedback loop for readiness polling, but it carries some definitional/conversational padding and has inconsistent step numbering plus an empty overview stub.

Suggestions

Remove the "Npm is a package manager for Javascript..." intro and the "auth plumbing"/"fastest way" commentary; Claude already knows what npm is.

Fix the step numbering: add a labeled "Step 1"/"Step 2" (or rename) so the "skip to Step 2" reference resolves, and add the missing "1a" alongside "1b".

Either fill in the "Npm Overview" bullets (Package/Version/User/Organization) with real content or delete the empty stub.

DimensionReasoningScore

Conciseness

The body is mostly efficient CLI commands, but it opens with a definition Claude already knows ("Npm is a package manager for Javascript...") and includes padded commentary like "so you can focus on the integration logic rather than auth plumbing" and "This is the fastest way to get a connection"; fits "mostly efficient but includes some unnecessary explanation" rather than a 4 which would require only minor trimming.

3 / 5

Actionability

It provides copy-paste-ready commands for every common case — install, login (including headless completion), connection ensure, polling get --wait, action list/run with --input JSON, and a full proxy-request flag table — covering the common cases fully.

5 / 5

Workflow Clarity

The connect-then-poll flow has explicit state checkpoints (READY/BUILDING/CLIENT_ACTION_REQUIRED/CONFIGURATION_ERROR) with a feedback loop (poll again after user action), but step labels are inconsistent — "skip to Step 2" with no matching Step 2 header and a "1b" with no "1a" — so it stops short of the fully checklisted level 5.

4 / 5

Progressive Disclosure

No bundle files exist, so the single SKILL.md is scored on its own sectioning; it is organized into logical sections (Install, Auth, Connecting, Searching, Running, Proxy, Best practices), but the empty "Npm Overview" stub (Package/Version/User/Organization with no content) is a minor organization gap that keeps it below a 5.

4 / 5

Total

16

/

20

Passed

Description

57%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.

The description correctly pairs a what-statement with an explicit Use-when trigger and names a distinct domain, but its action verbs are generic rather than Npm-specific and it lacks natural synonyms like packages, registry, or publish.

Suggestions

Replace the generic "Manage data, records, and automate workflows" with Npm-specific actions such as "search packages, inspect versions, and publish to the npm registry."

Expand the trigger to include natural phrasings users actually say, e.g. "Use when the user wants to search npm packages, check package versions, or interact with the npm registry."

Drop the awkward "Npm data" phrasing in favor of concrete nouns (packages, versions, registry).

DimensionReasoningScore

Specificity

It names the domain ("Npm integration") but the actions "Manage data, records, and automate workflows" are generic and not Npm-specific (no mention of packages, publishing, registry, installs), matching the "names domain but actions are minimal or generic" anchor; not a 3 because no concrete Npm action is enumerated.

2 / 5

Completeness

Both halves are present — a "what" ("Manage data, records, and automate workflows") and an explicit "when" ("Use when the user wants to interact with Npm data"); the "when" is explicit so it is not capped at 3, but the "what" is vague so it does not reach the concrete-trigger-phrase level of a 5.

4 / 5

Trigger Term Quality

The natural keyword "Npm" appears in "Use when the user wants to interact with Npm data," but common variations users actually say (packages, registry, publish, install) are missing, fitting "some relevant keywords but missing common variations or synonyms"; not a 4 due to thin synonym coverage and the odd "Npm data" phrasing.

3 / 5

Distinctiveness Conflict Risk

"Npm integration" plus the Npm-specific trigger make it mostly distinct with only minor overlap risk against other Membrane integration skills; not a 5 because the generic "manage data, records, automate workflows" phrasing could broadly overlap with sibling integration skills.

4 / 5

Total

13

/

20

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
membranedev/application-skills
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.