agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
82 lines (73 loc) • 2.33 kB
JavaScript
/**
* @file Cleanup recommendation generation
* @description Generates actionable cleanup recommendations
*/
/**
* Generate cleanup recommendations based on analysis results
* @param {Array} results - File analysis results
* @param {number} averageScore - Average cleanup score
* @param {number} highPriorityFiles - Number of high priority files
* @returns {Array} Array of recommendations
*/
function generateRecommendations(results, averageScore, highPriorityFiles) {
const recommendations = [];
// Analyze patterns across all files
let totalBarrelFiles = 0;
let totalDeadCode = 0;
let totalOrphanedComments = 0;
// Process results efficiently using index-based iteration
for (let i = 0; i < results.length; i++) {
const result = results[i];
if (result.opportunities) {
const opportunities = result.opportunities;
for (let j = 0; j < opportunities.length; j++) {
const opp = opportunities[j];
if (opp.type === 'barrel_file') totalBarrelFiles++;
if (opp.type === 'dead_code') totalDeadCode++;
if (opp.type === 'orphaned_comment') totalOrphanedComments++;
}
}
}
// Generate recommendations based on patterns
if (totalBarrelFiles > 0) {
recommendations.push({
type: 'barrel_files',
priority: 'MEDIUM',
description: `Consider refactoring ${totalBarrelFiles} barrel files to improve modularity`,
impact: 'Medium',
effort: 'Low'
});
}
if (totalDeadCode > 3) {
recommendations.push({
type: 'dead_code',
priority: 'HIGH',
description: `Remove ${totalDeadCode} instances of dead code to reduce complexity`,
impact: 'High',
effort: 'Low'
});
}
if (totalOrphanedComments > 5) {
recommendations.push({
type: 'orphaned_comments',
priority: 'LOW',
description: `Clean up ${totalOrphanedComments} orphaned comments`,
impact: 'Low',
effort: 'Low'
});
}
// Overall project recommendations
if (averageScore < 60) {
recommendations.push({
type: 'overall_cleanup',
priority: 'HIGH',
description: 'Project needs comprehensive cleanup - average score is low',
impact: 'High',
effort: 'High'
});
}
return recommendations;
}
module.exports = {
generateRecommendations
};