quorum-ux 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -106,8 +106,10 @@ Naming conventions are flexible — QuorumUX discovers personas from subdirector
106
106
  npx quorumux [command] [options]
107
107
 
108
108
  Commands:
109
- init Interactive project setup wizard
110
- run [options] Run the analysis pipeline (default)
109
+ init Interactive project setup wizard
110
+ run [options] Run the analysis pipeline (default)
111
+ status Show project config, API key, and latest run info
112
+ compare <baseline> <current> Compare two runs side-by-side
111
113
 
112
114
  Options:
113
115
  --config <path> Path to quorumux.config.ts (default: ./quorumux.config.ts)
@@ -115,6 +117,7 @@ Options:
115
117
  --start-stage <n> Start from stage 1, 2, 3, or 4 (default: 1)
116
118
  --skip-video Skip Stage 2b video analysis
117
119
  --dry-run Show what would run without making API calls
120
+ --output-dir <path> Write reports to this directory instead of {runDir}/reports/
118
121
  --verbose Verbose output
119
122
  --help Show help
120
123
 
@@ -131,7 +134,7 @@ Environment:
131
134
  | **2: Analyze Screenshots** | grids/, summaries/ | all-analyses-raw.json | All `config.models.screenshot` |
132
135
  | **2b: Analyze Video** | videos/, summaries/ | all-video-analyses-raw.json | `config.models.video` |
133
136
  | **3: Synthesize** | All Stage 2/2b output + summaries + exec summary | synthesis.json | `config.models.synthesis` |
134
- | **4: Report** | synthesis.json | ux-analysis-report.md, github-issues.md | None (templating) |
137
+ | **4: Report** | synthesis.json | ux-analysis-report.md, github-issues.md, ux-analysis-report.json | None (templating) |
135
138
 
136
139
  Stages 2 and 2b run in parallel. You can start from any stage with `--start-stage`.
137
140
 
@@ -168,6 +171,10 @@ When persona IDs match an archetype, QuorumUX automatically injects behavioral c
168
171
 
169
172
  Ready-to-paste `gh issue create` commands for every finding, with severity labels and structured descriptions.
170
173
 
174
+ ### ux-analysis-report.json
175
+
176
+ Flat JSON with all issues (consensus, video-only, model-unique) in a single array with `type` discriminator. Includes score, launch readiness, models, personas, strengths, and critical path. Designed for CI integration and dashboards.
177
+
171
178
  ### synthesis.json
172
179
 
173
180
  Raw structured data for programmatic consumption or custom reporting.
@@ -1,27 +1,71 @@
1
1
  /**
2
2
  * `quorumux compare` — Run Comparison
3
3
  *
4
- * Pure diff of two synthesis.json files. No API calls.
5
- * Usage: quorumux compare <baseline-dir> <current-dir>
4
+ * Structured diff of two synthesis.json files with fuzzy issue matching.
5
+ * No API calls.
6
+ * Usage: quorumux compare [--json] <baseline-dir> <current-dir>
6
7
  */
7
8
  import type { Synthesis } from '../types.js';
9
+ export interface CompareIssue {
10
+ id: string;
11
+ title: string;
12
+ severity: 'P0' | 'P1' | 'P2';
13
+ type: 'consensus' | 'video-only' | 'model-unique';
14
+ source?: 'app' | 'test-infra';
15
+ category?: string;
16
+ }
17
+ export interface PersistingIssue {
18
+ baselineId: string;
19
+ currentId: string;
20
+ title: string;
21
+ baselineSeverity: 'P0' | 'P1' | 'P2';
22
+ currentSeverity: 'P0' | 'P1' | 'P2';
23
+ severityChange: 'improved' | 'regressed' | 'unchanged';
24
+ matchMethod: 'exact-id' | 'fuzzy';
25
+ matchConfidence?: number;
26
+ }
8
27
  export interface CompareResult {
9
28
  scoreDelta: number;
10
29
  baselineScore: number;
11
30
  currentScore: number;
31
+ adjustedDelta?: number;
12
32
  baselineReadiness: string;
13
33
  currentReadiness: string;
14
- resolvedIssues: string[];
15
- newIssues: string[];
16
- persistingIssues: string[];
34
+ resolvedIssues: CompareIssue[];
35
+ newIssues: CompareIssue[];
36
+ persistingIssues: PersistingIssue[];
37
+ regressions: PersistingIssue[];
17
38
  severityDistribution: {
18
39
  baseline: Record<string, number>;
19
40
  current: Record<string, number>;
20
41
  };
21
42
  }
43
+ /**
44
+ * Jaccard word-overlap similarity on lowercased, whitespace-split tokens.
45
+ * Returns 0.0–1.0.
46
+ */
47
+ export declare function jaccardSimilarity(a: string, b: string): number;
48
+ /**
49
+ * Two-pass issue matching between baseline and current runs.
50
+ *
51
+ * Pass 1: Exact ID match for QUX- prefixed stable hashes.
52
+ * Pass 2: Fuzzy title matching for remaining (legacy ordinal IDs or unmatched).
53
+ * Threshold: similarity > 0.6 OR (same category + same severity + similarity > 0.4)
54
+ * Greedy assignment sorted by descending similarity.
55
+ */
56
+ export declare function matchIssues(baselineIssues: CompareIssue[], currentIssues: CompareIssue[]): {
57
+ matched: Array<{
58
+ baseline: CompareIssue;
59
+ current: CompareIssue;
60
+ method: 'exact-id' | 'fuzzy';
61
+ confidence?: number;
62
+ }>;
63
+ unmatchedBaseline: CompareIssue[];
64
+ unmatchedCurrent: CompareIssue[];
65
+ };
22
66
  /**
23
67
  * Pure function: compare two syntheses and return structured diff.
24
- * Testable without file I/O.
68
+ * Uses two-pass matching (exact ID + fuzzy title) and score normalization.
25
69
  */
26
70
  export declare function compareSyntheses(baseline: Synthesis, current: Synthesis, baselineId: string, currentId: string): CompareResult;
