infra-tooling-setup-tooling
Build & Tooling
Quick Guide: ESLint 9 flat config with
defineConfig()andglobalIgnores(). typescript-eslint v8 withprojectService. Prettier shared config. Shared TypeScript configs. Bun package manager. Vite build configuration. Husky + lint-staged for git hooks.WARNING: ESLint 10 (January 2026) completely removes .eslintrc support. Migrate to flat config now.
<critical_requirements>
CRITICAL: Before Using This Skill
All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering,
import type, named constants)
(You MUST use ESLint 9 flat config with defineConfig() from eslint/config - NOT legacy .eslintrc)
(You MUST use globalIgnores() for explicit global ignore patterns - NOT bare ignores property)
(You MUST use typescript-eslint v8+ with projectService: true for typed linting)