--- name: cui-javascript description: Core JavaScript development standards covering ES modules, modern patterns, code quality, async programming, and tooling user-invocable: false allowed-tools: Read, Grep, Glob --- # JavaScript Development Standards **REFERENCE MODE**: This skill provides reference material. Load specific standards on-demand based on current task. ## Overview This skill provides comprehensive JavaScript development standards for CUI projects, covering modern JavaScript features (ES2022+), code quality practices, async programming patterns, and tooling configuration. ## Prerequisites To effectively use this skill, you should have: - Modern JavaScript knowledge (ES2015+, ES modules, async/await) - Understanding of JavaScript runtime environments (browser, Node.js) - Experience with npm and JavaScript build tools ## Standards Documents This skill includes the following standards documents: - **javascript-fundamentals.md** - ES modules, variables, functions, vanilla JavaScript preference, core patterns - **code-quality.md** - Complexity limits, refactoring strategies, code organization, maintainability - **modern-patterns.md** - Destructuring, template literals, spread/rest operators, object/array methods - **async-programming.md** - Promises, async/await, error handling, concurrent operations - **tooling-guide.md** - ESLint, Prettier, npm scripts, IDE integration, quality checks ## What This Skill Provides ### JavaScript Fundamentals - **ES Modules**: Import/export syntax, module organization, circular dependency avoidance - **Variables**: const/let best practices, no var usage, scope management - **Functions**: Arrow functions vs regular functions, pure functions, higher-order functions - **Vanilla JavaScript**: Preference for native APIs (fetch, DOM, etc.) over libraries ### Code Quality - **Complexity Limits**: Cyclomatic complexity (max 15), statement count (max 20) - **Refactoring Strategies**: Extract methods, guard clauses, early returns - **Code Organization**: Single Responsibility Principle, function size limits - **Maintainability**: Clear naming, documentation, avoiding magic numbers ### Modern Patterns - **Destructuring**: Object and array destructuring patterns - **Template Literals**: String interpolation, multi-line strings - **Spread/Rest**: Object/array spreading, rest parameters - **Object/Array Methods**: map, filter, reduce, find, destructive vs non-destructive ### Async Programming - **Promises**: Creation, chaining, error handling - **Async/Await**: Modern async patterns, try/catch best practices - **Error Handling**: Proper error propagation, custom errors - **Concurrent Operations**: Promise.all, Promise.race, parallel execution ### Tooling Guide - **ESLint**: Configuration, rules, plugins - **Prettier**: Code formatting, IDE integration - **npm Scripts**: Development workflow, quality checks - **Build Pipeline**: Development and production builds ## When to Activate This skill should be activated when: 1. **JavaScript Development Tasks**: Writing or modifying JavaScript code for CUI projects 2. **Code Review**: Reviewing JavaScript code for standards compliance 3. **Refactoring**: Improving code quality, reducing complexity 4. **Modern Migration**: Updating legacy JavaScript to modern patterns 5. **Tooling Setup**: Configuring ESLint, Prettier, or build tools 6. **Async Operations**: Implementing Promise-based or async/await code 7. **Performance Optimization**: Optimizing JavaScript execution ## Workflow When this skill is activated: ### 1. Understand Context - Identify the specific JavaScript task or requirement - Determine which standards documents are most relevant - Check project-specific JavaScript configuration ### 2. Apply Standards - Reference appropriate standards documents for guidance - Follow ES module patterns for imports/exports - Use const/let appropriately, avoid var - Prefer vanilla JavaScript APIs over library dependencies - Ensure functions meet complexity limits - Apply modern patterns (destructuring, template literals, etc.) ### 3. Quality Assurance - Run ESLint to check for rule violations - Run Prettier to ensure consistent formatting - Verify code meets complexity thresholds - Test async operations for proper error handling - Check for common anti-patterns ### 4. Documentation - Document complex logic with clear comments - Explain non-obvious patterns or workarounds - Note any browser-specific considerations - Update relevant documentation if adding new patterns ## Tool Access This skill provides access to JavaScript development 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: - CSS standards (cui-css skill) - Testing standards (to be provided in separate skill) - Web components standards (to be provided in separate skill) ### Build Integration JavaScript standards integrate with: - npm for package management and scripts - ESLint for linting and code quality - Prettier for consistent formatting - Maven frontend-maven-plugin for build automation ### Quality Tools JavaScript quality is enforced through: - ESLint for linting and best practices - Prettier for consistent formatting - Jest or similar for unit testing - Browser DevTools for debugging ## Best Practices When working with JavaScript in CUI projects: 1. **Always use ES modules** for imports/exports 2. **Prefer const over let**, never use var 3. **Use vanilla JavaScript** where possible (fetch, DOM methods, etc.) 4. **Keep functions simple** - max 15 cyclomatic complexity, max 20 statements 5. **Use modern patterns** - destructuring, template literals, spread/rest 6. **Handle async properly** - async/await with try/catch, Promise error handling 7. **Document complex logic** with clear comments 8. **Run quality tools** before committing (ESLint, Prettier)