27
71
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/commands/compare.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,oBAAoB,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,aAAa,CAsBf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwE9D"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/commands/compare.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;IAClD,MAAM,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACvD,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,oBAAoB,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;CACH;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,YAAY,EAAE,EAC9B,aAAa,EAAE,YAAY,EAAE,GAC5B;IACD,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrH,iBAAiB,EAAE,YAAY,EAAE,CAAC;IAClC,gBAAgB,EAAE,YAAY,EAAE,CAAC;CAClC,CAyDA;AAqDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,aAAa,CAuDf;AAID;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0G9D"}
@@ -1,46 +1,216 @@
1
1
  /**
2
2
  * `quorumux compare` — Run Comparison
3
3
  *
4
- * Pure diff of two synthesis.json files. No API calls.
5
- * Usage: quorumux compare <baseline-dir> <current-dir>
4
+ * Structured diff of two synthesis.json files with fuzzy issue matching.
5
+ * No API calls.
6
+ * Usage: quorumux compare [--json] <baseline-dir> <current-dir>
6
7
  */
8
+ import * as fs from 'fs';
7
9
  import * as path from 'path';
8
10
  import * as logger from '../utils/logger.js';
9
11
  import { loadJson } from '../utils/files.js';
12
+ import { normalizeScore, calculateAdjustedScore } from '../utils/scoring.js';
13
+ // ─── Matching utilities ─────────────────────────────────────────────────────
14
+ const SEVERITY_ORDER = { P0: 0, P1: 1, P2: 2 };
15
+ /**
16
+ * Jaccard word-overlap similarity on lowercased, whitespace-split tokens.
17
+ * Returns 0.0–1.0.
18
+ */
19
+ export function jaccardSimilarity(a, b) {
20
+ const setA = new Set(a.toLowerCase().split(/\s+/).filter(Boolean));
21
+ const setB = new Set(b.toLowerCase().split(/\s+/).filter(Boolean));
22
+ if (setA.size === 0 && setB.size === 0)
23
+ return 1.0;
24
+ if (setA.size === 0 || setB.size === 0)
25
+ return 0.0;
26
+ let intersection = 0;
27
+ for (const token of setA) {
28
+ if (setB.has(token))
29
+ intersection++;
30
+ }
31
+ return intersection / (setA.size + setB.size - intersection);
32
+ }
33
+ /**
34
+ * Two-pass issue matching between baseline and current runs.
35
+ *
36
+ * Pass 1: Exact ID match for QUX- prefixed stable hashes.
37
+ * Pass 2: Fuzzy title matching for remaining (legacy ordinal IDs or unmatched).
38
+ * Threshold: similarity > 0.6 OR (same category + same severity + similarity > 0.4)
39
+ * Greedy assignment sorted by descending similarity.
40
+ */
41
+ export function matchIssues(baselineIssues, currentIssues) {
42
+ const matchedBaseline = new Set();
43
+ const matchedCurrent = new Set();
44
+ const matched = [];
45
+ // Pass 1: Exact ID match (QUX- prefixed stable hashes)
46
+ for (let bi = 0; bi < baselineIssues.length; bi++) {
47
+ if (matchedBaseline.has(bi))
48
+ continue;
49
+ const bIssue = baselineIssues[bi];
50
+ if (!bIssue.id.startsWith('QUX-'))
51
+ continue;
52
+ for (let ci = 0; ci < currentIssues.length; ci++) {
53
+ if (matchedCurrent.has(ci))
54
+ continue;
55
+ if (currentIssues[ci].id === bIssue.id) {
56
+ matched.push({ baseline: bIssue, current: currentIssues[ci], method: 'exact-id' });
57
+ matchedBaseline.add(bi);
58
+ matchedCurrent.add(ci);
59
+ break;
60
+ }
61
+ }
62
+ }
63
+ // Pass 2: Fuzzy title matching for remaining
64
+ const candidates = [];
65
+ for (let bi = 0; bi < baselineIssues.length; bi++) {
66
+ if (matchedBaseline.has(bi))
67
+ continue;
68
+ for (let ci = 0; ci < currentIssues.length; ci++) {
69
+ if (matchedCurrent.has(ci))
70
+ continue;
71
+ const sim = jaccardSimilarity(baselineIssues[bi].title, currentIssues[ci].title);
72
+ const sameCategory = baselineIssues[bi].category !== undefined
73
+ && baselineIssues[bi].category === currentIssues[ci].category;
74
+ const sameSeverity = baselineIssues[bi].severity === currentIssues[ci].severity;
75
+ if (sim > 0.6 || (sameCategory && sameSeverity && sim > 0.4)) {
76
+ candidates.push({ bi, ci, similarity: sim });
77
+ }
78
+ }
79
+ }
80
+ // Greedy assignment sorted by descending similarity
81
+ candidates.sort((a, b) => b.similarity - a.similarity);
82
+ for (const { bi, ci, similarity } of candidates) {
83
+ if (matchedBaseline.has(bi) || matchedCurrent.has(ci))
84
+ continue;
85
+ matched.push({
86
+ baseline: baselineIssues[bi],
87
+ current: currentIssues[ci],
88
+ method: 'fuzzy',
89
+ confidence: Math.round(similarity * 100),
90
+ });
91
+ matchedBaseline.add(bi);
92
+ matchedCurrent.add(ci);
93
+ }
94
+ const unmatchedBaseline = baselineIssues.filter((_, i) => !matchedBaseline.has(i));
95
+ const unmatchedCurrent = currentIssues.filter((_, i) => !matchedCurrent.has(i));
96
+ return { matched, unmatchedBaseline, unmatchedCurrent };
97
+ }
98
+ // ─── Core comparison ────────────────────────────────────────────────────────
99
+ /**
100
+ * Collect all issues from a synthesis into flat CompareIssue array
101
+ */
102
+ function collectIssues(synthesis) {
103
+ const issues = [];
104
+ for (const i of synthesis.consensusIssues) {
105
+ issues.push({
106
+ id: i.id, title: i.title, severity: i.severity,
107
+ type: 'consensus', source: i.source ?? 'app', category: i.category,
108
+ });
109
+ }
110
+ for (const i of synthesis.videoOnlyIssues) {
111
+ issues.push({
112
+ id: i.id, title: i.title, severity: i.severity,
113
+ type: 'video-only', source: i.source ?? 'app',
114
+ });
115
+ }
116
+ for (const i of synthesis.modelUniqueIssues) {
117
+ issues.push({
118
+ id: i.id, title: i.title, severity: i.severity,
119
+ type: 'model-unique', source: i.source ?? 'app',
120
+ });
121
+ }
122
+ return issues;
123
+ }
124
+ /**
125
+ * Compare severity and return direction of change.
126
+ */
127
+ function compareSeverity(baseline, current) {
128
+ const bOrd = SEVERITY_ORDER[baseline];
129
+ const cOrd = SEVERITY_ORDER[current];
130
+ if (cOrd > bOrd)
131
+ return 'improved'; // P0→P1 = improved (higher ordinal = lower severity)
132
+ if (cOrd < bOrd)
133
+ return 'regressed'; // P1→P0 = regressed
134
+ return 'unchanged';
135
+ }
136
+ /** Count issues by severity across all issue types */
137
+ function countSeverities(synthesis) {
138
+ const counts = { P0: 0, P1: 0, P2: 0 };
139
+ for (const issue of synthesis.consensusIssues)
140
+ counts[issue.severity]++;
141
+ for (const issue of synthesis.videoOnlyIssues)
142
+ counts[issue.severity]++;
143
+ for (const issue of synthesis.modelUniqueIssues)
144
+ counts[issue.severity]++;
145
+ return counts;
146
+ }
10
147
  /**
11
148
  * Pure function: compare two syntheses and return structured diff.
12
- * Testable without file I/O.
149
+ * Uses two-pass matching (exact ID + fuzzy title) and score normalization.
13
150
  */
