1.8 KiB
1.8 KiB
Stage: merge
Purpose
Normalize raw transcript inputs and merge into base transcript via Seriatim.
Inputs
transcripts/raw/*.jsoninputs/speakers.ymlinputs/autocorrect.yml
Outputs
transcripts/base.json- optional
artifacts/seriatim.report.json
Key Behavior
- discovers and validates raw transcript inputs.
- normalizes each raw transcript (
seriatim.Normalize) into run-local scratch output. - merges normalized inputs (
seriatim.Run) into base transcript. - validates merged transcript and optional report JSON.
- materializes canonical outputs and records stage logs/generated configs.
Invariants
- merge always consumes normalized forms of raw inputs.
- base transcript must validate before stage success.
- report output is config-gated.
Resume Evidence
Merge records a versioned semantic-configuration fingerprint for the Seriatim merge operation, output schema, coalesce gap, and every configured advanced merge transformation. A change reruns merge and stales only its fixed descendants; prepare and transcribe remain reusable. Binary path, timeout, report emission, logs, and diagnostic retention are operational exclusions.
Configuration or resources loaded privately inside Seriatim are outside
Narratio's observable contract and require --force when changed. An existing
successful merge record without evidence reruns once when selected.
Related Contracts And Tests
- Seriatim owns subprocess and output semantics.
- Configuration owns operator-selected Seriatim values.
- Implementation and tests:
internal/stage/merge.go,internal/stage/merge_test.go,internal/stage/semantic_contracts_initial.go, andinternal/stage/semantic_contracts_initial_test.go