UNPKG

agentsqripts

Version:

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

62 lines (53 loc) 2.2 kB
/** * @file UI file recommendation generator * @description Generates UI/UX improvement recommendations for single file analysis */ /** * Generates UI recommendations based on detected issues * @param {Array} issues - Array of detected UI issues * @param {number} totalEffort - Total effort required for fixes * @returns {Array<string>} Array of recommendations */ function generateUIRecommendations(issues, totalEffort) { const recommendations = []; if (issues.length === 0) { recommendations.push('Excellent UI/UX - no significant issues detected'); return recommendations; } const highSeverityIssues = issues.filter(issue => issue.severity === 'HIGH'); const categoryBreakdown = {}; issues.forEach(issue => { categoryBreakdown[issue.category] = (categoryBreakdown[issue.category] || []); categoryBreakdown[issue.category].push(issue); }); if (highSeverityIssues.length > 0) { recommendations.push(`PRIORITY: ${highSeverityIssues.length} high-impact UI/UX issues need immediate attention`); } // Category-specific recommendations Object.entries(categoryBreakdown).forEach(([category, categoryIssues]) => { switch (category) { case 'Content': recommendations.push(`Content: Clarify ${categoryIssues.length} text and labeling issues for better user understanding`); break; case 'Visual Design': recommendations.push(`Design: Standardize ${categoryIssues.length} visual elements for consistency and professionalism`); break; case 'Feedback': recommendations.push(`Feedback: Add ${categoryIssues.length} missing user interaction states and loading indicators`); break; case 'Layout': recommendations.push(`Layout: Optimize ${categoryIssues.length} structural and spacing issues`); break; case 'Forms': recommendations.push(`Forms: Enhance ${categoryIssues.length} form usability patterns`); break; } }); if (totalEffort > 0) { recommendations.push(`Estimated total effort: ${totalEffort} points (1=easy, 3=complex)`); } return recommendations; } module.exports = { generateUIRecommendations };