UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

121 lines (118 loc) 4.21 kB
/** * @file Static bug pattern definitions for comprehensive error detection * @description Single responsibility: Define bug patterns with effort estimation and impact assessment * * This configuration module defines comprehensive bug patterns used by the static bug * analyzer to identify real logic errors, security vulnerabilities, and common programming * mistakes. Each pattern includes effort estimation, impact description, and severity * classification to enable prioritized bug fixing and technical debt management. * * Design rationale: * - Pattern-based detection enables automated bug identification without complex analysis * - Effort estimation helps development teams prioritize bug fixes effectively * - Impact descriptions provide clear business justification for fixes * - Severity classification enables automated prioritization and alert systems * - Category grouping helps identify systemic code quality issues across projects */ // Bug Pattern Constants /** * Comprehensive bug pattern definitions with metadata for prioritization * * Pattern structure rationale: * - effort: Estimated hours to fix (1=trivial, 2=easy, 3=moderate, 4+=complex) * - impact: Business/technical justification for fixing the issue * - severity: Risk level (HIGH=critical bugs, MEDIUM=quality issues, LOW=cleanup) * - category: Grouping for systematic analysis and team specialization * * Pattern categories: * - Type Safety: Type coercion and comparison issues * - Logic Error: Algorithmic and control flow problems * - Security: Vulnerabilities and unsafe practices * - API Usage: Incorrect framework/library usage * - Async/Await: Promise and asynchronous programming issues * - Error Handling: Missing or inadequate error management * - Code Quality: Maintainability and clarity issues * * Effort estimation methodology: * - Based on typical developer time including testing and code review * - Considers complexity of fix and potential side effects * - Accounts for need to understand surrounding code context * - Includes time for writing tests and updating documentation */ const BUG_PATTERNS = { [`type_coercion`]: { effort: 1, impact: `Prevents unexpected type coercion bugs and improves code reliability`, severity: `HIGH`, category: `Type Safety` }, [`nan_comparison`]: { effort: 1, impact: `Fixes always-false NaN comparisons that never work as expected`, severity: `HIGH`, category: `Logic Error` }, [`dangerous_eval`]: { effort: 3, impact: `Eliminates code injection vulnerabilities and improves security`, severity: `HIGH`, category: `Security` }, [`missing_radix`]: { effort: 1, impact: `Prevents parseInt base confusion and ensures consistent parsing`, severity: `MEDIUM`, category: `API Usage` }, [`missing_await`]: { effort: 2, impact: `Fixes async/await usage and prevents promise handling issues`, severity: `HIGH`, category: `Async/Await` }, [`fs_error_handling`]: { effort: 2, impact: `Adds proper error handling for file system operations`, severity: `HIGH`, category: `Error Handling` }, [`unsafe_json_parse`]: { effort: 2, impact: `Prevents JSON parsing crashes and improves error handling`, severity: `HIGH`, category: `Error Handling` }, [`async_event_listener`]: { effort: 2, impact: `Adds error handling for async event listeners`, severity: `MEDIUM`, category: `Error Handling` }, [`promise_constructor`]: { effort: 3, impact: `Encourages proper promise usage patterns and error handling`, severity: `MEDIUM`, category: `Promise Usage` }, 'empty_catch': { effort: 1, impact: 'Prevents silent failure and improves error handling', severity: 'MEDIUM', category: 'Error Handling' }, 'unused_variable': { effort: 1, impact: 'Removes dead code and improves maintainability', severity: 'LOW', category: 'Code Quality' }, 'unreachable_code': { effort: 1, impact: 'Removes dead code paths and improves maintainability', severity: 'MEDIUM', category: 'Code Quality' } }; module.exports = { BUG_PATTERNS };