{"_id":"@carlosfevernova/skill-kit","name":"@carlosfevernova/skill-kit","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@carlosfevernova/skill-kit","version":"0.1.0","description":"The Vite for Claude Skills. Scaffold, validate, lint, and package Claude skills with progressive-disclosure auditing and SKILL.md schema checks.","keywords":["claude","claude-skills","anthropic","cli","skill","scaffold","validator","progressive-disclosure"],"author":{"name":"Carlos F. Vernova"},"license":"MIT","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"skill":"dist/cli.cjs","skill-kit":"dist/cli.cjs"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"engines":{"node":">=20"},"scripts":{"build":"tsup","test":"vitest run","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"dependencies":{"commander":"^12.1.0","kleur":"^4.1.5"},"devDependencies":{"@types/node":"20.14.0","tsup":"8.3.5","typescript":"5.6.3","vitest":"2.1.5"},"repository":{"type":"git","url":"git+https://github.com/carlosfevernova/skill-kit.git"},"bugs":{"url":"https://github.com/carlosfevernova/skill-kit/issues"},"homepage":"https://github.com/carlosfevernova/skill-kit","allowScripts":{"esbuild@0.24.2":true,"esbuild@0.21.5":true},"gitHead":"e8d7a6095793648a82cb211cbd0760b275110219","_id":"@carlosfevernova/skill-kit@0.1.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-W1MZlrkw6VxhpG38LiOkmwNpG1s7Wc6EpDYrb2mCuM/5tCuIADODuZEXCGmLexp+6Qwfpgh1BoJ/rta7g6G1VA==","shasum":"fa551a122237ce47c3c94ae47f3050797d6b5214","tarball":"https://registry.npmjs.org/@carlosfevernova/skill-kit/-/skill-kit-0.1.0.tgz","fileCount":16,"unpackedSize":132780,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC1uWcUsLNe3lWbtJURBHdH+1xyxHmPF53CWIaY/veHRAiEA7v/o7ZVpithjOOB1kNqAe7xN37Bu1iLP88zNiQxXaD0="}]},"_npmUser":{"name":"carlosfevernova","email":"carlosfevernova@hotmail.com"},"directories":{},"maintainers":[{"name":"carlosfevernova","email":"carlosfevernova@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skill-kit_0.1.0_1787841385799_0.17193523741127037"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T14:36:25.342Z","0.1.0":"2026-08-27T14:36:25.965Z","modified":"2026-08-27T14:36:26.233Z"},"maintainers":[{"name":"carlosfevernova","email":"carlosfevernova@hotmail.com"}],"description":"The Vite for Claude Skills. Scaffold, validate, lint, and package Claude skills with progressive-disclosure auditing and SKILL.md schema checks.","homepage":"https://github.com/carlosfevernova/skill-kit","keywords":["claude","claude-skills","anthropic","cli","skill","scaffold","validator","progressive-disclosure"],"repository":{"type":"git","url":"git+https://github.com/carlosfevernova/skill-kit.git"},"author":{"name":"Carlos F. Vernova"},"bugs":{"url":"https://github.com/carlosfevernova/skill-kit/issues"},"license":"MIT","readme":"# skill-kit\n\n**The Vite for Claude Skills.** Scaffold, validate, and package Claude skills with progressive-disclosure auditing and SKILL.md schema checks.\n\n```bash\nnpm i -g skill-kit\nskill init my-skill\nskill validate my-skill\n```\n\n## Why this exists\n\nAnthropic's [Claude Skills marketplace](https://console.anthropic.com/skills) launched in mid-2026, and the ecosystem exploded — [Superpowers](https://github.com/anthropics/superpowers) hit 94K stars, Karpathy's `CLAUDE.md` post is at [109K stars](https://miraflow.ai/blog/karpathy-claude-md-100k-github-stars-ai-coding-2026), and there are now 4,000+ skills in the wild. But the tooling around building them is anemic:\n\n- `claude-skills-cli` exists but only does one thing (list installed skills).\n- There's no linter for the `SKILL.md` frontmatter schema.\n- There's no scaffold that gets you to a passing template on the first try.\n- Nobody checks progressive-disclosure hygiene (long skills with no headings, no cross-links, no examples).\n\n`skill-kit` is that missing tool. It's what you'd want if you thought about skills the way you think about npm packages.\n\n## Commands\n\n### `skill init <name>`\n\nScaffold a new skill at `./<name>/SKILL.md`.\n\n```\nskill init token-optimizer\n✔ Created /path/to/token-optimizer/SKILL.md\n  Next: edit that file, then run 'skill validate token-optimizer'\n```\n\nOptions:\n- `-d, --description <text>` — the frontmatter description\n- `-t, --type <type>` — one of `reference | feedback | project | user` (default `reference`)\n- `-f, --force` — overwrite an existing file\n\n### `skill validate [target]`\n\nLint a single `SKILL.md`, a skill directory, or (with `-r`) a tree of them.\n\n```\nskill validate .\n✔ /path/to/token-optimizer/SKILL.md  (147 words)\n    info    no-cross-links           Big skill with no [[wiki-style]] cross-links\n\n1 skill(s) · 0 error(s) · 1 warning(s)\n```\n\n**Rules enforced (v0.1):**\n\n| Severity | Rule | What it checks |\n|---|---|---|\n| error | `name-required` | Frontmatter has non-empty `name` |\n| error | `name-kebab` | `name` is lowercase kebab-case |\n| error | `description-required` | Frontmatter has a `description` |\n| warning | `description-too-short` | `description` is < 40 chars |\n| warning | `description-too-long` | `description` is > 500 chars |\n| warning | `metadata-missing` | Frontmatter has a `metadata.type` |\n| error | `body-too-thin` | Body has < 30 words |\n| warning | `body-too-heavy` | Body has > 4000 words — split into sub-files |\n| warning | `no-headings` | Long body without any `#` headings |\n| info | `no-code-blocks` | Long body without any code examples |\n| info | `no-cross-links` | Long body without any `[[wiki-style]]` links |\n\nRules are opinionated and pragmatic. If you disagree with any, file an issue — the roadmap includes an `.skillrc.json` for per-project rule overrides.\n\n### `skill publish [target]`\n\nRuns `validate`, and if it passes, prints the Anthropic marketplace URL where you'd upload the skill. **Actual API publishing lands in v0.2** once the Anthropic marketplace API stabilizes.\n\n```\nskill publish token-optimizer\n✔ /path/to/token-optimizer/SKILL.md  (312 words)\n\n✔ Skill is ready to publish\n\n  Publish here: https://console.anthropic.com/skills/new?name=token-optimizer\n```\n\n## Programmatic API\n\nEverything the CLI does is also available as a plain module:\n\n```ts\nimport { runInit, runValidate, lintSkill, renderSkillTemplate } from \"skill-kit\";\n\nconst source = renderSkillTemplate({ name: \"hello\", description: \"...\" });\nconst result = lintSkill(source);\nconsole.log(result.ok, result.issues);\n```\n\nUseful when you want to embed skill validation in your own CI, a website, or a VS Code extension.\n\n## Related\n\n- [`vercel-armor`](https://www.npmjs.com/package/vercel-armor) — resilience toolkit for Vercel APIs\n- [`mcp-armor`](https://www.npmjs.com/package/mcp-armor) — MCP proxy with token compression + security scan\n\nSame author, same DNA — different corner of the Claude ecosystem.\n\n## Roadmap\n\n- **v0.2** — real publish to Anthropic marketplace API; `--json` output for CI; VS Code extension\n- **v0.3** — `.skillrc.json` for custom rule sets; `skill lint --fix` autofixer; workspace mode\n\n## License\n\nMIT — Carlos F. Vernova\n","readmeFilename":"README.md","_rev":"1-e10cbc52defa29a840f7d0ee78b2023a"}