Skip to content
eslint-config logo

ESLint Config Skill

eslint-config

Generates ESLint 9+ configuration using flat config format. Creates eslint.config.cjs with Vue and TypeScript linting rules for code quality enforcement.

SKILL.md

Full skill instructions

ESLint Config Skill

Purpose

Generate ESLint configuration file for code linting with Vue and TypeScript support using ESLint 9+ flat config format.

🚨 MANDATORY FILE COUNT

This skill MUST create exactly 1 file:

  • eslint.config.cjs (preferred format)

🔍 BEFORE GENERATING - CRITICAL RESEARCH REQUIRED

⚠️ HIGH PRIORITY: Verify current ESLint standards to prevent outdated code generation

Required Research Steps:

  1. ESLint Version: Verify current ESLint version supports flat config (9.0+)
  2. Plugin Compatibility: Check all plugins are compatible with current ESLint version:
    • eslint-plugin-vue - Verify latest version and Vue 3 support
    • @typescript-eslint/​eslint-plugin - Verify compatibility with TypeScript version
    • eslint-plugin-prettier - Check if still recommended or if Prettier should run separately
  3. Flat Config Format: Verify flat config is still the recommended format (not legacy .eslintrc.*)
  4. Parser Configuration: Verify vue-eslint-parser and @typescript-eslint/​parser configuration syntax
  5. Test Framework Detection:
    • Check package.json for test framework dependencies
    • If vitest found: Use globals.vitest or globals.node
    • If jest found: Use globals.jest
    • If both or neither: Prompt user which test framework to use
  6. Deprecated Rules: Check if any rules have been deprecated or renamed
  7. Module Format: Verify project's module system from package.json "type" field for file format selection

Output

Create the file: eslint.config.cjs

Supported Formats (in order of preference):

  1. eslint.config.cjs (preferred - CommonJS format, works with any package.json type)
  2. eslint.config.mjs (ES Module format, explicit ESM)
  3. eslint.config.js (follows package.json "type" field)

Format Selection Logic:

  • Default: Use eslint.config.cjs (most compatible)
  • If package.json has "type": "module" and user prefers ESM: Consider .mjs
  • .js format requires package.json type to match module system

Example File

See: examples.md in this directory for complete examples and detailed explanations.

⚠️ IMPORTANT: The examples.md file contains December 2025 configurations. Always verify current standards before using.

Execution Checklist

  • Research current ESLint version and flat config status (ESLint 9+)
  • Verify all plugin versions and compatibility
  • Check for deprecated rules or configuration options
  • Detect test framework from package.json dependencies
  • If test framework unclear, prompt user
  • Verify parser configuration syntax for Vue and TypeScript
  • Check if legacy .eslintrc.* migration notes needed
  • Create eslint.config.cjs with current standards
  • Verify file format matches project module system

🛑 BLOCKING VALIDATION CHECKPOINT

STOP! Before proceeding to the next skill, verify:

Automated Verification

Run this command to verify the file exists:

if [ -f "eslint.config.cjs" ] || [ -f "eslint.config.mjs" ] || [ -f "eslint.config.js" ]; then
  echo "✓ ESLint configuration found"
  if [ -f "eslint.config.cjs" ]; then
    echo "✓ Using eslint.config.cjs (preferred format)"
  elif [ -f "eslint.config.mjs" ]; then
    echo "⚠ Using eslint.config.mjs (ESM format)"
  else
    echo "⚠ Using eslint.config.js (verify package.json type field)"
  fi
  
  # Check for legacy format (should not exist)
  if [ -f ".eslintrc.js" ] || [ -f ".eslintrc.json" ] || [ -f ".eslintrc.yml" ]; then
    echo "✗ Legacy .eslintrc.* file found - remove and use flat config only"
    exit 1
  fi
else
  echo "✗ ESLint configuration missing"
  exit 1
fi

Manual Verification

  1. ✓ eslint.config.cjs (or .mjs/.js) exists at project root
  2. ✓ File uses ESLint 9+ flat config format (array export, not legacy object)
  3. ✓ File includes Vue, TypeScript, and Prettier plugins
  4. ✓ Test file configuration uses correct globals for detected test framework
  5. ✓ No legacy .eslintrc.* files exist in project
  6. ✓ All plugin versions are compatible with ESLint version
  7. ✓ Configuration follows current ESLint best practices

If Validation Fails

DO NOT PROCEED to the next skill. Create or fix the missing/​incorrect file immediately.

Notes

  • ESLint 9+ Flat Config: Uses modern flat config format (not legacy .eslintrc.*)
  • Migration from Legacy: If upgrading, remove .eslintrc.* files and use flat config only
  • Plugin Compatibility: Always verify plugin versions match ESLint version
  • Test Framework Globals: Auto-detected from package.json (Vitest or Jest)
  • Console/​Debugger: Allowed in development, warnings in production
  • Special Rules: Separate configurations for test files and TypeScript declaration files
  • Prettier Integration: ESLint runs Prettier as a rule (verify this is current best practice)
  • Module Format: .cjs preferred for maximum compatibility across all project types
  • Parser Chain: Vue files use vue-eslint-parser → @typescript-eslint/​parser for TypeScript
  • Always verify current standards - ESLint ecosystem evolves rapidly
  • Breaking Changes: ESLint major versions may change config format or rule behavior

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View