skald/migrations
Kayos 89c35fd9d3 narrate: body_md_tts column + narrate_prep pass + Kokoro routing
Two new things working together:

1. Migration 0005 adds chapters.body_md_tts (nullable). Narrate path
   prefers it over body_md when present — that's the annotated-for-
   audiobook variant. Falls back to body_md if not set.

2. New Forge::narrate_prep pass: author (or House) annotates prose
   with [breath] / [pause:Xs] / [scene] beat markers AND occasional
   humanizing narrator stumbles (em-dash repetition, self-correction,
   hesitation — sparingly, 1-3 per chapter). Apart from stumbles, the
   prose is verbatim. Author voice threads through.

3. New CLI: 'skald prepare-narration --chapter <uuid> [--author slug]
   [--overwrite]'. Records as generation_runs row kind=narrate_prep.

4. skald narrate now routes by voice.source — kokoro_* voices hit
   KOKORO_URL (Apache 2.0 stack, audiobook-tuned with the v0.2 render-
   and-stitch server), everything else hits F5_TTS_URL (voice-cloning
   path). Voice DB row carries source as the dispatch key.

Why no new tag for narrator stumbles: em-dash repetition and self-
correction are just prose patterns Kokoro reads correctly because of
its punctuation cues. No new server-side machinery.
2026-05-13 20:24:38 -07:00
..
0001_init.sql scaffold v0.1: postgres+pgvector inside-container, schema, markdown ingest, CLI 2026-05-13 09:04:28 -07:00
0002_voices_and_pronunciation.sql schema: voices + pronunciation_overrides + narration_runs (v0.2 prep) 2026-05-13 10:07:32 -07:00
0003_narration_findings.sql schema: narration_findings — audio-layer audit table 2026-05-13 10:10:04 -07:00
0004_authors.sql v0.3 step 1: migration 0004 + authors module + web form panels 2026-05-13 12:01:29 -07:00
0005_chapter_body_md_tts.sql narrate: body_md_tts column + narrate_prep pass + Kokoro routing 2026-05-13 20:24:38 -07:00