Context
Report artifacts are the documented CI-triage and support-handoff format, and their stable summary is intended to answer basic questions without parsing the whole graph.
Evidence-backed R&D brief
book/advanced/ch15-studio.md:123,129 and the Korean companion document seven stable report summary fields.
packages/studio/src/contracts.ts:48 already exposes StudioReportArtifact in parsed payloads.
packages/studio/src/entities/studio/model.ts:24-26 drops report summary from viewer state.
packages/studio/src/widgets/static-report/ui/StaticReportPanel.tsx:15,29-30 derives partial counts from the snapshot instead.
packages/studio/src/contracts.test.ts:963,993,995 does not assert the complete canonical summary.
Contract impact and affected surfaces
This is additive viewer behavior using an existing artifact schema. Viewer state, StaticReportPanel, deterministic tests, and README EN/KO are affected; no migration is required.
Preserve-contract resolution direction
Retain payload.report in typed state and render all seven canonical summary fields for report artifacts, keeping snapshot-derived summary as the fallback for raw snapshots and timing envelopes.
Why act now
The data and public parser contract already exist, but the packaged viewer hides the summary that gives report artifacts their documented triage value.
Context
Report artifacts are the documented CI-triage and support-handoff format, and their stable summary is intended to answer basic questions without parsing the whole graph.
Evidence-backed R&D brief
book/advanced/ch15-studio.md:123,129and the Korean companion document seven stable report summary fields.packages/studio/src/contracts.ts:48already exposesStudioReportArtifactin parsed payloads.packages/studio/src/entities/studio/model.ts:24-26drops report summary from viewer state.packages/studio/src/widgets/static-report/ui/StaticReportPanel.tsx:15,29-30derives partial counts from the snapshot instead.packages/studio/src/contracts.test.ts:963,993,995does not assert the complete canonical summary.Contract impact and affected surfaces
This is additive viewer behavior using an existing artifact schema. Viewer state, StaticReportPanel, deterministic tests, and README EN/KO are affected; no migration is required.
Preserve-contract resolution direction
Retain
payload.reportin typed state and render all seven canonical summary fields for report artifacts, keeping snapshot-derived summary as the fallback for raw snapshots and timing envelopes.Why act now
The data and public parser contract already exist, but the packaged viewer hides the summary that gives report artifacts their documented triage value.