fix: add complexity score to tm list and tm show (#1270)

This commit is contained in:
Ralph Khreish
2025-10-03 18:47:05 +02:00
committed by GitHub
parent f1393f47b1
commit 20004a39ea
14 changed files with 411 additions and 34 deletions

View File

@@ -84,7 +84,23 @@ export function getPriorityWithColor(priority: TaskPriority): string {
}
/**
* Get colored complexity display
* Get complexity color and label based on score thresholds
*/
function getComplexityLevel(score: number): {
color: (text: string) => string;
label: string;
} {
if (score >= 7) {
return { color: chalk.hex('#CC0000'), label: 'High' };
} else if (score >= 4) {
return { color: chalk.hex('#FF8800'), label: 'Medium' };
} else {
return { color: chalk.green, label: 'Low' };
}
}
/**
* Get colored complexity display with dot indicator (simple format)
*/
export function getComplexityWithColor(complexity: number | string): string {
const score =
@@ -94,13 +110,20 @@ export function getComplexityWithColor(complexity: number | string): string {
return chalk.gray('N/A');
}
if (score >= 8) {
return chalk.red.bold(`${score} (High)`);
} else if (score >= 5) {
return chalk.yellow(`${score} (Medium)`);
} else {
return chalk.green(`${score} (Low)`);
const { color } = getComplexityLevel(score);
return color(`${score}`);
}
/**
* Get colored complexity display with /10 format (for dashboards)
*/
export function getComplexityWithScore(complexity: number | undefined): string {
if (typeof complexity !== 'number') {
return chalk.gray('N/A');
}
const { color, label } = getComplexityLevel(complexity);
return color(`${complexity}/10 (${label})`);
}
/**
@@ -323,8 +346,12 @@ export function createTaskTable(
}
if (showComplexity) {
// Show N/A if no complexity score
row.push(chalk.gray('N/A'));
// Show complexity score from report if available
if (typeof task.complexity === 'number') {
row.push(getComplexityWithColor(task.complexity));
} else {
row.push(chalk.gray('N/A'));
}
}
table.push(row);