agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
160 lines (154 loc) • 4.52 kB
JavaScript
/**
* @file Centralized analysis configuration for comprehensive code quality assessment
* @description Single responsibility: Provide tuned parameters for all analysis modules
*
* This configuration module centralizes all analysis parameters, thresholds, and weights
* used across the AgentSqripts platform. It implements research-backed defaults while
* enabling customization for different project types, team preferences, and quality
* standards. The configuration balances sensitivity with practical usability.
*
* Design rationale:
* - Centralized configuration prevents parameter drift across modules
* - Research-backed defaults provide good out-of-box experience
* - Category-specific configurations enable fine-tuned analysis
* - Severity weights enable prioritization of critical issues
*/
// Analysis Configuration Constants
/**
* WET (Write Everything Twice) code detection configuration
*
* Parameter tuning rationale:
* - minDuplicateLines: 5 lines balances noise vs meaningful duplication
* - minSimilarityThreshold: 0.8 catches semantic similarity while avoiding false positives
* - maxVariableDistance: 3 allows for reasonable refactoring scope
* - ignoreComments: true focuses on logic duplication rather than documentation
* - ignoreWhitespace: true handles formatting variations effectively
* - minComplexityScore: 10 avoids flagging trivial duplicated patterns
*/
const WET_CODE_CONFIG = {
minDuplicateLines: 5,
minSimilarityThreshold: 0.8,
maxVariableDistance: 3,
ignoreComments: true,
ignoreWhitespace: true,
minComplexityScore: 10
};
const UI_CONFIG = {
maxInlineStyles: 5,
minButtonSize: 44,
maxNestingDepth: 4,
responsiveBreakpoints: ['sm', 'md', 'lg', 'xl'],
contrastRatios: {
normal: 4.5,
large: 3.0
},
severityWeights: {
HIGH: 5,
MEDIUM: 3,
LOW: 1
}
};
const BUG_CONFIG = {
severityWeights: {
HIGH: 5,
MEDIUM: 3,
LOW: 1
},
maxEffortHighPriority: 15,
maxEffortMediumPriority: 30,
defaultExtensions: ['.js', '.ts', '.jsx', '.tsx'],
excludePatterns: ['node_modules', '.git', 'dist', 'build', 'coverage']
};
// UI Problem Pattern Constants
const UI_PROBLEM_PATTERNS = {
'ambiguous_labels': {
effort: 1,
impact: 'Significantly improves user clarity and task completion',
severity: 'HIGH',
category: 'Content'
},
'inconsistent_icons': {
effort: 2,
impact: 'Enhances visual consistency and brand cohesion',
severity: 'MEDIUM',
category: 'Visual Design'
},
'excessive_inline_styles': {
effort: 2,
impact: 'Improves maintainability and performance',
severity: 'MEDIUM',
category: 'Code Quality'
},
'missing_loading_states': {
effort: 1,
impact: 'Reduces user confusion during async operations',
severity: 'HIGH',
category: 'Feedback'
},
'cluttered_layout': {
effort: 3,
impact: 'Dramatically improves user focus and task completion',
severity: 'HIGH',
category: 'Layout'
},
'poor_color_contrast': {
effort: 1,
impact: 'Improves readability and accessibility',
severity: 'HIGH',
category: 'Visual Design'
},
'inconsistent_spacing': {
effort: 2,
impact: 'Creates visual harmony and professional appearance',
severity: 'MEDIUM',
category: 'Layout'
},
'missing_error_handling': {
effort: 2,
impact: 'Prevents user frustration and provides clear guidance',
severity: 'HIGH',
category: 'Feedback'
},
'broken_responsive': {
effort: 3,
impact: 'Ensures usability across all device sizes',
severity: 'HIGH',
category: 'Responsive'
},
'insufficient_color_contrast': {
effort: 1,
impact: 'Enhances accessibility and compliance',
severity: 'HIGH',
category: 'Accessibility'
},
'poor_button_design': {
effort: 2,
impact: 'Improves user interaction and clarity',
severity: 'MEDIUM',
category: 'Interaction'
},
'confusing_navigation': {
effort: 3,
impact: 'Significantly improves user journey and satisfaction',
severity: 'HIGH',
category: 'Navigation'
},
'inconsistent_typography': {
effort: 2,
impact: 'Creates professional and cohesive appearance',
severity: 'MEDIUM',
category: 'Visual Design'
},
'accessibility_violations': {
effort: 2,
impact: 'Ensures inclusivity and legal compliance',
severity: 'HIGH',
category: 'Accessibility'
}
};
module.exports = {
WET_CODE_CONFIG,
UI_CONFIG,
BUG_CONFIG,
UI_PROBLEM_PATTERNS
};