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
JavaScript
/**
* @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
};