Issue & Report Types
From packages/shared/src/types.ts — the canonical shapes re-exported by
@frontend-qa/shared and used across core, browser, cli, and
mcp-server.
EvidenceType
Section titled “EvidenceType”type EvidenceType = | 'Measured' | 'Observed' | 'StaticAnalysis' | 'Heuristic' | 'Inferred' | 'Unavailable';Severity
Section titled “Severity”type Severity = 'critical' | 'high' | 'medium' | 'low' | 'info';interface IssueSource { url?: string; line?: number; column?: number;}
interface IssueElement { selector?: string; snippet?: string;}
interface Issue { id: string; collector: string; category: string; severity: Severity; route: string; title: string; description: string; evidence: EvidenceType; source?: IssueSource; element?: IssueElement; metadata: Record<string, unknown>; suggestedNextStep?: string;}| Field | Meaning |
|---|---|
id |
Stable identifier for this finding |
collector |
Which collector produced it, e.g. browser.console, static.dead-export |
category |
Sub-classification within the collector |
severity |
critical | high | medium | low | info |
route |
The route the issue was found on (or the file path context for static) |
evidence |
How it was found — see Core Concepts |
source |
File/line/column, when known |
element |
DOM selector/snippet, when known (runtime collectors) |
metadata |
Collector-specific extra data |
suggestedNextStep |
Optional human-readable hint |
Report
Section titled “Report”interface ReportTarget { url: string; framework?: 'react' | 'next' | 'unknown';}
interface ReportArtifacts { screenshots: string[]; har?: string;}
interface Report { schemaVersion: '1'; runId: string; startedAt: string; finishedAt: string; target: ReportTarget; config: unknown; routesScanned: string[]; issues: Issue[]; artifacts: ReportArtifacts;}config holds the exact resolved ResolvedConfig
that produced this run, so a report.json is self-describing.
Where these are validated
Section titled “Where these are validated”packages/shared/src/schemas.ts defines the Zod counterparts
(issueSchema, reportSchema, configSchema) these types are inferred
from/validated against.