UNPKG

agentsqripts

Version:

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

58 lines (47 loc) 2.03 kB
/** * @file Static bug recommendation generator * @description Generates bug fix recommendations based on analysis results */ /** * Generates bug fix recommendations * @param {Array} issues - Array of detected issues * @param {number} totalEffort - Total effort required for fixes * @param {number} fileCount - Number of files analyzed * @returns {Array<string>} Array of recommendations */ function generateBugRecommendations(issues, totalEffort, fileCount) { const recommendations = []; if (issues.length === 0) { recommendations.push('No static bugs detected - code quality looks good'); return recommendations; } const highIssues = issues.filter(i => i.severity === 'HIGH'); const typeCoercionIssues = issues.filter(i => i.type === 'type_coercion'); const errorHandlingIssues = issues.filter(i => i.category === 'Error Handling'); const securityIssues = issues.filter(i => i.category === 'Security'); if (highIssues.length > 0) { recommendations.push(`CRITICAL: Fix ${highIssues.length} high-severity bugs immediately`); } if (securityIssues.length > 0) { recommendations.push(`SECURITY: Address ${securityIssues.length} security-related issues`); } if (typeCoercionIssues.length > 0) { recommendations.push(`Type Safety: Replace ${typeCoercionIssues.length} == operators with === for strict equality`); } if (errorHandlingIssues.length > 0) { recommendations.push(`Error Handling: Improve ${errorHandlingIssues.length} error handling patterns`); } // Bug density metrics if (fileCount && fileCount > 0) { const bugDensity = (issues.length / fileCount).toFixed(2); recommendations.push(`Bug Density: ${bugDensity} issues per file`); } if (totalEffort > 0) { const priority = totalEffort > 30 ? 'high' : totalEffort > 15 ? 'medium' : 'low'; recommendations.push(`Bug fix effort: ${totalEffort} points (${priority} priority)`); } return recommendations; } module.exports = { generateBugRecommendations };