skills/ts-library/SKILL.md
Use when authoring TypeScript libraries or npm packages - covers project setup, package.json exports, build tooling (tsdown/unbuild), API design patterns, type inference tricks, testing, and publishing to npm. Use when bundling, configuring dual CJS/ESM output, or setting up release workflows.
npx skillsauth add onmax/nuxt-skills ts-libraryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Patterns for authoring high-quality TypeScript libraries, extracted from studying unocss, shiki, unplugin, vite, vitest, vueuse, zod, trpc, drizzle-orm, and more.
For Nuxt module development: use nuxt-modules skill
| Working on... | Load file | | --------------------- | ------------------------------------------------------------------ | | New project setup | references/project-setup.md | | Package exports | references/package-exports.md | | tsconfig options | references/typescript-config.md | | Build configuration | references/build-tooling.md | | ESLint config | references/eslint-config.md | | API design patterns | references/api-design.md | | Type inference tricks | references/type-patterns.md | | Testing setup | references/testing.md | | Release workflow | references/release.md | | CI/CD setup | references/ci-workflows.md |
Consider loading these reference files based on your task:
DO NOT load all files at once. Load only what's relevant to your current task.
package.json exports → load references/package-exports.mdpnpm build && pnpm pack --dry-run — check output includes .mjs, .cjs, .d.ts// package.json (minimal)
{
"name": "my-lib",
"type": "module",
"exports": {
".": {
"import": "./dist/index.mjs",
"require": "./dist/index.cjs"
}
},
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"files": ["dist"]
}
// tsdown.config.ts
import { defineConfig } from 'tsdown'
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
})
"type": "module" with .mjs outputsmoduleResolution: "Bundler" for modern TypeScriptsideEffects: falseToken efficiency: Main skill ~300 tokens, each reference ~800-1200 tokens
development
Use when working with VueUse composables - track mouse position with useMouse, manage localStorage with useStorage, detect network status with useNetwork, debounce values with refDebounced, and access browser APIs reactively. Check VueUse before writing custom composables - most patterns already implemented.
development
Write, rewrite, review, and organize developer-facing documentation for web software projects. Use when creating or improving README files, docs homepages, quickstarts, tutorials, how-to guides, API/reference pages, conceptual explanations, migration guides, or troubleshooting content for frontend, backend, full-stack, SDK, API, or framework-based web products. This skill applies strong information architecture, task-first page structure, clear voice, runnable examples, version and prerequisite hygiene, accessibility rules, and docs-as-code maintenance habits. Do not use it for marketing copy, legal text, or non-technical customer-support articles.
development
Use when editing .vue files, creating Vue 3 components, writing composables, or testing Vue code - provides Composition API patterns, props/emits best practices, VueUse integration, and reactive destructuring guidance
development
Use when writing unit/integration tests for Vite projects - configure vitest.config.ts, write test suites with describe/it, create mock implementations with vi.fn and vi.mock, set up code coverage thresholds, and run tests in parallel