2.7 KiB
Seriatim Minimal Transcript JSON
This document describes the Seriatim input format currently accepted by the
seriatim input adapter.
Adapter
- Module key:
seriatim - Document kind:
transcript - Unit kind:
transcript_segment - Source format:
application/vnd.seriatim.minimal+json
The adapter parses raw Seriatim JSON into a generic SourceDocument. It does
not add transcript-specific fields to core source or runner contracts.
Accepted Shape
The input must be a JSON object with top-level metadata and segments fields:
{
"metadata": {
"id": "session-alpha",
"title": "Synthetic session transcript"
},
"segments": [
{
"id": "seg-001",
"start": 0,
"end": 4.5,
"speaker": "Narrator",
"text": "The stone door opens."
}
]
}
Extra compatible fields are ignored. Multiple top-level JSON values are rejected.
Validation
The adapter rejects:
- empty raw input;
- malformed JSON;
- missing, null, or non-object
metadata; - missing, null, non-array, or empty
segments; - empty segment IDs;
- segment IDs with leading or trailing whitespace;
- duplicate segment IDs;
- missing or empty
speaker; - missing, empty, invalid, non-finite, or negative
start; - missing, empty, invalid, non-finite, or negative
end; endvalues beforestart;- missing or empty
text.
Segment text may keep leading or trailing whitespace, but it must not be empty after trimming.
Source Mapping
The adapter maps Seriatim input into the source model as follows:
- top-level
metadatabecomesSourceDocument.Metadata; SourceDocument.Digestissha256:<hex>of the exact raw input bytes;segment.idbecomesSourceUnit.ID;segment.textbecomesSourceUnit.Text;- each source unit has kind
transcript_segment; - segment
speaker,start, andendare stored in source-unit metadata.
SourceDocument.ID is selected in this order:
- the parse request source ID, after trimming;
metadata.id, when it is a non-empty string after trimming;metadata.source_id, when it is a non-empty string after trimming;seriatim:<first-16-hex-chars-of-raw-sha256>.
Metadata Keys
Seriatim unit metadata uses these keys:
speaker: string speaker label;start:json.Numberstart value;end:json.Numberend value.
The internal/modules/input/seriatim package provides typed accessors for
these metadata values.
Capabilities
The module declares these provided capabilities for pipeline validation:
source.transcripttranscript.speakertranscript.timestamps
Limits
Only the Seriatim minimal transcript shape described here is supported. Broader Seriatim schema variants are not currently accepted as a compatibility contract.