{"id":26395,"library":"skill-tools","title":"skill-tools","description":"Validate, lint, and score Agent Skills (SKILL.md) files with 20 spec checks, 10 lint rules, and a 0-100 quality score across 5 dimensions. Current stable version is 0.4.1, released as minor/patch updates with active development. Differentiators include BM25 routing, watch mode, SARIF support, and audit contracts (BAP, DBAR, UseID). Ships TypeScript types, requires Node >=18, and is ESM-only (no CJS support).","status":"active","version":"0.4.1","language":"javascript","source_language":"en","source_url":"https://github.com/skill-tools/skill-tools","tags":["javascript","agent-skills","skill-md","validator","linter","quality","ai-agent","cli","typescript"],"install":[{"cmd":"npm install skill-tools","lang":"bash","label":"npm"},{"cmd":"yarn add skill-tools","lang":"bash","label":"yarn"},{"cmd":"pnpm add skill-tools","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"skill-tools is primarily a CLI tool; direct programmatic API is not publicly documented yet.","wrong":"","symbol":"skill-tools (CLI)","correct":"npx skill-tools check ./my-skill/"},{"note":"ESM-only; CJS require() will fail. Available since 0.1.1.","wrong":"const { validate } = require('@skill-tools/contracts')","symbol":"@skill-tools/contracts","correct":"import { validate } from '@skill-tools/contracts'"},{"note":"Gen package for generating SKILL.md from MCP servers. ESM-only.","wrong":"","symbol":"@skill-tools/gen","correct":"import { generate } from '@skill-tools/gen'"}],"quickstart":{"code":"// Validate and score a skill using the CLI\nconst { execSync } = require('child_process');\nconst result = execSync('npx skill-tools@0.4.1 check ./path/to/skill/', { encoding: 'utf-8' });\nconsole.log(result);\n\n// For programmatic use with contracts package:\nconst { validate } = await import('@skill-tools/contracts');\nconst skill = { name: 'test', description: 'Does something', body: '## Usage\\n' };\nconst report = validate(skill);\nconsole.log(report);\n","lang":"javascript","description":"Demonstrates CLI usage via npx and programmatic API using the contracts package."},"warnings":[{"fix":"Upgrade Node.js to version 18 or higher.","message":"Node.js <18 is not supported. The package relies on modern JavaScript features.","severity":"breaking","affected_versions":">=0.0.0"},{"fix":"Replace 'skill-tools validate; skill-tools lint; skill-tools score' with 'skill-tools check'.","message":"Pre-0.4.0 'validate', 'lint', 'score' commands are deprecated. Use 'check' which combines all three.","severity":"deprecated","affected_versions":">=0.4.0"},{"fix":"Use import statements or dynamic import(). For CDD, set type: 'module' in package.json.","message":"The package is ESM-only. Attempting to require() the contracts or gen subpackages will fail.","severity":"gotcha","affected_versions":">=0.4.0"},{"fix":"Use '--fail-on error' (default) for strict CI, or omit the flag.","message":"When using --fail-on warning, exit code 1 is returned if any warning occurs. This may break CI pipelines that expect exit code 0.","severity":"gotcha","affected_versions":">=0.3.0"},{"fix":"Pin exact version in package.json, e.g., '@skill-tools/contracts': '0.1.1'.","message":"The contracts package @skill-tools/contracts was added in v0.4.0 and is still 0.x, so API may change without major semver bump.","severity":"gotcha","affected_versions":">=0.4.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Change require() to import(), or set type: 'module' in package.json.","cause":"Trying to require() an ESM-only package.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/@skill-tools/contracts/index.js not supported."},{"fix":"Use 'skill-tools check <path>' instead of 'skill-tools validate <path>'.","cause":"The 'validate' command was removed or renamed in v0.4.0.","error":"error: unknown command 'validate'. Did you mean 'check'?"},{"fix":"Run 'npm install @skill-tools/contracts' (available since v0.1.1).","cause":"The package is not installed. It is a separate package from 'skill-tools'.","error":"Error: Cannot find module '@skill-tools/contracts'"},{"fix":"Upgrade Node.js to at least version 18.","cause":"Package requires Node.js version 18 or higher.","error":"Error: You are running Node.js <18. Please upgrade to Node.js >=18."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}