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/claude-config 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
Iterative writing loop. Gemini 3 Pro writes, Claude Agent SDK reviews autonomously. Use for blog posts, docs, technical content needing quality iteration.
documentation
Conversational PRD writer - interview, scope, write, then create Linear/GitHub issue. Use when planning a new feature or product requirement.
tools
Design and implement web animations that feel natural and purposeful. Use this skill proactively whenever the user asks questions about animations, motion, easing, timing, duration, springs, transitions, or animation performance. This includes questions about how to animate specific UI elements, which easing to use, animation best practices, or accessibility considerations for motion. Triggers on: easing, ease-out, ease-in, ease-in-out, cubic-bezier, bounce, spring physics, keyframes, transform, opacity, fade, slide, scale, hover effects, microinteractions, Framer Motion, React Spring, GSAP, CSS transitions, entrance/exit animations, page transitions, stagger, will-change, GPU acceleration, prefers-reduced-motion, modal/dropdown/tooltip/popover/drawer animations, gesture animations, drag interactions, button press feel, feels janky, make it smooth.
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.