asir

SKILL.md

Asir's Preferences

Category Preference
Package Manager pnpm
Language TypeScript (strict mode, ESM only)
Linting & Formatting @antfu/eslint-config (no Prettier)
Testing Vitest
Git Hooks simple-git-hooks + lint-staged
Bundler (Libraries) tsdown
Documentation VitePress

Core Conventions

TypeScript Config

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true
  }
}

ESLint Setup

// eslint.config.mjs
import antfu from '@antfu/eslint-config'

export default antfu()

Fix linting errors with pnpm -r lint --fix. Do NOT add a separate lint:fix script.

For detailed configuration options: antfu-eslint-config

Git Hooks

{
  "simple-git-hooks": {
    "pre-commit": "pnpm i --frozen-lockfile --ignore-scripts --offline && npx lint-staged"
  },
  "lint-staged": { "*": "eslint --fix" },
  "scripts": { "prepare": "npx simple-git-hooks" }
}

Vitest Conventions

  • Test files: foo.tsfoo.test.ts (same directory)
  • Use describe/it API (not test)
  • Use toMatchSnapshot for complex outputs
  • Use toMatchFileSnapshot with explicit path for language-specific snapshots

pnpm Catalogs

Use named catalogs in pnpm-workspace.yaml for version management:

Catalog Purpose
prod Production dependencies
inlined Bundler-inlined dependencies
dev Dev tools (linter, bundler, testing)
frontend Frontend libraries

Avoid the default catalog. Catalog names can be adjusted per project needs.


References

Topic Description Reference
ESLint Config Framework support, formatters, rule overrides, VS Code settings antfu-eslint-config
Project Setup .gitignore, GitHub Actions, VS Code extensions setting-up
Library Development tsdown bundling, pure ESM publishing library-development
Monorepo pnpm workspaces, centralized alias, Turborepo monorepo
Library Coding Patterns library-coding-patients
Weekly Installs
5
Repository
xuasir/skills
First Seen
Feb 3, 2026
Installed on
trae5
codex5
gemini-cli4
github-copilot4
kimi-cli4
cursor4