Helps contributors switch from npm to pnpm in this repo, including upgrading Node.js to v24 via nvm or volta if needed.
83
78%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.agents/skills/npm-to-pnpm/SKILL.mdQuality
Discovery
72%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 identifies a clear, narrow task (npm to pnpm migration with Node.js upgrade) and uses natural trigger terms that contributors would use. However, it lacks an explicit 'Use when...' clause and could be more specific about the concrete actions performed during the migration process.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when a contributor asks about switching to pnpm, migrating from npm, or upgrading Node.js version in this repo.'
List more concrete actions such as 'updates package-lock.json to pnpm-lock.yaml, modifies scripts, configures .npmrc' to improve specificity.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (npm to pnpm migration) and some actions (upgrading Node.js to v24 via nvm or volta), but doesn't list comprehensive concrete actions like updating lockfiles, modifying package.json scripts, or updating CI configs. | 2 / 3 |
Completeness | The 'what' is reasonably clear (switch from npm to pnpm, upgrade Node.js), but there is no explicit 'Use when...' clause or equivalent trigger guidance, which caps this at 2 per the rubric guidelines. | 2 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'npm', 'pnpm', 'Node.js', 'v24', 'nvm', 'volta'. These are terms a contributor would naturally use when needing help with this migration. | 3 / 3 |
Distinctiveness Conflict Risk | Very specific niche: npm-to-pnpm migration with Node.js v24 upgrade in a particular repo. Unlikely to conflict with other skills due to the narrow, well-defined scope. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
85%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured procedural skill with clear branching logic, executable commands, and good edge case handling. Its main weakness is minor verbosity—some explanatory text could be trimmed since Claude can infer context. Overall it's a strong, actionable migration guide.
Suggestions
Trim explanatory phrases Claude already knows, such as 'Parse the major version from the output (e.g. v22.1.0 → 22)' and 'This repo uses pnpm' to improve token efficiency.
Condense Step 4 into a single line like '## Step 4: Inform the user that pnpm is active and package-lock.json has been replaced by pnpm-lock.yaml.'
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Mostly efficient but has some unnecessary explanation. Phrases like 'This repo uses pnpm' and 'Parse the major version from the output' explain things Claude already knows. Step 4 is somewhat verbose for what amounts to 'tell the user pnpm is ready.' However, the overall structure is reasonably tight. | 2 / 3 |
Actionability | Every step provides concrete, executable bash commands. The branching logic is explicit with clear conditions (major version checks, version manager availability). Commands are copy-paste ready and specific to the repo's setup (e.g., .nvmrc set to 24, frozen-lockfile flag). | 3 / 3 |
Workflow Clarity | The multi-step process is clearly sequenced with explicit branching logic, early exit conditions (Step 0), and stop points (neither version manager found). The workflow handles edge cases (pnpm already installed, old pnpm version, nvm vs volta) with clear decision trees. The destructive operation (rm -f package-lock.json) is appropriate since it's replacing one lockfile format with another in a controlled migration. | 3 / 3 |
Progressive Disclosure | For a skill of this scope (single procedural task, ~80 lines), the content is well-organized with clear section headers and internal anchor links for navigation. No bundle files are needed, and the content doesn't warrant splitting into multiple files. The structure supports easy scanning. | 3 / 3 |
Total | 11 / 12 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 — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
9a170b9
Table of Contents
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.