JavaScript and TypeScript Best Practices
Comprehensive coding standards for JavaScript and TypeScript applications, designed for AI agents and LLMs working with modern JavaScript/TypeScript codebases.
Note: This skill focuses on general best practices, TypeScript patterns, and safety. For performance optimization, use the accelint-ts-performance skill instead.
When to Use This Skill
This skill provides expert-level patterns for JavaScript and TypeScript code. Load AGENTS.md to scan rule summaries and identify relevant optimizations for your task.
How to Use
This skill uses a progressive disclosure structure to minimize context usage:
1. Start with the Overview (AGENTS.md)
Read AGENTS.md for a concise overview of all rules with one-line summaries organized by category.
2. Load Specific Rules as Needed
When you identify a relevant pattern or issue, load the corresponding reference file for detailed implementation guidance:
Quick Start:
- quick-start.md - Complete workflow examples with before/after code
General Best Practices:
- naming-conventions.md - Descriptive names, qualifier ordering, boolean prefixes
- functions.md - Function size, parameters, explicit values
- control-flow.md - Early returns, flat structure, block style
- state-management.md - const vs let, immutability, pure functions
- return-values.md - Return zero values instead of null/undefined
- misc.md - Line endings, defensive programming, technical debt
- code-duplication.md - Extract common patterns, DRY principle, when to consolidate
TypeScript:
- any.md - Avoid any, use unknown or generics
- enums.md - Use as const objects instead of enum
- type-vs-interface.md - Prefer type over interface
- bundler-paths.md - Use statically analyzable import and file-system paths for optimal bundling
Safety:
- input-validation.md - Validate external data with schemas
- assertions.md - Split assertions, include values
- error-handling.md - Handle all errors explicitly
- error-messages.md - User-friendly vs developer-specific messages
Performance:
- For performance optimization tasks, use the
accelint-ts-performance skill for comprehensive profiling workflows and optimization patterns
Documentation:
- For documentation tasks, use the
accelint-ts-documentation skill for comprehensive JSDoc and comment guidance
3. Apply the Pattern
Each reference file contains:
- ❌ Incorrect examples showing the anti-pattern
- ✅ Correct examples showing the optimal implementation
- Explanations of why the pattern matters
4. Use the Report Template
When this skill is invoked, use the standardized report format:
Template: assets/output-report-template.md
The report format provides:
- Executive Summary with impact assessment
- Severity levels (Critical, High, Medium, Low) for prioritization
- Impact analysis (potential bugs, type safety, maintainability, runtime failures)
- Categorization (Type Safety, Safety, State Management, Return Values, Code Quality)
- Pattern references linking to detailed guidance in references/
- Phase 2 summary table for tracking all issues
When to use the audit template:
- Skill invoked directly via
/accelint-ts-best-practices <path>
- User asks to "review code quality" or "audit code" across file(s), invoking skill implicitly
When NOT to use the report template:
- User asks to "fix this type error" (direct implementation)
- User asks "what's wrong with this code?" (answer the question)
- User requests specific fixes (apply fixes directly without formal report)
1---2name: accelint-ts-best-practices3description: Comprehensive TypeScript/JavaScript coding standards focusing on type safety, defensive programming, and code correctness. Use when (1) Writing or reviewing TS/JS code, (2) Fixing type errors or avoiding any/enum/null, (3) Implementing control flow, state management, or error handling, (4) Applying zero-value pattern or immutability, (5) Code review for TypeScript anti-patterns. Covers naming conventions, function design, return values, bounded iteration, input validation. For performance optimization, use accelint-ts-performance skill. For documentation, use accelint-ts-documentation skill.4license: Apache-2.05---67# JavaScript and TypeScript Best Practices89Comprehensive coding standards for JavaScript and TypeScript applications, designed for AI agents and LLMs working with modern JavaScript/TypeScript codebases.1011**Note:** This skill focuses on general best practices, TypeScript patterns, and safety. For performance optimization, use the `accelint-ts-performance` skill instead.1213## When to Use This Skill1415This skill provides expert-level patterns for JavaScript and TypeScript code. Load [AGENTS.md](AGENTS.md) to scan rule summaries and identify relevant optimizations for your task.1617## How to Use1819This skill uses a **progressive disclosure** structure to minimize context usage:2021### 1. Start with the Overview (AGENTS.md)22Read [AGENTS.md](AGENTS.md) for a concise overview of all rules with one-line summaries organized by category.2324### 2. Load Specific Rules as Needed25When you identify a relevant pattern or issue, load the corresponding reference file for detailed implementation guidance:2627**Quick Start:**28- [quick-start.md](references/quick-start.md) - Complete workflow examples with before/after code2930**General Best Practices:**31- [naming-conventions.md](references/naming-conventions.md) - Descriptive names, qualifier ordering, boolean prefixes32- [functions.md](references/functions.md) - Function size, parameters, explicit values33- [control-flow.md](references/control-flow.md) - Early returns, flat structure, block style34- [state-management.md](references/state-management.md) - const vs let, immutability, pure functions35- [return-values.md](references/return-values.md) - Return zero values instead of null/undefined36- [misc.md](references/misc.md) - Line endings, defensive programming, technical debt37- [code-duplication.md](references/code-duplication.md) - Extract common patterns, DRY principle, when to consolidate3839**TypeScript:**40- [any.md](references/any.md) - Avoid any, use unknown or generics41- [enums.md](references/enums.md) - Use as const objects instead of enum42- [type-vs-interface.md](references/type-vs-interface.md) - Prefer type over interface43- [bundler-paths.md](references/bundler-paths.md) - Use statically analyzable import and file-system paths for optimal bundling4445**Safety:**46- [input-validation.md](references/input-validation.md) - Validate external data with schemas47- [assertions.md](references/assertions.md) - Split assertions, include values48- [error-handling.md](references/error-handling.md) - Handle all errors explicitly49- [error-messages.md](references/error-messages.md) - User-friendly vs developer-specific messages5051**Performance:**52- **For performance optimization tasks**, use the `accelint-ts-performance` skill for comprehensive profiling workflows and optimization patterns5354**Documentation:**55- **For documentation tasks**, use the `accelint-ts-documentation` skill for comprehensive JSDoc and comment guidance5657### 3. Apply the Pattern58Each reference file contains:59- ❌ Incorrect examples showing the anti-pattern60- ✅ Correct examples showing the optimal implementation61- Explanations of why the pattern matters6263### 4. Use the Report Template64When this skill is invoked, use the standardized report format:6566**Template:** [`assets/output-report-template.md`](assets/output-report-template.md)6768The report format provides:69- Executive Summary with impact assessment70- Severity levels (Critical, High, Medium, Low) for prioritization71- Impact analysis (potential bugs, type safety, maintainability, runtime failures)72- Categorization (Type Safety, Safety, State Management, Return Values, Code Quality)73- Pattern references linking to detailed guidance in references/74- Phase 2 summary table for tracking all issues7576**When to use the audit template:**77- Skill invoked directly via `/accelint-ts-best-practices <path>`78- User asks to "review code quality" or "audit code" across file(s), invoking skill implicitly7980**When NOT to use the report template:**81- User asks to "fix this type error" (direct implementation)82- User asks "what's wrong with this code?" (answer the question)83- User requests specific fixes (apply fixes directly without formal report)84