feat(config-audit): wire TOK into posture scorecard as 8th quality area (Token Efficiency)
This commit is contained in:
parent
068622e513
commit
4b385bf456
3 changed files with 23 additions and 8 deletions
|
|
@ -150,12 +150,21 @@ const SCANNER_AREA_MAP = {
|
|||
IMP: 'Imports',
|
||||
CNF: 'Conflicts',
|
||||
GAP: 'Feature Coverage',
|
||||
TOK: 'Token Efficiency',
|
||||
};
|
||||
|
||||
/**
|
||||
* Slugify an area name into a stable id.
|
||||
* Example: "Token Efficiency" → "token_efficiency", "CLAUDE.md" → "claude_md".
|
||||
*/
|
||||
function slugify(name) {
|
||||
return String(name).toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Score per config area from scanner results.
|
||||
* @param {object[]} scannerResults - Array of scanner result objects from envelope.scanners
|
||||
* @returns {{ areas: Array<{ name: string, grade: string, score: number, findingCount: number }>, overallGrade: string }}
|
||||
* @returns {{ areas: Array<{ id: string, name: string, grade: string, score: number, findingCount: number }>, overallGrade: string }}
|
||||
*/
|
||||
export function scoreByArea(scannerResults) {
|
||||
const areas = [];
|
||||
|
|
@ -178,7 +187,7 @@ export function scoreByArea(scannerResults) {
|
|||
}
|
||||
|
||||
const grade = gradeFromPassRate(score);
|
||||
areas.push({ name, grade, score, findingCount });
|
||||
areas.push({ id: slugify(name), name, grade, score, findingCount });
|
||||
}
|
||||
|
||||
// Overall grade: quality areas only (exclude GAP — feature coverage is informational, not a quality issue)
|
||||
|
|
@ -262,7 +271,7 @@ export function generateScorecard(areaScores, utilization, maturity, segment, ac
|
|||
|
||||
/**
|
||||
* Generate a v3 health-focused terminal scorecard.
|
||||
* Shows only the 7 quality areas — no utilization, maturity, or segment.
|
||||
* Shows only the quality areas (currently 8) — no utilization, maturity, or segment.
|
||||
* @param {{ areas: Array<{ name: string, grade: string, score: number }>, overallGrade: string }} areaScores
|
||||
* @param {number} opportunityCount - Number of GAP findings (shown as opportunity count)
|
||||
* @returns {string}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue