JavaScript Linting and Formatting Standards
Overview
This skill provides comprehensive ESLint, Prettier, and StyleLint configuration standards for CUI JavaScript projects, covering modern ESLint v9 flat configuration, Prettier formatting automation, comprehensive rule management, build integration, and CSS-in-JS linting for web components.
Prerequisites
To effectively use this skill, you should have:
- Understanding of ESLint and code quality tools
- Knowledge of JavaScript ES2022+ features
- Familiarity with npm package management
- Experience with build pipelines (Maven, npm scripts)
Standards Documents
This skill includes the following standards documents:
- eslint-configuration.md - ESLint v9 flat config structure, required dependencies, environment configuration, plugin setup
- eslint-rules.md - Comprehensive rule definitions including documentation, security, code quality, and environment-specific overrides
- eslint-integration.md - Build pipeline integration, Maven configuration, npm scripts, CI/CD requirements
- prettier-configuration.md - Prettier setup, formatting rules, editor integration, pre-commit hooks, Maven integration
- stylelint-setup.md - StyleLint configuration for CSS-in-JS patterns in web components
What This Skill Provides
ESLint Configuration
- Flat Configuration: ESLint v9+ flat config structure with ES modules
- Required Dependencies: Core ESLint packages and essential plugins
- Plugin Management: JSDoc, Jest, SonarJS, Security, Unicorn, Promise, Prettier plugins
- Environment Setup: Browser, Node.js, Jest environment configuration
- Framework Extensions: Lit and Web Components specific configurations
ESLint Rules
- Documentation Rules: JSDoc validation and documentation quality standards
- Security Rules: Vulnerability detection and security best practices
- Code Quality Rules: SonarJS complexity analysis and maintainability checks
- Modern JavaScript Rules: ES6+ patterns, async/await, Promise handling
- Framework-Specific Rules: Lit components and Web Components validation
- Environment Overrides: Test files, production components, mock files
Build Integration
- npm Scripts: Required lint and lint:fix commands
- Maven Integration: Build phase configuration and execution
- CI/CD Pipeline: Quality gate integration and automation
- Error Handling: Severity levels and common fix strategies
- Performance: Caching and rule selection optimization
Prettier Configuration
- Code Formatting: Prettier configuration for consistent code style
- Formatting Rules: Line length, quotes, semicolons, trailing commas, spacing
- File-Specific Overrides: Different settings for production vs test files
- Format Scripts: format, format:check, quality, quality:fix npm scripts
- Editor Integration: VS Code, IntelliJ setup with format-on-save
- Pre-commit Hooks: Husky and lint-staged configuration
- ESLint Integration: Prettier as ESLint plugin for unified workflow
StyleLint Configuration
- CSS-in-JS Linting: StyleLint for CSS within JavaScript/Lit components
- Plugin Setup: postcss-lit, stylelint-order, declaration-strict-value
- Rule Configuration: Property ordering, custom properties, web component selectors
- Environment Overrides: Production vs test file configurations
- Build Integration: npm scripts and Maven execution
When to Activate
This skill should be activated when:
- Setting Up ESLint: Configuring ESLint for new or existing JavaScript projects
- Upgrading ESLint: Migrating from legacy ESLint configuration to v9 flat config
- Configuring Linting Rules: Adding, modifying, or understanding ESLint rules
- Setting Up Prettier: Configuring code formatting automation and editor integration
- Build Integration: Integrating linting and formatting into Maven builds or CI/CD pipelines
- CSS-in-JS Linting: Setting up StyleLint for Lit components or CSS-in-JS patterns
- Code Quality Issues: Resolving linting errors or configuring rule severity
- Format-on-Save: Configuring editors for automatic formatting
- Framework-Specific Linting: Adding Lit or Web Components specific rules
- Troubleshooting: Debugging ESLint, Prettier, or StyleLint configuration issues
Workflow
When this skill is activated:
1. Identify Linting Requirement
- Determine if setting up new configuration or modifying existing
- Identify specific linting concern (configuration, rules, integration, CSS-in-JS)
- Check current ESLint/StyleLint version and configuration format
2. Apply Configuration Standards
- Use eslint-configuration.md for flat config structure and dependencies
- Configure plugins (JSDoc, Jest, SonarJS, Security, Unicorn, Promise, Prettier)
- Set up environment configuration (browser, Node.js, Jest)
- Add framework-specific plugins if using Lit or Web Components
3. Configure Rules
- Reference eslint-rules.md for comprehensive rule definitions
- Enable documentation rules for JSDoc validation
- Configure security rules for vulnerability detection
- Set up SonarJS for complexity and quality analysis
- Add framework-specific rules for Lit/Web Components if needed
- Configure environment overrides for test files, mocks, production code
4. Configure Prettier Formatting
- Use prettier-configuration.md for Prettier setup
- Create
.prettierrc.js with formatting rules
- Configure file-specific overrides (production vs test)
- Add format scripts (format, format:check, quality, quality:fix)
- Set up editor integration (VS Code, IntelliJ) for format-on-save
- Configure pre-commit hooks with Husky and lint-staged
- Integrate Prettier as ESLint plugin
5. Integrate with Build Pipeline
- Use eslint-integration.md for build integration
- Add npm scripts (lint:js, lint:js:fix, format, format:check, quality, quality:fix)
- Configure Maven execution: format:check in compile, quality:fix in verify
- Set up CI/CD quality gates
- Enable caching for performance
6. Configure CSS-in-JS Linting (Optional)
- Use stylelint-setup.md if using CSS-in-JS or Lit components
- Install StyleLint dependencies (stylelint, stylelint-config-standard, postcss-lit)
- Configure StyleLint with ES module syntax
- Add CSS property ordering and custom property validation
- Integrate StyleLint into build pipeline
7. Validate Configuration
- Run lint and format commands to verify configuration works
- Check for rule conflicts or duplicate definitions
- Test environment-specific overrides
- Verify build integration executes correctly
- Test format-on-save in editors
Tool Access
This skill provides access to linting standards through:
- Read tool for accessing standards documents
- Standards documents use Markdown format for compatibility
- All standards are self-contained within this skill
- Cross-references between standards use relative paths
Integration Notes
Related Skills
For comprehensive frontend development, this skill works with:
- cui-javascript skill - Core JavaScript development standards
- cui-jsdoc skill - JSDoc documentation standards
- cui-javascript-unit-testing skill - Testing standards
- cui-css skill - CSS development standards
Build Integration
Linting standards integrate with:
- npm for package management and script execution
- ESLint for JavaScript linting and code quality
- StyleLint for CSS-in-JS linting
- Prettier for code formatting
- Maven frontend-maven-plugin for build automation
- SonarQube for quality analysis
Quality Tools
Code quality is enforced through:
- ESLint with multiple quality plugins (SonarJS, Security, Unicorn)
- StyleLint for CSS validation
- Prettier for consistent formatting
- Maven build pipeline integration
- CI/CD quality gates
Best Practices
When configuring linting and formatting for CUI projects:
- Use ESLint v9 flat configuration - Modern configuration format with ES modules
- Include all required plugins - JSDoc, Jest, SonarJS, Security, Unicorn, Promise, Prettier
- Configure Prettier integration - Prettier as ESLint plugin for unified workflow
- Enable format-on-save - Automatic formatting in editors (VS Code, IntelliJ)
- Configure environment-specific overrides - Relaxed rules for tests, strict for production
- Enable SonarJS recommended defaults - Comprehensive quality and complexity analysis
- Integrate with build pipeline - format:check in compile, quality:fix in verify
- Use StyleLint for CSS-in-JS - When using Lit components or CSS-in-JS patterns
- Set up pre-commit hooks - Husky and lint-staged for automatic fixing before commit
- Enable caching - For faster subsequent lint runs
- Run quality:fix before commits - Automatic fixing of linting and formatting issues
- Configure proper severity levels - Error for breaking issues, warn for improvements
- Document exceptions - Use comments to explain any rule or format overrides
Common Issues and Solutions
ESLint Configuration Issues
- Duplicate rule definitions: Remove duplicates, keep one instance per rule
- Plugin import errors: Ensure all plugins are installed as devDependencies
- ES module errors: Set
"type": "module" in package.json for flat config
- Environment conflicts: Use environment-specific overrides in configuration
Prettier Configuration Issues
- Format not applying: Verify .prettierrc.js exists and editor extension installed
- Conflicts with ESLint: Disable conflicting ESLint style rules (quotes, semi, indent, etc.)
- Format-on-save not working: Check editor settings and Prettier extension configuration
- ES module errors: Set
"type": "module" in package.json
StyleLint Configuration Issues
- Duplicate rule names: Check for duplicate property-* rules in configuration
- Framework-specific patterns: Use generic patterns unless specific integration required
- ES module import errors: Use
export default syntax with "type": "module"
- CSS-in-JS syntax errors: Ensure postcss-lit is configured as customSyntax
Build Integration Issues
- Maven execution fails: Verify npm scripts exist and dependencies are installed
- Lint errors block build: Adjust severity levels or fix violations
- Performance issues: Enable caching, reduce file scope, parallelize execution
- CI/CD failures: Ensure lint:fix runs in verify phase, not validate phase
Quick Reference
ESLint Flat Config Structure
import js from '@eslint/js';
import jsdoc from 'eslint-plugin-jsdoc';
export default [
js.configs.recommended,
{
plugins: { jsdoc },
rules: { /* rule configuration */ }
}
];
Required npm Scripts
{
"scripts": {
"lint:js": "eslint src/**/*.js",
"lint:js:fix": "eslint --fix src/**/*.js",
"format": "prettier --write \"src/**/*.js\"",
"format:check": "prettier --check \"src/**/*.js\"",
"lint:style": "stylelint src/**/*.js",
"lint:style:fix": "stylelint --fix src/**/*.js",
"quality": "npm run lint && npm run format:check",
"quality:fix": "npm run lint:fix && npm run format"
}
}
Maven Integration
<execution>
<id>npm-lint-fix</id>
<goals><goal>npm</goal></goals>
<phase>verify</phase>
<configuration>
<arguments>run lint:fix</arguments>
</configuration>
</execution>
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: cui-javascript-linting3description: ESLint, Prettier, and StyleLint configuration standards for JavaScript code quality and formatting, including flat config setup, rule management, and build integration Use when this capability is needed.4---56# JavaScript Linting and Formatting Standards78## Overview910This skill provides comprehensive ESLint, Prettier, and StyleLint configuration standards for CUI JavaScript projects, covering modern ESLint v9 flat configuration, Prettier formatting automation, comprehensive rule management, build integration, and CSS-in-JS linting for web components.1112## Prerequisites1314To effectively use this skill, you should have:1516- Understanding of ESLint and code quality tools17- Knowledge of JavaScript ES2022+ features18- Familiarity with npm package management19- Experience with build pipelines (Maven, npm scripts)2021## Standards Documents2223This skill includes the following standards documents:2425- **eslint-configuration.md** - ESLint v9 flat config structure, required dependencies, environment configuration, plugin setup26- **eslint-rules.md** - Comprehensive rule definitions including documentation, security, code quality, and environment-specific overrides27- **eslint-integration.md** - Build pipeline integration, Maven configuration, npm scripts, CI/CD requirements28- **prettier-configuration.md** - Prettier setup, formatting rules, editor integration, pre-commit hooks, Maven integration29- **stylelint-setup.md** - StyleLint configuration for CSS-in-JS patterns in web components3031## What This Skill Provides3233### ESLint Configuration34- **Flat Configuration**: ESLint v9+ flat config structure with ES modules35- **Required Dependencies**: Core ESLint packages and essential plugins36- **Plugin Management**: JSDoc, Jest, SonarJS, Security, Unicorn, Promise, Prettier plugins37- **Environment Setup**: Browser, Node.js, Jest environment configuration38- **Framework Extensions**: Lit and Web Components specific configurations3940### ESLint Rules41- **Documentation Rules**: JSDoc validation and documentation quality standards42- **Security Rules**: Vulnerability detection and security best practices43- **Code Quality Rules**: SonarJS complexity analysis and maintainability checks44- **Modern JavaScript Rules**: ES6+ patterns, async/await, Promise handling45- **Framework-Specific Rules**: Lit components and Web Components validation46- **Environment Overrides**: Test files, production components, mock files4748### Build Integration49- **npm Scripts**: Required lint and lint:fix commands50- **Maven Integration**: Build phase configuration and execution51- **CI/CD Pipeline**: Quality gate integration and automation52- **Error Handling**: Severity levels and common fix strategies53- **Performance**: Caching and rule selection optimization5455### Prettier Configuration56- **Code Formatting**: Prettier configuration for consistent code style57- **Formatting Rules**: Line length, quotes, semicolons, trailing commas, spacing58- **File-Specific Overrides**: Different settings for production vs test files59- **Format Scripts**: format, format:check, quality, quality:fix npm scripts60- **Editor Integration**: VS Code, IntelliJ setup with format-on-save61- **Pre-commit Hooks**: Husky and lint-staged configuration62- **ESLint Integration**: Prettier as ESLint plugin for unified workflow6364### StyleLint Configuration65- **CSS-in-JS Linting**: StyleLint for CSS within JavaScript/Lit components66- **Plugin Setup**: postcss-lit, stylelint-order, declaration-strict-value67- **Rule Configuration**: Property ordering, custom properties, web component selectors68- **Environment Overrides**: Production vs test file configurations69- **Build Integration**: npm scripts and Maven execution7071## When to Activate7273This skill should be activated when:74751. **Setting Up ESLint**: Configuring ESLint for new or existing JavaScript projects762. **Upgrading ESLint**: Migrating from legacy ESLint configuration to v9 flat config773. **Configuring Linting Rules**: Adding, modifying, or understanding ESLint rules784. **Setting Up Prettier**: Configuring code formatting automation and editor integration795. **Build Integration**: Integrating linting and formatting into Maven builds or CI/CD pipelines806. **CSS-in-JS Linting**: Setting up StyleLint for Lit components or CSS-in-JS patterns817. **Code Quality Issues**: Resolving linting errors or configuring rule severity828. **Format-on-Save**: Configuring editors for automatic formatting839. **Framework-Specific Linting**: Adding Lit or Web Components specific rules8410. **Troubleshooting**: Debugging ESLint, Prettier, or StyleLint configuration issues8586## Workflow8788When this skill is activated:8990### 1. Identify Linting Requirement91- Determine if setting up new configuration or modifying existing92- Identify specific linting concern (configuration, rules, integration, CSS-in-JS)93- Check current ESLint/StyleLint version and configuration format9495### 2. Apply Configuration Standards96- Use **eslint-configuration.md** for flat config structure and dependencies97- Configure plugins (JSDoc, Jest, SonarJS, Security, Unicorn, Promise, Prettier)98- Set up environment configuration (browser, Node.js, Jest)99- Add framework-specific plugins if using Lit or Web Components100101### 3. Configure Rules102- Reference **eslint-rules.md** for comprehensive rule definitions103- Enable documentation rules for JSDoc validation104- Configure security rules for vulnerability detection105- Set up SonarJS for complexity and quality analysis106- Add framework-specific rules for Lit/Web Components if needed107- Configure environment overrides for test files, mocks, production code108109### 4. Configure Prettier Formatting110- Use **prettier-configuration.md** for Prettier setup111- Create `.prettierrc.js` with formatting rules112- Configure file-specific overrides (production vs test)113- Add format scripts (format, format:check, quality, quality:fix)114- Set up editor integration (VS Code, IntelliJ) for format-on-save115- Configure pre-commit hooks with Husky and lint-staged116- Integrate Prettier as ESLint plugin117118### 5. Integrate with Build Pipeline119- Use **eslint-integration.md** for build integration120- Add npm scripts (lint:js, lint:js:fix, format, format:check, quality, quality:fix)121- Configure Maven execution: format:check in compile, quality:fix in verify122- Set up CI/CD quality gates123- Enable caching for performance124125### 6. Configure CSS-in-JS Linting (Optional)126- Use **stylelint-setup.md** if using CSS-in-JS or Lit components127- Install StyleLint dependencies (stylelint, stylelint-config-standard, postcss-lit)128- Configure StyleLint with ES module syntax129- Add CSS property ordering and custom property validation130- Integrate StyleLint into build pipeline131132### 7. Validate Configuration133- Run lint and format commands to verify configuration works134- Check for rule conflicts or duplicate definitions135- Test environment-specific overrides136- Verify build integration executes correctly137- Test format-on-save in editors138139## Tool Access140141This skill provides access to linting standards through:142- Read tool for accessing standards documents143- Standards documents use Markdown format for compatibility144- All standards are self-contained within this skill145- Cross-references between standards use relative paths146147## Integration Notes148149### Related Skills150For comprehensive frontend development, this skill works with:151- **cui-javascript** skill - Core JavaScript development standards152- **cui-jsdoc** skill - JSDoc documentation standards153- **cui-javascript-unit-testing** skill - Testing standards154- **cui-css** skill - CSS development standards155156### Build Integration157Linting standards integrate with:158- npm for package management and script execution159- ESLint for JavaScript linting and code quality160- StyleLint for CSS-in-JS linting161- Prettier for code formatting162- Maven frontend-maven-plugin for build automation163- SonarQube for quality analysis164165### Quality Tools166Code quality is enforced through:167- ESLint with multiple quality plugins (SonarJS, Security, Unicorn)168- StyleLint for CSS validation169- Prettier for consistent formatting170- Maven build pipeline integration171- CI/CD quality gates172173## Best Practices174175When configuring linting and formatting for CUI projects:1761771. **Use ESLint v9 flat configuration** - Modern configuration format with ES modules1782. **Include all required plugins** - JSDoc, Jest, SonarJS, Security, Unicorn, Promise, Prettier1793. **Configure Prettier integration** - Prettier as ESLint plugin for unified workflow1804. **Enable format-on-save** - Automatic formatting in editors (VS Code, IntelliJ)1815. **Configure environment-specific overrides** - Relaxed rules for tests, strict for production1826. **Enable SonarJS recommended defaults** - Comprehensive quality and complexity analysis1837. **Integrate with build pipeline** - format:check in compile, quality:fix in verify1848. **Use StyleLint for CSS-in-JS** - When using Lit components or CSS-in-JS patterns1859. **Set up pre-commit hooks** - Husky and lint-staged for automatic fixing before commit18610. **Enable caching** - For faster subsequent lint runs18711. **Run quality:fix before commits** - Automatic fixing of linting and formatting issues18812. **Configure proper severity levels** - Error for breaking issues, warn for improvements18913. **Document exceptions** - Use comments to explain any rule or format overrides190191## Common Issues and Solutions192193### ESLint Configuration Issues194- **Duplicate rule definitions**: Remove duplicates, keep one instance per rule195- **Plugin import errors**: Ensure all plugins are installed as devDependencies196- **ES module errors**: Set `"type": "module"` in package.json for flat config197- **Environment conflicts**: Use environment-specific overrides in configuration198199### Prettier Configuration Issues200- **Format not applying**: Verify .prettierrc.js exists and editor extension installed201- **Conflicts with ESLint**: Disable conflicting ESLint style rules (quotes, semi, indent, etc.)202- **Format-on-save not working**: Check editor settings and Prettier extension configuration203- **ES module errors**: Set `"type": "module"` in package.json204205### StyleLint Configuration Issues206- **Duplicate rule names**: Check for duplicate property-* rules in configuration207- **Framework-specific patterns**: Use generic patterns unless specific integration required208- **ES module import errors**: Use `export default` syntax with `"type": "module"`209- **CSS-in-JS syntax errors**: Ensure postcss-lit is configured as customSyntax210211### Build Integration Issues212- **Maven execution fails**: Verify npm scripts exist and dependencies are installed213- **Lint errors block build**: Adjust severity levels or fix violations214- **Performance issues**: Enable caching, reduce file scope, parallelize execution215- **CI/CD failures**: Ensure lint:fix runs in verify phase, not validate phase216217## Quick Reference218219### ESLint Flat Config Structure220```javascript221import js from '@eslint/js';222import jsdoc from 'eslint-plugin-jsdoc';223224export default [225 js.configs.recommended,226 {227 plugins: { jsdoc },228 rules: { /* rule configuration */ }229 }230];231```232233### Required npm Scripts234```json235{236 "scripts": {237 "lint:js": "eslint src/**/*.js",238 "lint:js:fix": "eslint --fix src/**/*.js",239 "format": "prettier --write \"src/**/*.js\"",240 "format:check": "prettier --check \"src/**/*.js\"",241 "lint:style": "stylelint src/**/*.js",242 "lint:style:fix": "stylelint --fix src/**/*.js",243 "quality": "npm run lint && npm run format:check",244 "quality:fix": "npm run lint:fix && npm run format"245 }246}247```248249### Maven Integration250```xml251<execution>252 <id>npm-lint-fix</id>253 <goals><goal>npm</goal></goals>254 <phase>verify</phase>255 <configuration>256 <arguments>run lint:fix</arguments>257 </configuration>258</execution>259```260261---262> Converted and distributed by [TomeVault](https://tomevault.io/claim/cuioss) — claim your Tome and manage your conversions.263<!-- tomevault:4.0:skill_md:2026-04-14 -->