# Local passage review export, version 1

The call-review tool downloads reviewer observations as JSON. It does not upload them, infer missing ratings, calculate an improvement or publish a result. Keep this file under the same access rules as the source recording: reasons and the stated task are free text and may contain information you entered.

Schema: https://oruk.ai/examples/call-review-export-v1.schema.json
Guide: https://oruk.ai/guides/call-review-python#reviewer-export

## Source and interpretation

- `schema_version` is `1`.
- `source_classification` defaults to `unverified`. Choose `demonstration` for the supplied example or a software fixture. Choose `reviewer_pilot` only for an authorized review with a stated task. `classification_basis` is always `reviewer_declared`; this is not evidence of consent or independence.
- `source.response_sha256` hashes the exact response-file bytes when generated by the CLI (`hash_basis: source_file_bytes`). When the Python `render_report` function is called directly without that hash, it hashes UTF-8 JSON with sorted keys, no extra whitespace and unescaped Unicode (`canonical_json_utf8`). Keep the original response to verify the hash. Hash equality establishes byte identity, not authenticity.
- `source.model` and `source.model_revision` preserve returned values. Missing values stay null. A model alias or a response-file hash is not an immutable model revision.
- `question` records the exact question shown to the reviewer; `review_task` records the task entered before the review.
- `independently_verified` and `publication_approved` are always false. A reviewer choosing "pilot" does not change them.

## Every passage stays in the export

`passages` includes every original segment in its original order, even if the search filter hides it. `segment_index` is a zero-based position in the source response, not a global recording ID. `start_seconds` and `end_seconds` preserve its interval.

`usefulness` is `useful`, `not_useful`, `uncertain`, or null for not reviewed. `reason` is the optional note (up to 2,000 characters). The export omits transcript text, audio, speaker IDs, response IDs and model scores. It contains the notes you entered and the model identifiers supplied by the response; check them before sharing.

`review_duration_ms` is accumulated elapsed time from the explicit Start/Pause controls. Only one passage timer runs at a time. Switching passages, filtering out the timed passage or hiding the document pauses it. The clock does not start again automatically. If never started, the value is null rather than zero. The timing method is `manual_start_pause_visible_page`; it does not measure attention, work in another application, or model inference latency.

The JSON schema checks field shapes. A consumer must also check each end exceeds its start and that segment indices and intervals match the hashed response. Reject added, missing, reordered or mismatched passages rather than silently joining them to another recording. An empty segment list produces an empty review, not an accuracy result.

## Collecting an evaluation

Define the task, eligible recordings, reviewer instructions and reporting window before collecting judgments. Use recordings you have permission to review. Keep demonstration/test exports separate from pilot observations and preserve unanswered passages and uncertain judgments in the reported counts. No reviews are supplied with this software.

The panel displays model annotations alongside the recording. It is not a model-blind label collection tool, and these usefulness answers must not be used as independent emotion ground truth. To compare with an existing workflow, collect a real baseline under comparable conditions and declare how recordings and reviewers are assigned. Manual timings alone do not establish time saved, causal improvement, customer satisfaction or production readiness.

There is no automatic persistence. Download and inspect the JSON before closing or reloading. Nothing is published by this tool; obtain permission for any eventual customer story and its exact claims.
