UNPKG

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