Files
narratio/README.md

2.1 KiB

narratio

narratio is a Go-based orchestration application for processing D&D session audio into transcripts and downstream artifacts.

This repository currently contains a working scaffold with strict config loading, local workdir/manifest handling, resumable stage control, and placeholder adapters/stages.

Expected Config Files

narratio expects two YAML files:

  • pipeline.yml: pipeline/workspace settings (workspace, storage, whisperx, seriatim, audita, analyzer, notification)
  • session.yml: per-session settings (session_id, inputs, optional metadata)

WhisperX config contract in pipeline.yml:

  • required: whisperx.transcribe_url
  • defaulted when omitted: whisperx.language (en), whisperx.timeout (30m), whisperx.retries (3), whisperx.retry_delay (2s), whisperx.concurrency (2)

Decoding is strict (KnownFields(true)), so unknown YAML fields fail fast.

Example minimal files are available under examples/:

  • examples/pipeline.minimal.yml
  • examples/session.minimal.yml

Current Scaffold Status

Implemented in scaffold form:

  • strict config load + validation
  • local artifact/workdir creation and locking
  • manifest create/load/save and stage status tracking
  • stage framework with real prepare stage and placeholder downstream stages
  • resumable run control (run, resume, run-stage, plan with run/skip decisions)
  • fake/no-op adapters for external tool boundaries

Not implemented yet:

  • real WhisperX HTTP integration
  • real Seriatim execution
  • real Audita execution
  • real analyzer integration
  • real remote archive/storage backend
  • real notification backend

Run Tests

go test ./...

Run Plan

go run ./cmd/narratio plan --config examples/pipeline.minimal.yml --session examples/session.minimal.yml

Run Placeholder Pipeline

The current run command executes available scaffold behavior (prepare + placeholder stages) and records progress in manifest.json.

go run ./cmd/narratio run --config examples/pipeline.minimal.yml --session examples/session.minimal.yml