UNPKG

agentsqripts

Version:

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

53 lines (42 loc) 2.21 kB
/** * @file SRP recommendation generator * @description Generates recommendations for SRP violations */ /** * Generate recommendations for SRP violations * @param {Object} analysis - File analysis results * @returns {string[]} Array of recommendations */ function generateSRPRecommendations(analysis) { const recommendations = []; if (analysis.details.exportCount > 3) { recommendations.push('Consider splitting into multiple modules - excessive exports indicate multiple responsibilities'); } if (analysis.details.lineCount > 300) { recommendations.push('Break down large file into smaller, focused modules'); } if (analysis.details && analysis.details.foundClusters && analysis.details.foundClusters.length >= 2) { const clusterTypes = analysis.details.foundClusters.map(c => c.clusterType).join(', '); recommendations.push(`Separate mixed concerns: detected ${clusterTypes}`); } if (analysis.details.functionCount > 10) { recommendations.push('AI TOKEN EFFICIENCY: This file has many functions (10+) which significantly increases token usage for AI. Split into focused modules to optimize AI processing.'); } if (analysis.details.functionCount > 5 && analysis.details.functionCount <= 10) { recommendations.push('Consider refactoring for AI efficiency: With 5+ substantial functions, AI needs to process many tokens. Balance the benefits of splitting vs organizational complexity.'); } if (analysis.details.functionCount > 2 && analysis.details.functionCount <= 5) { recommendations.push('Minor AI optimization opportunity: 3-5 functions is manageable, but consider splitting if functions are large or complex.'); } // Don't recommend refactoring for 1-2 helper functions if (analysis.details.functionCount === 2) { recommendations.push('Low priority: 2 functions is acceptable if they are small helpers or tightly coupled. Only refactor if functions are substantial.'); } if (analysis.severity === 'CRITICAL') { recommendations.push('PRIORITY: This file requires immediate refactoring to improve maintainability'); } return recommendations; } module.exports = { generateSRPRecommendations };