UNPKG

agentsqripts

Version:

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

57 lines (54 loc) 2.24 kB
/** * @file Centralized academic grading system for consistent quality assessment across all analyzers * @description Single responsibility: Provide standardized letter grade calculation and description mapping * * This utility module implements a consistent academic grading system used across all * AgentSqripts analysis tools for quality assessment and scoring. It provides standardized * grade calculation based on 0-100 numeric scores and human-readable grade descriptions * to ensure consistent quality communication across all analysis domains. * * Design rationale: * - Academic grading scale provides intuitive quality assessment familiar to all users * - Consistent grading prevents confusion when comparing different analysis results * - Centralized calculation eliminates duplicate grading logic across analyzers * - Standard grade descriptions provide clear quality interpretation * - Numeric score input enables flexible integration with different scoring algorithms * * Grading scale rationale: * - A (90-100): Excellent quality, minimal issues requiring attention * - B (80-89): Good quality with minor improvements possible * - C (70-79): Average quality requiring moderate attention * - D (60-69): Below average quality needing significant improvement * - F (0-59): Failing quality requiring immediate comprehensive action */ /** * Gets letter grade based on numeric score using standard academic grading * @param {number} score - Score from 0-100 (higher is better) * @returns {string} Letter grade (A-F) */ function getLetterGrade(score) { if (score >= 90) return 'A'; // Excellent if (score >= 80) return 'B'; // Good if (score >= 70) return 'C'; // Average if (score >= 60) return 'D'; // Below Average return 'F'; // Failing } /** * Gets grade description based on letter grade * @param {string} grade - Letter grade (A-F) * @returns {string} Human-readable description */ function getGradeDescription(grade) { const descriptions = { 'A': 'Excellent', 'B': 'Good', 'C': 'Average', 'D': 'Below Average', 'F': 'Failing' }; return descriptions[grade] || 'Unknown'; } module.exports = { getLetterGrade, getGradeDescription };