14
151
  export function compareSyntheses(baseline, current, baselineId, currentId) {
15
- const baselineIds = new Set(allIssueIds(baseline));
16
- const currentIds = new Set(allIssueIds(current));
17
- const resolvedIssues = [...baselineIds].filter((id) => !currentIds.has(id));
18
- const newIssues = [...currentIds].filter((id) => !baselineIds.has(id));
19
- const persistingIssues = [...baselineIds].filter((id) => currentIds.has(id));
152
+ const baselineIssues = collectIssues(baseline);
153
+ const currentIssues = collectIssues(current);
154
+ const { matched, unmatchedBaseline, unmatchedCurrent } = matchIssues(baselineIssues, currentIssues);
155
+ // Build persisting issues + regressions from matches
156
+ const persistingIssues = [];
157
+ const regressions = [];
158
+ for (const m of matched) {
159
+ const severityChange = compareSeverity(m.baseline.severity, m.current.severity);
160
+ const entry = {
161
+ baselineId: m.baseline.id,
162
+ currentId: m.current.id,
163
+ title: m.current.title,
164
+ baselineSeverity: m.baseline.severity,
165
+ currentSeverity: m.current.severity,
166
+ severityChange,
167
+ matchMethod: m.method,
168
+ matchConfidence: m.confidence,
169
+ };
170
+ persistingIssues.push(entry);
171
+ if (severityChange === 'regressed') {
172
+ regressions.push(entry);
173
+ }
174
+ }
175
+ // Score normalization
176
+ const baselineScore = normalizeScore(baseline.overallAssessment.uxScore);
177
+ const currentScore = normalizeScore(current.overallAssessment.uxScore);
178
+ // Adjusted scores
179
+ const baselineAdj = calculateAdjustedScore(baseline);
180
+ const currentAdj = calculateAdjustedScore(current);
181
+ const adjustedDelta = (baselineAdj !== undefined && currentAdj !== undefined)
182
+ ? currentAdj - baselineAdj
183
+ : undefined;
20
184
  return {
21
- scoreDelta: current.overallAssessment.uxScore - baseline.overallAssessment.uxScore,
22
- baselineScore: baseline.overallAssessment.uxScore,
23
- currentScore: current.overallAssessment.uxScore,
185
+ scoreDelta: currentScore - baselineScore,
186
+ baselineScore,
187
+ currentScore,
188
+ adjustedDelta,
24
189
  baselineReadiness: baseline.overallAssessment.launchReadiness,
25
190
  currentReadiness: current.overallAssessment.launchReadiness,
26
- resolvedIssues,
27
- newIssues,
191
+ resolvedIssues: unmatchedBaseline,
192
+ newIssues: unmatchedCurrent,
28
193
  persistingIssues,
194
+ regressions,
29
195
  severityDistribution: {
30
196
  baseline: countSeverities(baseline),
31
197
  current: countSeverities(current),
32
198
  },
33
199
  };
34
200
  }
201
+ // ─── CLI handler ────────────────────────────────────────────────────────────
35
202
  /**
36
203
  * CLI handler: load files and print comparison
37
204
  */
