bundles/workspace/skills/linter-formatter-init/SKILL.md
Set up Biome (default) or ESLint + Prettier, Vitest testing, and pre-commit hooks for any JavaScript/TypeScript project. Uses Bun as the package manager. Use this skill when initializing code quality tooling for a new project or adding linting to an existing one.
npx skillsauth add shipshitdev/library linter-formatter-initInstall 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.
Set up linting, formatting, and testing for JavaScript/TypeScript projects using Biome 2.3+ (default), Vitest, and Bun.
IMPORTANT: Always uses Biome 2.3+ (latest) - never older versions.
This skill automates the setup of:
--vitest flag)--eslint flag)# Default setup (Biome) - RECOMMENDED
python3 scripts/setup.py --root /path/to/project
# Add Vitest testing with 80% coverage threshold
python3 scripts/setup.py --root /path/to/project --vitest --coverage 80
# Use ESLint + Prettier instead (legacy)
python3 scripts/setup.py --root /path/to/project --eslint --typescript
See references/full-guide.md (§ Quick Start — Full Command Variants) for --no-hooks, --monorepo, and every flag combination.
Biome 2.3+ (default): @biomejs/biome@latest (always latest, minimum 2.3+)
Vitest (with --vitest): vitest, @vitest/coverage-v8
ESLint + Prettier (legacy, with --eslint): eslint, prettier, eslint-config-prettier, eslint-plugin-prettier, plus @typescript-eslint/parser and @typescript-eslint/eslint-plugin if --typescript
Pre-commit hooks: husky, lint-staged
project/
├── biome.json # Biome config (lint + format)
├── .vscode/settings.json # Auto-format on save
├── .husky/pre-commit # Pre-commit hook
└── package.json # Updated with scripts + lint-staged
ESLint + Prettier (legacy) produces the equivalent .eslintrc.json / .prettierrc layout — see references/full-guide.md (§ Configuration Files (ESLint + Prettier - Legacy)).
Biome adds lint, lint:fix, format, format:check, check, check:fix. Vitest adds test, test:watch, test:coverage, test:ui. ESLint + Prettier (legacy) adds lint, lint:fix, format, format:check. See references/full-guide.md (§ Bun Scripts Added) for the exact script commands.
Biome is a fast, all-in-one linter and formatter. The default config enables recommended lint rules, 2-space/100-char formatting, single quotes, and organizeImports. See references/full-guide.md (§ Biome Configuration (Default)) for the full biome.json.
After setup, customize biome.json to adjust linting rules, formatting preferences, and file ignore patterns.
The --vitest flag creates vitest.config.ts (node/jsdom environment, v8 coverage, 80% default thresholds) and src/test/setup.ts for global test setup. See references/full-guide.md (§ Vitest Configuration (with --vitest)) for both files in full.
Customize the coverage threshold with --coverage 90.
When enabled (default), lint-staged runs on every commit:
Biome: *.{js,jsx,ts,tsx,json,css} → bunx biome check --write
ESLint + Prettier (legacy): *.{js,jsx,ts,tsx} → eslint --fix, prettier --write; *.{json,md,yml,yaml} → prettier --write
This ensures all committed code passes linting, is formatted, and no broken code enters the repo.
The skill creates .vscode/settings.json enabling format-on-save with Biome (default) or Prettier/ESLint (legacy) as the default formatter. See references/full-guide.md (§ VS Code / Cursor Settings) for both full configs.
Run python3 scripts/setup.py --root /path/to/monorepo --monorepo from the root. This adds root-level config that applies to all packages.
bunx husky
chmod +x .husky/pre-commit
When using --eslint, the skill detects common frameworks and adjusts config:
next/core-web-vitals to ESLinteslint-plugin-react and eslint-plugin-react-hooksIf preferring manual setup over the script:
# Biome
bun add -D @biomejs/biome husky lint-staged
bunx biome init && bunx husky
See references/full-guide.md (§ Manual Setup (Alternative to the setup script)) for the ESLint + Prettier manual sequence, then copy configs from assets/configs/.
development
TypeScript refactoring and modernization guidelines from a principal specialist perspective. This skill should be used when refactoring, reviewing, or modernizing TypeScript code to ensure type safety, compiler performance, and idiomatic patterns. Triggers on tasks involving TypeScript type architecture, narrowing, generics, error handling, or migration to modern TypeScript features.
tools
Resolves TypeScript and JavaScript problems across type-level programming, performance, monorepo management, migration, and modern tooling. Invoke when diagnosing "type instantiation excessively deep" errors, migrating JS to TS, configuring strict tsconfig, debugging module resolution, or choosing between Biome/ESLint/Turborepo/Nx.
tools
Turborepo monorepo build system guidance. Triggers on: `turbo.json`, task pipelines, `dependsOn`, caching, remote cache, the `turbo` CLI, `--filter`, `--affected`, CI optimization, environment variables, internal packages, monorepo structure, and package boundaries. Use when the user configures tasks or workflows, creates packages, sets up a monorepo, shares code between apps, runs changed packages, debugs cache behavior, or works in an `apps/` plus `packages/` workspace.
tools
Provides Tailwind CSS v4 performance optimization and best practices guidelines. Triggers when writing, reviewing, or refactoring Tailwind CSS v4 code; when working with Tailwind configuration, @theme directive, utility classes, responsive design, dark mode, container queries, or CSS generation optimization.