---
title: Glue JSON Output
published: true
index: 20
---

# Save the report as Glue JSON

Save the complete report using the shared [Glue result schema](glue-result.schema.json), an export of Glue's `currentModelReviewResultBase` (`glue-review/v19`). Keep installed copies identical. A host-pinned schema/runtime overrides the bundle for its run; never mix versions or fields.

## Source and compatibility

Source: `src/server/reviews/review-result.schema.ts` and `src/lib/review-runtime.ts` in BrickspaceLab/glueclaw at `a23cebeabce876cd43129c18867c8720d8509418`. The schema's `$comment` records the source SHA-256. This is the model-input shape, not normalized database output or the setup fence.

The local bundle needs no Glue checkout, package installation or active connection. Synchronize intentional schema updates across copies; do not adapt the schema per run.

## Artifact first, then chat

1. Resolve the catalog and runtime before evaluation. Preserve host-pinned inputs; outside Glue, save selected catalog/assessment IDs, titles, versions and source identity in an external provenance artifact, not extra result fields.
2. Record outcomes as work proceeds. Save one complete `report.json` in a host run directory outside Store Skills and the target repo. For the bundle, use `runtime: "glue-review/v19"`. Include `data`, `findings`, `issues`, `changes`, `strengths`, `coverageOutcomes` and `limitations`, even when empty. Omit optional aggregate `score`; put PIE rationale in existing text fields. Add no summary, notice, catalog, arbitrary metadata or collections.
3. Parse, schema-validate and read back the saved file. Check result eligibility, metric definitions, categories, selected IDs and reciprocal references. Raw metrics or a ledger alone are incomplete.
4. In ordinary chat, link `report.json` and summarize **every Issue**, in report order. Show a “Failed Check” label/column with each contributing Check's exact title, resolved through coverage references and the pinned catalog; include all titles when an Issue groups Checks. Include priority when present, page/surface, problem and recommended action. An Issue title or ID alone cannot replace Check titles. Distinguish hypotheses from confirmed defects, report actual coverage and material blockers, and include useful measured highlights/experiment opportunities. If no Issues qualify, say so within the evaluated scope. Keep the full ledger in JSON; screenshots may use real host artifact paths. Derive chat and optional Markdown strictly from the saved JSON.
5. In Glue or a bare-result runner, return the complete object without prose, fences or file-link substitution. The host handles storage/rendering; do not bypass its guards with CLI/filesystem workarounds.

If local persistence is unavailable, return complete JSON inline and state the storage limit separately when permitted. If validation tooling is unavailable, parse and manually check constraints, disclose the missing schema validation and do not claim validation. Retain partial evidence and serialization blockers; never claim an unsaved artifact exists or switch schemas/format to avoid an error.

## Required semantic checks

Reconcile outcomes against actual assertion evidence before serialization. Retain exact routes/entities, states, conditions, expected behavior, observations and sources in permitted detail fields or linked artifacts. Statuses, valid JSON, image inventories and counts do not prove testing. Explain changed outcomes with comparable evidence; preserve reproduced contradictions and source/Check-version or sampling changes. Add no assertion fields to the schema.

- **Coverage:** `coverageOutcomes` uses `coverageIds`, `status`, `detail`, `dataIds`, `findingIds`, `issueIds` and `limitationIds`. Every selected ID has one terminal outcome. Use `completed`, `pass`, `fail`, `blocked` or `not_applicable`; group only identical meaning/references, never display-label enums.
- **References:** each `fail` references exactly one existing canonical Issue; other statuses have no Issue references. Each `completed` references Data or a Finding. Each `blocked` has an exact diagnostic and shared Limitation references, with no Data/Finding references. Only blocked outcomes reference Limitations, reciprocally through `affectedCoverageIds`. Partial sampling/missing cells on evidenced completed/failed Checks stay in detail/artifacts; retain measured Data and truthful scope. Resolve every reference and retain Pass/Not-applicable evidence.
- **Eligibility:** Findings contain observations, Issues actions, Changes comparable `improved`, `regressed` or `resolved` evidence. Audits keep Findings empty; drift keeps Changes empty; performance/funnel use Data and supported Issues. Keep strengths empty unless the skill permits a useful entry.
- **Data:** use declared `definitionKey`, finite numeric `value` in normalized units and declared `dimensions`. Omit missing measurements; never substitute null/zero. Every Data item/Finding needs coverage references; every Issue needs failed coverage. Evidence belonging only to blocked Checks stays in linked artifacts/detail/Limitations, not unreferenced Findings. Add no undeclared keys, units inside values, screenshots on Data or custom fields.
- **Categories:** use declared top-level categories only; omit `category` when none exist. Results and referencing Checks share a category. Preserve source categories separately when planning across reports.
- **IDs:** stable nonempty strings contain letters, digits, dots, underscores or hyphens. Reserve `glue-` for Glue. Qualify source identities when report-local IDs could collide.
- **Screenshots:** Findings/Issues use `url`, `alt`, `caption` and `sourceUrl`. Use approved Glue evidence URLs or real local file URLs when supported, retaining the absolute path in `sourceLocation`/detail. Never fabricate uploads or infer Glue access from a valid file URL. Keep successful captures even without cloud upload; add no local-only schema fields.

Schema validation proves structure. The skill still must prove measurements, source binding, authentic captures, evaluation completeness and experiment assignment.