38
205
  export async function runCompare(args) {
39
- if (args.length < 2) {
40
- logger.error('Usage: quorumux compare <baseline-dir> <current-dir>');
206
+ // Parse --json flag
207
+ const jsonFlag = args.includes('--json');
208
+ const positionalArgs = args.filter((a) => a !== '--json');
209
+ if (positionalArgs.length < 2) {
210
+ logger.error('Usage: quorumux compare [--json] <baseline-dir> <current-dir>');
41
211
  process.exit(1);
42
212
  }
43
- const [baselineDir, currentDir] = args;
213
+ const [baselineDir, currentDir] = positionalArgs;
44
214
  const baselinePath = path.join(path.resolve(baselineDir), 'reports', 'synthesis.json');
45
215
  const currentPath = path.join(path.resolve(currentDir), 'reports', 'synthesis.json');
46
216
  const baseline = loadJson(baselinePath);
@@ -56,7 +226,18 @@ export async function runCompare(args) {
56
226
  const baselineId = path.basename(path.resolve(baselineDir));
57
227
  const currentId = path.basename(path.resolve(currentDir));
58
228
  const result = compareSyntheses(baseline, current, baselineId, currentId);
59
- // Print report
229
+ // Write JSON sidecar to current run's reports dir
230
+ const currentReportsDir = path.join(path.resolve(currentDir), 'reports');
231
+ if (fs.existsSync(currentReportsDir)) {
232
+ const sidecarPath = path.join(currentReportsDir, 'comparison-report.json');
233
+ fs.writeFileSync(sidecarPath, JSON.stringify(result, null, 2) + '\n');
234
+ }
235
+ // --json: print JSON to stdout and exit
236
+ if (jsonFlag) {
237
+ console.log(JSON.stringify(result, null, 2));
238
+ return;
239
+ }
240
+ // Formatted output
60
241
  const deltaSign = result.scoreDelta >= 0 ? '+' : '';
61
242
  logger.box([
62
243
  'QuorumUX — Run Comparison',
@@ -69,6 +250,10 @@ export async function runCompare(args) {
69
250
  logger.log(` Baseline: ${result.baselineScore}/100 (${result.baselineReadiness})`);
70
251
  logger.log(` Current: ${result.currentScore}/100 (${result.currentReadiness})`);
71
252
  logger.log(` Delta: ${deltaSign}${result.scoreDelta}`);
253
+ if (result.adjustedDelta !== undefined) {
254
+ const adjSign = result.adjustedDelta >= 0 ? '+' : '';
255
+ logger.log(` Adjusted: ${adjSign}${result.adjustedDelta}`);
256
+ }
72
257
  logger.stage('Severity Distribution');
73
258
  for (const sev of ['P0', 'P1', 'P2']) {
74
259
  const b = result.severityDistribution.baseline[sev] || 0;
@@ -79,41 +264,34 @@ export async function runCompare(args) {
79
264
  }
80
265
  if (result.resolvedIssues.length > 0) {
81
266
  logger.stage(`Resolved Issues (${result.resolvedIssues.length})`);
82
- for (const id of result.resolvedIssues) {
83
- logger.log(` - ${id}`);
267
+ for (const issue of result.resolvedIssues) {
268
+ logger.log(` - [${issue.severity}] ${issue.title}`);
84
269
  }
85
270
  }
86
271
  if (result.newIssues.length > 0) {
87
272
  logger.stage(`New Issues (${result.newIssues.length})`);
88
- for (const id of result.newIssues) {
89
- logger.log(` + ${id}`);
273
+ for (const issue of result.newIssues) {
274
+ logger.log(` + [${issue.severity}] ${issue.title}`);
90
275
  }
91
276
  }
92
277
  if (result.persistingIssues.length > 0) {
93
278
  logger.stage(`Persisting Issues (${result.persistingIssues.length})`);
94
- for (const id of result.persistingIssues) {
95
- logger.log(` ${id}`);
279
+ for (const issue of result.persistingIssues) {
280
+ const sevStr = issue.baselineSeverity === issue.currentSeverity
281
+ ? `${issue.currentSeverity}`
282
+ : `${issue.baselineSeverity} → ${issue.currentSeverity}`;
283
+ const matchStr = issue.matchMethod === 'exact-id'
284
+ ? '[exact]'
285
+ : `[fuzzy ${issue.matchConfidence}%]`;
286
+ logger.log(` ${issue.title} (${sevStr}) ${matchStr}`);
287
+ }
288
+ }
289
+ if (result.regressions.length > 0) {
290
+ logger.stage(`Regressions (${result.regressions.length})`);
291
+ for (const issue of result.regressions) {
292
+ logger.log(` ! [${issue.baselineSeverity} → ${issue.currentSeverity}] ${issue.title}`);
96
293
  }
97
294
  }
98
295
  console.log('');
99
296
  }
100
- /** Collect all issue IDs from a synthesis */
101
- function allIssueIds(synthesis) {
102
- return [
103
- ...synthesis.consensusIssues.map((i) => i.id),
104
- ...synthesis.videoOnlyIssues.map((i) => i.id),
105
- ...synthesis.modelUniqueIssues.map((i) => i.id),
106
- ];
107
- }
108
- /** Count issues by severity across all issue types */
109
- function countSeverities(synthesis) {
110
- const counts = { P0: 0, P1: 0, P2: 0 };
111
- for (const issue of synthesis.consensusIssues)
112
- counts[issue.severity]++;
113
- for (const issue of synthesis.videoOnlyIssues)
114
- counts[issue.severity]++;
115
- for (const issue of synthesis.modelUniqueIssues)
116
- counts[issue.severity]++;
117
- return counts;
118
- }
119
297
  //# sourceMappingURL=compare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/commands/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/commands/compare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgF/C"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAkF/C"}
@@ -69,7 +69,9 @@ export async function runStatus() {
69
69
  const synthesisPath = path.join(artifactsDir, latestRun, 'reports', 'synthesis.json');
70
70
  const synthesis = loadJson(synthesisPath);
71
71
  if (synthesis) {
72
- logger.log(` UX Score: ${synthesis.overallAssessment.uxScore}/100`);
72
+ const score100 = synthesis.overallAssessment.uxScore;
73
+ const score10 = (score100 / 10).toFixed(1);
74
+ logger.log(` UX Score: ${score100}/100 (${score10}/10)`);
73
75
  logger.log(` Launch Readiness: ${synthesis.overallAssessment.launchReadiness}`);
74
76
  const totalIssues = synthesis.consensusIssues.length +
75
77
  synthesis.videoOnlyIssues.length +
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAiB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,YAAY;IACZ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxD,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,aAAa;IACb,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,CAAC,OAAO,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,WAAW;IACX,SAAS,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAClD,SAAS,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,eAAe;IACf,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC;iBACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC5F,IAAI,EAAE;iBACN,OAAO,EAAE,CAAC;YAEb,MAAM,CAAC,GAAG,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;gBAEzC,sBAAsB;gBACtB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACtF,MAAM,SAAS,GAAG,QAAQ,CAAY,aAAa,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,iBAAiB,CAAC,OAAO,MAAM,CAAC,CAAC;oBACrE,MAAM,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC;oBACjF,MAAM,WAAW,GACf,SAAS,CAAC,eAAe,CAAC,MAAM;wBAChC,SAAS,CAAC,eAAe,CAAC,MAAM;wBAChC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACrC,MAAM,CAAC,GAAG,CAAC,aAAa,WAAW,KAAK,SAAS,CAAC,eAAe,CAAC,MAAM,eAAe,SAAS,CAAC,eAAe,CAAC,MAAM,gBAAgB,SAAS,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBAC7L,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,OAAe;IAC9C,IAAI,CAAC;QACH,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAiB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,YAAY;IACZ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxD,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,aAAa;IACb,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,CAAC,OAAO,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,WAAW;IACX,SAAS,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAClD,SAAS,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,eAAe;IACf,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC;iBACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC5F,IAAI,EAAE;iBACN,OAAO,EAAE,CAAC;YAEb,MAAM,CAAC,GAAG,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;gBAEzC,sBAAsB;gBACtB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACtF,MAAM,SAAS,GAAG,QAAQ,CAAY,aAAa,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC;oBACrD,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,eAAe,QAAQ,SAAS,OAAO,MAAM,CAAC,CAAC;oBAC1D,MAAM,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC;oBACjF,MAAM,WAAW,GACf,SAAS,CAAC,eAAe,CAAC,MAAM;wBAChC,SAAS,CAAC,eAAe,CAAC,MAAM;wBAChC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACrC,MAAM,CAAC,GAAG,CAAC,aAAa,WAAW,KAAK,SAAS,CAAC,eAAe,CAAC,MAAM,eAAe,SAAS,CAAC,eAAe,CAAC,MAAM,gBAAgB,SAAS,CAAC,iBAAiB,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBAC7L,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,OAAe;IAC9C,IAAI,CAAC;QACH,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -389,7 +389,7 @@ COMMANDS
389
389
  init Interactive project setup wizard
390
390
  run [options] Run the analysis pipeline (default if no command given)
391
391
  status Show project config, API key, and latest run info
392
- compare <baseline> <current> Compare two runs side-by-side
392
+ compare [--json] <baseline> <current> Compare two runs side-by-side
393
393
 
394
394
  OPTIONS (for run)
395
395
  --config <path> Path to quorumux.config.ts (default: ./quorumux.config.ts)
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/pipeline/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,cAAc,EAQf,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9G"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/pipeline/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,cAAc,EAQf,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9G"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import * as fs from 'fs';
7
7
  import * as path from 'path';
8
+ import { calculateAdjustedScore } from '../utils/scoring.js';
8
9
  /**
9
10
  * Generate UX analysis report and GitHub issue templates from synthesis data
10
11
  */
@@ -55,7 +56,15 @@ function generateUXReport(config, synthesis) {
55
56
  lines.push('## Overall Assessment');
56
57
  lines.push('');
57
58
  const assessment = synthesis.overallAssessment;
58
- lines.push(`**UX Score:** ${assessment.uxScore}/100`);
59
+ const score100 = assessment.uxScore;
60
+ const score10 = (score100 / 10).toFixed(1);
61
+ let scoreLine = `**UX Score:** ${score100}/100 (${score10}/10)`;
62
+ const adjusted = calculateAdjustedScore(synthesis);
63
+ if (adjusted !== undefined && adjusted !== score100) {
64
+ const adj10 = (adjusted / 10).toFixed(1);
65
+ scoreLine += ` | Adjusted: ${adjusted}/100 (${adj10}/10)`;
66
+ }
67
+ lines.push(scoreLine);
59
68
  lines.push(`**Launch Readiness:** ${assessment.launchReadiness.replace(/-/g, ' ').toUpperCase()}`);
60
69
  lines.push('');
61
70
  lines.push('### Top Strengths');
@@ -73,13 +82,22 @@ function generateUXReport(config, synthesis) {
73
82
  lines.push(assessment.temporalInsightsSummary);
74
83
  lines.push('');
75
84
  }
76
- // Consensus Issues by Severity
77
- if (synthesis.consensusIssues.length > 0) {
85
+ // Partition issues into app vs test-infra
86
+ const appConsensus = synthesis.consensusIssues.filter((i) => (i.source ?? 'app') !== 'test-infra');
87
+ const appVideo = synthesis.videoOnlyIssues.filter((i) => (i.source ?? 'app') !== 'test-infra');
88
+ const appModelUnique = synthesis.modelUniqueIssues.filter((i) => (i.source ?? 'app') !== 'test-infra');
89
+ const testInfraIssues = [
90
+ ...synthesis.consensusIssues.filter((i) => i.source === 'test-infra'),
91
+ ...synthesis.videoOnlyIssues.filter((i) => i.source === 'test-infra'),
92
+ ...synthesis.modelUniqueIssues.filter((i) => i.source === 'test-infra'),
93
+ ];
94
+ // Consensus Issues by Severity (app only)
95
+ if (appConsensus.length > 0) {
78
96
  lines.push('## Consensus Issues');
79
97
  lines.push('');
80
98
  lines.push('Issues identified and confirmed across multiple analysis sources.');
81
99
  lines.push('');
82
- const byServerity = groupBySeverity(synthesis.consensusIssues);
100
+ const byServerity = groupBySeverity(appConsensus);
83
101
  ['P0', 'P1', 'P2'].forEach((severity) => {
84
102
  const issues = byServerity[severity] || [];
85
103
  if (issues.length > 0) {
@@ -112,13 +130,13 @@ function generateUXReport(config, synthesis) {
112
130
  }
113
131
  });
114
132
  }
115
- // Video-Only Issues
116
- if (synthesis.videoOnlyIssues.length > 0) {
133
+ // Video-Only Issues (app only)
134
+ if (appVideo.length > 0) {
117
135
  lines.push('## Video-Only Issues');
118
136
  lines.push('');
119
137
  lines.push('Issues detected only in video analysis (temporal, motion, or interaction patterns).');
120
138
  lines.push('');
121
- const byServerity = groupVideoIssuesBySeverity(synthesis.videoOnlyIssues);
139
+ const byServerity = groupVideoIssuesBySeverity(appVideo);
122
140
  ['P0', 'P1', 'P2'].forEach((severity) => {
123
141
  const issues = byServerity[severity] || [];
124
142
  if (issues.length > 0) {
@@ -139,13 +157,13 @@ function generateUXReport(config, synthesis) {
139
157
  }
140
158
  });
141
159
  }
142
- // Model-Unique Issues
143
- if (synthesis.modelUniqueIssues.length > 0) {
160
+ // Model-Unique Issues (app only)
161
+ if (appModelUnique.length > 0) {
144
162
  lines.push('## Model-Unique Issues');
145
163
  lines.push('');
146
164
  lines.push('Issues identified by a single analysis model. May indicate unique insights or model hallucinations.');
147
165
  lines.push('');
148
- synthesis.modelUniqueIssues.forEach((issue) => {
166
+ appModelUnique.forEach((issue) => {
149
167
  lines.push(`### ${issue.title}`);
150
168
  lines.push('');
151
169
  lines.push(`**Reported By:** ${issue.reportedBy}`);
@@ -158,6 +176,21 @@ function generateUXReport(config, synthesis) {
158
176
  lines.push('');
159
177
  });
160
178
  }
179
+ // Test Infrastructure Issues (separated section)
180
+ if (testInfraIssues.length > 0) {
181
+ lines.push('## Test Infrastructure Issues');
182
+ lines.push('');
183
+ lines.push(`These ${testInfraIssues.length} issue(s) appear to be test automation problems, not product issues.`);
184
+ lines.push('They are weighted at 0.25x in the adjusted score.');
185
+ lines.push('');
186
+ for (const issue of testInfraIssues) {
187
+ const desc = issue.description.length > 100
188
+ ? issue.description.substring(0, 100) + '...'
189
+ : issue.description;
190
+ lines.push(`- **[${issue.severity}] ${issue.title}** — ${desc}`);
191
+ }
192
+ lines.push('');
193
+ }
161
194
  // Disagreements
162
195
  if (synthesis.disagreements.length > 0) {
163
196
  lines.push('## Analyst Disagreements');
@@ -309,6 +342,8 @@ function generateReportJSON(config, synthesis, runId) {
309
342
  effort: issue.effort,
310
343
  evidence: issue.evidence,
311
344
  temporalInsight: issue.temporalInsight,
345
+ source: issue.source,
346
+ index: issue.index,
312
347
  });
313
348
  }
314
349
  for (const issue of synthesis.videoOnlyIssues) {
@@ -321,6 +356,8 @@ function generateReportJSON(config, synthesis, runId) {
321
356
  recommendation: issue.recommendation,
322
357
  timestamp: issue.timestamp,
323
358
  persona: issue.persona,
359
+ source: issue.source,
360
+ index: issue.index,
324
361
  });
325
362
  }
326
363
  for (const issue of synthesis.modelUniqueIssues) {
@@ -333,6 +370,8 @@ function generateReportJSON(config, synthesis, runId) {
333
370
  recommendation: issue.recommendation,
334
371
  reportedBy: issue.reportedBy,
335
372
  confidence: issue.confidence,
373
+ source: issue.source,
374
+ index: issue.index,
336
375
  });
337
376
  }
338
377
  // Collect unique model and persona names from evidence
@@ -351,6 +390,7 @@ function generateReportJSON(config, synthesis, runId) {
351
390
  generatedAt: new Date().toISOString(),
352
391
  projectName: config.name,
353
392
  score: synthesis.overallAssessment.uxScore,
393
+ adjustedScore: calculateAdjustedScore(synthesis),
354
394
  launchReadiness: synthesis.overallAssessment.launchReadiness,
355
395
  issueCount: issues.length,
356
396
  issues,
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/pipeline/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/pipeline/report.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,10 @@
6
6
  */
7
7
  import { QuorumUXConfig } from '../types.js';
8
8
  import { CostTracker } from '../utils/costs.js';
9
+ /**
10
+ * Generate a stable content-based issue ID from title + discriminator.
11
+ * Deterministic: same inputs always produce the same QUX-xxxxxxxx hash.
12
+ */
13
+ export declare function generateStableId(title: string, discriminator: string): string;
9
14
  export declare function synthesize(config: QuorumUXConfig, runDir: string, tracker?: CostTracker): Promise<void>;
10
15
  //# sourceMappingURL=synthesize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../../src/pipeline/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAgE,MAAM,aAAa,CAAC;AAI3G,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,wBAAsB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE7G"}
1
+ {"version":3,"file":"synthesize.d.ts","sourceRoot":"","sources":["../../src/pipeline/synthesize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,cAAc,EAAgE,MAAM,aAAa,CAAC;AAI3G,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAG7E;AAuBD,wBAAsB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE7G"}
@@ -6,9 +6,38 @@
6
6
  */
7
7
  import * as fs from 'fs';
8
8
  import * as path from 'path';
9
+ import { createHash } from 'node:crypto';
9
10
  import { callOpenRouter } from '../models/openrouter.js';
10
11
  import * as logger from '../utils/logger.js';
11
12
  import { loadJson, loadText } from '../utils/files.js';
13
+ /**
14
+ * Generate a stable content-based issue ID from title + discriminator.
15
+ * Deterministic: same inputs always produce the same QUX-xxxxxxxx hash.
16
+ */
17
+ export function generateStableId(title, discriminator) {
18
+ const normalized = `${title.toLowerCase().trim()}:${discriminator.toLowerCase().trim()}`;
19
+ return `QUX-${createHash('sha256').update(normalized).digest('hex').substring(0, 8)}`;
20
+ }
21
+ /**
22
+ * Post-process synthesis output: replace model-generated ordinal IDs
23
+ * with stable content-based hashes, preserving the ordinal as `index`.
24
+ */
25
+ function stabilizeIds(synthesis) {
26
+ let idx = 1;
27
+ for (const issue of synthesis.consensusIssues) {
28
+ issue.index = idx++;
29
+ issue.id = generateStableId(issue.title, issue.category || 'consensus');
30
+ }
31
+ for (const issue of synthesis.videoOnlyIssues) {
32
+ issue.index = idx++;
33
+ issue.id = generateStableId(issue.title, 'video');
34
+ }
35
+ for (const issue of synthesis.modelUniqueIssues) {
36
+ issue.index = idx++;
37
+ issue.id = generateStableId(issue.title, 'model-unique');
38
+ }
39
+ return synthesis;
40
+ }
12
41
  export async function synthesize(config, runDir, tracker) {
13
42
  logger.stage('Stage 3: Cross-Model Synthesis');
14
43
  tracker?.stageStart('Stage 3');
@@ -84,7 +113,8 @@ async function synthesizeWithModel(screenshotAnalyses, videoAnalyses, personaSum
84
113
  const jsonMatch = rawContent.match(/```(?:json)?\s*([\s\S]*?)```/) || [null, rawContent];
85
114
  const jsonStr = (jsonMatch[1] || rawContent).trim();
86
115
  try {
87
- return JSON.parse(jsonStr);
116
+ const parsed = JSON.parse(jsonStr);
117
+ return stabilizeIds(parsed);
88
118
  }
89
119
  catch (parseError) {
90
120
  logger.error(`Failed to parse synthesis response as JSON: ${parseError}`);
@@ -172,7 +202,7 @@ function buildSynthesisUserMessage(screenshotAnalyses, videoAnalyses, personaSum
172
202
  parts.push(`## Executive Summary`, executiveSummary, ``);
173
203
  }
174
204
  // Add synthesis instructions with JSON schema
175
- parts.push(`---`, ``, `## Your Synthesis Task`, ``, `Produce a JSON document with this structure:`, ``, `{`, ` "synthesisDate": "${new Date().toISOString().split('T')[0]}",`, ` "projectName": "${config.name}",`, ` "sourceCounts": {`, ` "screenshotAnalyses": ${successfulScreenshot.length},`, ` "videoAnalyses": ${successfulVideo.length},`, ` "testSummaries": ${personaSummaries.length}`, ` },`, ` "consensusIssues": [`, ` {`, ` "id": "ISSUE-001",`, ` "title": "Issue title",`, ` "severity": "P0|P1|P2",`, ` "category": "visual|functional|copy|accessibility|performance|interaction|layout",`, ` "description": "Detailed description",`, ` "evidence": {`, ` "screenshotModels": ["claude", "gemini"],`, ` "videoConfirmed": true,`, ` "testRunConfirmed": true,`, ` "affectedPersonas": ["persona1"]`, ` },`, ` "temporalInsight": "Video observation or null",`, ` "recommendation": "Actionable recommendation",`, ` "effort": "low|medium|high"`, ` }`, ` ],`, ` "videoOnlyIssues": [`, ` {`, ` "id": "VIDEO-001",`, ` "title": "Issue title",`, ` "severity": "P0|P1|P2",`, ` "description": "Description",`, ` "timestamp": "MM:SS",`, ` "persona": "persona",`, ` "recommendation": "Recommendation"`, ` }`, ` ],`, ` "modelUniqueIssues": [`, ` {`, ` "id": "UNIQUE-001",`, ` "title": "Issue title",`, ` "reportedBy": "claude|gemini|gpt4o",`, ` "severity": "P0|P1|P2",`, ` "description": "Description",`, ` "recommendation": "Recommendation",`, ` "confidence": "low|medium|high"`, ` }`, ` ],`, ` "disagreements": [`, ` {`, ` "topic": "Area of disagreement",`, ` "positions": { "claude": "position", "gemini": "position", "gpt4o": "position", "video": "position" },`, ` "recommendation": "How to resolve"`, ` }`, ` ],`, ` "overallAssessment": {`, ` "uxScore": 75,`, ` "launchReadiness": "ready|ready-with-caveats|not-ready",`, ` "topStrengths": ["strength1", "strength2", "strength3"],`, ` "criticalPath": ["fix1", "fix2"],`, ` "temporalInsightsSummary": "Summary of video-specific insights"`, ` }`, `}`, ``, `Rules:`, `1. **Consensus Issues** = 2+ screenshot models flagged OR (screenshot + video confirmation)`, `2. **Video-Only Issues** = Temporal problems ONLY caught by video (hesitation, timing, loading)`, `3. **Model-Unique Issues** = Only 1 screenshot model flagged, not confirmed by video`, `4. **Disagreements** = Models actively contradict each other`, `5. Prioritize P0 > P1 > P2 (P0 = ship blocker, P1 = first week, P2 = polish)`, `6. When video confirms screenshot finding, explicitly note the temporal insight`);
205
+ parts.push(`---`, ``, `## Your Synthesis Task`, ``, `Produce a JSON document with this structure:`, ``, `{`, ` "synthesisDate": "${new Date().toISOString().split('T')[0]}",`, ` "projectName": "${config.name}",`, ` "sourceCounts": {`, ` "screenshotAnalyses": ${successfulScreenshot.length},`, ` "videoAnalyses": ${successfulVideo.length},`, ` "testSummaries": ${personaSummaries.length}`, ` },`, ` "consensusIssues": [`, ` {`, ` "title": "Issue title",`, ` "severity": "P0|P1|P2",`, ` "category": "visual|functional|copy|accessibility|performance|interaction|layout",`, ` "source": "app|test-infra",`, ` "description": "Detailed description",`, ` "evidence": {`, ` "screenshotModels": ["claude", "gemini"],`, ` "videoConfirmed": true,`, ` "testRunConfirmed": true,`, ` "affectedPersonas": ["persona1"]`, ` },`, ` "temporalInsight": "Video observation or null",`, ` "recommendation": "Actionable recommendation",`, ` "effort": "low|medium|high"`, ` }`, ` ],`, ` "videoOnlyIssues": [`, ` {`, ` "title": "Issue title",`, ` "severity": "P0|P1|P2",`, ` "source": "app|test-infra",`, ` "description": "Description",`, ` "timestamp": "MM:SS",`, ` "persona": "persona",`, ` "recommendation": "Recommendation"`, ` }`, ` ],`, ` "modelUniqueIssues": [`, ` {`, ` "title": "Issue title",`, ` "reportedBy": "claude|gemini|gpt4o",`, ` "severity": "P0|P1|P2",`, ` "source": "app|test-infra",`, ` "description": "Description",`, ` "recommendation": "Recommendation",`, ` "confidence": "low|medium|high"`, ` }`, ` ],`, ` "disagreements": [`, ` {`, ` "topic": "Area of disagreement",`, ` "positions": { "claude": "position", "gemini": "position", "gpt4o": "position", "video": "position" },`, ` "recommendation": "How to resolve"`, ` }`, ` ],`, ` "overallAssessment": {`, ` "uxScore": 75,`, ` "launchReadiness": "ready|ready-with-caveats|not-ready",`, ` "topStrengths": ["strength1", "strength2", "strength3"],`, ` "criticalPath": ["fix1", "fix2"],`, ` "temporalInsightsSummary": "Summary of video-specific insights"`, ` }`, `}`, ``, `Rules:`, `1. **Consensus Issues** = 2+ screenshot models flagged OR (screenshot + video confirmation)`, `2. **Video-Only Issues** = Temporal problems ONLY caught by video (hesitation, timing, loading)`, `3. **Model-Unique Issues** = Only 1 screenshot model flagged, not confirmed by video`, `4. **Disagreements** = Models actively contradict each other`, `5. Prioritize P0 > P1 > P2 (P0 = ship blocker, P1 = first week, P2 = polish)`, `6. When video confirms screenshot finding, explicitly note the temporal insight`, `7. **Source classification**: For each issue, classify as "app" or "test-infra":`, ` - "test-infra" = problems in test automation, not the product:`, ` screenshot/video capture artifacts, test environment issues (localhost URLs,`, ` missing test data), automation timing (Playwright wait failures), cookie/auth`, ` state not set up, placeholder/mock data visible`, ` - "app" = real product issues visible to end users (default when uncertain)`);
176
206
  return parts.join('\n');
177
207
  }
178
208
  //# sourceMappingURL=synthesize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/pipeline/synthesize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/pipeline/synthesize.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -158,6 +158,10 @@ export interface ConsensusIssue {
158
158
  temporalInsight: string | null;
159
159
  recommendation: string;
160
160
  effort: 'low' | 'medium' | 'high';
161
+ /** Issue source: "app" (real product issue) or "test-infra" (test automation problem) */
162
+ source?: 'app' | 'test-infra';
163
+ /** Ordinal display counter (replaces model-generated sequential IDs) */
164
+ index?: number;
161
165
  }
162
166
  export interface VideoOnlyIssue {
163
167
  id: string;
@@ -167,6 +171,8 @@ export interface VideoOnlyIssue {
167
171
  timestamp: string;
168
172
  persona: string;
169
173
  recommendation: string;
174
+ source?: 'app' | 'test-infra';
175
+ index?: number;
170
176
  }
171
177
  export interface ModelUniqueIssue {
172
178
  id: string;
@@ -176,6 +182,8 @@ export interface ModelUniqueIssue {
176
182
  description: string;
177
183
  recommendation: string;
178
184
  confidence: 'low' | 'medium' | 'high';
185
+ source?: 'app' | 'test-infra';
186
+ index?: number;
179
187
  }
180
188
  export interface Disagreement {
181
189
  topic: string;
@@ -224,12 +232,18 @@ export interface ReportJSONIssue {
224
232
  /** Only present for model-unique issues */
225
233
  reportedBy?: string;
226
234
  confidence?: 'low' | 'medium' | 'high';
235
+ /** Issue source classification */
236
+ source?: 'app' | 'test-infra';
237
+ /** Ordinal display counter */
238
+ index?: number;
227
239
  }
228
240
  export interface ReportJSON {
229
241
  runId: string;
230
242
  generatedAt: string;
231
243
  projectName: string;
232
244
  score: number;
245
+ /** Adjusted score with test-infra issues discounted (undefined if no test-infra issues) */
246
+ adjustedScore?: number;
233
247
  launchReadiness: 'ready' | 'ready-with-caveats' | 'not-ready';
234
248
  issueCount: number;
235
249
  issues: ReportJSONIssue[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * QuorumUX — Scoring Utilities
3
+ *
4
+ * Shared scoring functions used by report generation and run comparison.
5
+ */
6
+ import type { Synthesis } from '../types.js';
7
+ /**
8
+ * Calculate an adjusted UX score that discounts test-infra issues.
9
+ *
10
+ * Returns undefined if no test-infra issues exist (adjusted = raw).
11
+ * Otherwise: reduces the severity weight of test-infra issues to 0.25x
12
+ * and proportionally adjusts the points lost from the raw score.
13
+ */
14
+ export declare function calculateAdjustedScore(synthesis: Synthesis): number | undefined;
15
+ /**
16
+ * Normalize a score to the 0-100 scale.
17
+ * If the score is <= 10, assume it's on a 0-10 legacy scale and multiply by 10.
18
+ */
19
+ export declare function normalizeScore(score: number): number;
20
+ //# sourceMappingURL=scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/utils/scoring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAiC/E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * QuorumUX — Scoring Utilities
3
+ *
4
+ * Shared scoring functions used by report generation and run comparison.
5
+ */
6
+ /** Severity weights for score adjustment calculation */
7
+ const SEVERITY_WEIGHT = { P0: 10, P1: 5, P2: 2 };
8
+ /** Discount factor applied to test-infra issues in adjusted score */
9
+ const TEST_INFRA_DISCOUNT = 0.25;
10
+ /**
11
+ * Calculate an adjusted UX score that discounts test-infra issues.
12
+ *
13
+ * Returns undefined if no test-infra issues exist (adjusted = raw).
14
+ * Otherwise: reduces the severity weight of test-infra issues to 0.25x
15
+ * and proportionally adjusts the points lost from the raw score.
16
+ */
17
+ export function calculateAdjustedScore(synthesis) {
18
+ const allIssues = [
19
+ ...synthesis.consensusIssues,
20
+ ...synthesis.videoOnlyIssues,
21
+ ...synthesis.modelUniqueIssues,
22
+ ];
23
+ const testInfraIssues = allIssues.filter((i) => i.source === 'test-infra');
24
+ if (testInfraIssues.length === 0)
25
+ return undefined;
26
+ const rawScore = normalizeScore(synthesis.overallAssessment.uxScore);
27
+ const pointsLost = 100 - rawScore;
28
+ if (pointsLost <= 0)
29
+ return rawScore;
30
+ // Calculate total weight and test-infra weight
31
+ let totalWeight = 0;
32
+ let testInfraWeight = 0;
33
+ for (const issue of allIssues) {
34
+ const w = SEVERITY_WEIGHT[issue.severity] || 0;
35
+ totalWeight += w;
36
+ if (issue.source === 'test-infra') {
37
+ testInfraWeight += w;
38
+ }
39
+ }
40
+ if (totalWeight === 0)
41
+ return rawScore;
42
+ // Adjusted total = app weight at 1x + test-infra weight at discount
43
+ const adjustedTotal = (totalWeight - testInfraWeight) + testInfraWeight * TEST_INFRA_DISCOUNT;
44
+ const adjustedPointsLost = pointsLost * (adjustedTotal / totalWeight);
45
+ return Math.round(100 - adjustedPointsLost);
46
+ }
47
+ /**
48
+ * Normalize a score to the 0-100 scale.
49
+ * If the score is <= 10, assume it's on a 0-10 legacy scale and multiply by 10.
50
+ */
51
+ export function normalizeScore(score) {
52
+ if (score <= 10)
53
+ return score * 10;
54
+ return score;
55
+ }
56
+ //# sourceMappingURL=scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/utils/scoring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wDAAwD;AACxD,MAAM,eAAe,GAA2B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAEzE,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAoB;IACzD,MAAM,SAAS,GAAG;QAChB,GAAG,SAAS,CAAC,eAAe;QAC5B,GAAG,SAAS,CAAC,eAAe;QAC5B,GAAG,SAAS,CAAC,iBAAiB;KAC/B,CAAC;IAEF,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAC3E,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEnD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,GAAG,GAAG,QAAQ,CAAC;IAClC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAErC,+CAA+C;IAC/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,WAAW,IAAI,CAAC,CAAC;QACjB,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClC,eAAe,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEvC,oEAAoE;IACpE,MAAM,aAAa,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC,GAAG,eAAe,GAAG,mBAAmB,CAAC;IAC9F,MAAM,kBAAkB,GAAG,UAAU,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;IAEtE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,GAAG,EAAE,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quorum-ux",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Multi-model consensus UX analysis from E2E test artifacts",
5
5
  "type": "module",
6
6
  "bin": {