analyze_code_quality
Analyze code complexity, maintainability, and best practices adherence to identify issues and assess technical debt in software projects.
Instructions
Analyze code quality including complexity, maintainability, and best practices adherence
WORKFLOW: Perfect for understanding complex code, identifying issues, and technical debt assessment TIP: Use Desktop Commander to read files, then pass content here for analysis SAVES: Claude context for strategic decisions
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| analysisDepth | No | Level of analysis detail | detailed |
| analysisType | No | Type of analysis to perform | comprehensive |
| code | No | The code to analyze (for single-file analysis) | |
| filePath | No | Path to single file to analyze | |
| files | No | Array of specific file paths (for multi-file analysis) | |
| language | No | Programming language | javascript |
| maxDepth | No | Maximum directory depth for multi-file discovery (1-5) | |
| projectPath | No | Path to project root (for multi-file analysis) |
Implementation Reference
- Main execution handler for the analyze_code_quality tool. Detects analysis mode (single-file or multi-file), validates parameters, sets up the LLM model, routes to the appropriate analysis method, and handles errors.async execute(params: any, llmClient: any) { return await withSecurity(this, params, llmClient, async (secureParams) => { try { // 1. Auto-detect analysis mode based on parameters const analysisMode = this.detectAnalysisMode(secureParams); // 2. Validate parameters based on detected mode this.validateParameters(secureParams, analysisMode); // 3. Setup model const { model, contextLength } = await ModelSetup.getReadyModel(llmClient); // 4. Route to appropriate analysis method if (analysisMode === 'single-file') { return await this.executeSingleFileAnalysis(secureParams, model, contextLength); } else { return await this.executeMultiFileAnalysis(secureParams, model, contextLength); } } catch (error: any) { return ErrorHandler.createExecutionError('analyze_code_quality', error); } }); }
- Input schema defining parameters for single-file and multi-file code quality analysis, including code, filePath, projectPath, files, language, analysisDepth, and analysisType.parameters = { // Single-file parameters code: { type: 'string' as const, description: 'The code to analyze (for single-file analysis)', required: false }, filePath: { type: 'string' as const, description: 'Path to single file to analyze', required: false }, // Multi-file parameters projectPath: { type: 'string' as const, description: 'Path to project root (for multi-file analysis)', required: false }, files: { type: 'array' as const, description: 'Array of specific file paths (for multi-file analysis)', required: false, items: { type: 'string' as const } }, maxDepth: { type: 'number' as const, description: 'Maximum directory depth for multi-file discovery (1-5)', required: false, default: 3 }, // Universal parameters language: { type: 'string' as const, description: 'Programming language', required: false, default: 'javascript' }, analysisDepth: { type: 'string' as const, description: 'Level of analysis detail', enum: ['basic', 'detailed', 'comprehensive'], default: 'detailed', required: false }, analysisType: { type: 'string' as const, description: 'Type of analysis to perform', enum: ['complexity', 'maintainability', 'comprehensive'], default: 'comprehensive', required: false } };
- src/prompts/analyze/code-quality.ts:30-33 (registration)Tool class registration defining the name 'analyze_code_quality', category 'analyze', and description.export class CodeQualityAnalyzer extends BasePlugin implements IPromptPlugin { name = 'analyze_code_quality'; category = 'analyze' as const; description = 'Analyze code quality including complexity, maintainability, and best practices adherence';
- Helper method that generates prompt stages for single-file code quality analysis, including system context, data payload with code, and detailed output instructions.private getSingleFilePromptStages(params: any): PromptStages { const { code, language, analysisDepth, analysisType } = params; const systemAndContext = `You are an expert code quality analyst specializing in ${analysisDepth} ${analysisType} analysis. Analysis Context: - Language: ${language} - Analysis Depth: ${analysisDepth} - Analysis Type: ${analysisType} - Mode: Single File Quality Analysis Your task is to analyze code quality metrics including complexity, maintainability, readability, and adherence to best practices for this individual file.`; const dataPayload = `Code to analyze: \`\`\`${language} ${code} \`\`\``; const outputInstructions = `Provide comprehensive code quality analysis including: **Quality Assessment Overview** - Overall quality evaluation with numerical scoring out of 10 - Complexity assessment focusing on cyclomatic complexity and maintainability - Readability evaluation covering naming conventions, code organization, and clarity - Maintainability score considering future modification ease **Detailed Quality Analysis** - Cyclomatic complexity assessment with specific complexity hotspots - Function and method length analysis identifying overly complex functions - Variable naming consistency and clarity evaluation - Code organization patterns and structural assessment - Documentation quality and inline comment effectiveness **Best Practices Adherence Evaluation** - SOLID principles compliance with specific examples and scoring - DRY principle adherence identifying code duplication patterns - Error handling consistency and robustness assessment - Language-specific best practices and idiom usage - Performance considerations and optimization opportunities **Quality Issues and Recommendations** - Critical quality issues requiring immediate attention with specific line references - Important improvements for maintainability and readability enhancement - Minor refinements and polish opportunities for code excellence - Prioritized recommendation list focusing on highest impact improvements first **Implementation Guidance** - Specific actionable steps for addressing identified quality issues - Code refactoring suggestions with examples where applicable - Long-term quality improvement strategies and practices - Confidence assessment of the analysis accuracy and completeness Focus on providing actionable insights that developers can implement immediately to improve code quality, maintainability, and team productivity.`; return { systemAndContext, dataPayload, outputInstructions }; }
- Helper method that generates prompt stages for multi-file/project-wide code quality analysis using aggregated analysis results.private getMultiFilePromptStages(params: any): PromptStages { const { analysisResult, analysisType, analysisDepth, fileCount } = params; const systemAndContext = `You are an expert project code quality analyst specializing in ${analysisDepth} ${analysisType} analysis. Analysis Context: - Analysis Type: ${analysisType} - Analysis Depth: ${analysisDepth} - Files Analyzed: ${fileCount} - Mode: Project-wide Quality Analysis Your task is to provide comprehensive code quality assessment across the entire project, identifying patterns, consistency issues, and quality metrics.`; const dataPayload = `Project quality analysis results: ${JSON.stringify(analysisResult, null, 2)}`; const outputInstructions = `Provide comprehensive project-wide code quality analysis including: **Project Quality Overview** - Overall project quality assessment with numerical scoring and quality maturity evaluation - Quality consistency analysis across the entire codebase identifying patterns and variations - Project maintainability assessment focusing on long-term sustainability and evolution capability **Quality Distribution Analysis** - Quality variance across files identifying high-performing and problematic areas - Consistency patterns in coding standards, naming conventions, and structural approaches - Quality hotspots requiring immediate attention and areas of excellence to replicate **Cross-File Quality Patterns** - Consistent quality patterns and practices implemented well across multiple files - Inconsistent areas showing quality variations that impact team productivity - Systematic quality issues affecting multiple components or architectural layers - Code quality trends and evolution patterns throughout the project structure **Strategic Quality Issues** - Critical systemic problems affecting multiple files requiring architectural attention - Quality consistency issues creating maintenance burden and reducing team velocity - Technical debt accumulation patterns and their impact on project sustainability - Cross-cutting concerns and quality patterns that span multiple modules or components **Project Quality Recommendations** - Immediate action items for addressing urgent quality problems across the project - Quality standards and coding guidelines recommendations for team adoption - Tooling and automation suggestions for maintaining consistent quality levels - Refactoring prioritization strategy focusing on highest impact quality improvements - Long-term quality improvement roadmap and architectural evolution guidance **Implementation Strategy** - Phase-based approach to implementing quality improvements across the project - Team adoption strategies for quality standards and best practices - Measurement and monitoring approaches for tracking quality improvements over time - Project quality maturity assessment and growth pathway recommendations Focus on providing strategic, actionable insights that improve overall project quality, team productivity, and long-term maintainability across the entire codebase.`; return { systemAndContext, dataPayload, outputInstructions }; }