agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
51 lines (45 loc) • 2.35 kB
JavaScript
/**
* @file Project complexity recommendation generator for strategic refactoring guidance
* @description Single responsibility: Generate prioritized complexity improvement recommendations based on project metrics
*
* This generator creates strategic refactoring recommendations based on project-wide complexity
* analysis, providing actionable guidance that helps development teams systematically improve
* code maintainability. It considers average complexity, high-complexity file distribution,
* and complexity trends to suggest focused improvement strategies.
*
* Design rationale:
* - Metric-driven recommendations ensure guidance is based on objective complexity assessment
* - Priority-based suggestion system helps teams focus on highest-impact improvements
* - Context-aware thresholds provide appropriate recommendations for different complexity levels
* - Strategic guidance addresses both immediate issues and long-term complexity management
* - Actionable recommendations provide specific guidance beyond generic complexity reduction advice
*
* Recommendation methodology:
* - Average complexity analysis identifies project-wide complexity trends and concerns
* - High-complexity file identification enables targeted refactoring efforts
* - Threshold-based recommendation generation provides context-appropriate guidance
* - Strategic prioritization focuses recommendations on maximum impact improvements
* - Positive reinforcement recognizes good complexity management practices
*/
/**
* Generate complexity recommendations
* @param {number} averageComplexity - Average project complexity
* @param {number} highComplexityFiles - Number of high complexity files
* @returns {Array} Recommendations
*/
function generateComplexityRecommendations(averageComplexity, highComplexityFiles) {
const recommendations = [];
if (averageComplexity > 15) {
recommendations.push('Consider breaking down complex functions into smaller, focused functions');
}
if (highComplexityFiles > 0) {
recommendations.push(`Focus on refactoring ${highComplexityFiles} high-complexity files first`);
}
if (averageComplexity < 5) {
recommendations.push('Good complexity management - maintain current practices');
}
return recommendations;
}
module.exports = {
generateComplexityRecommendations
};