The biggest single TTS saving. The bake (skill/lib/audio-bake.ts) already content-addresses each clip — script_hash = sha256(JSON(segments)) (hashSegments) — and reuses it WITHIN a lesson (audio_clips table, status reused). Lift that reuse to the central catalog so it's CROSS-lesson.
Design
Caveat / dependency
Reuse needs byte-identical script text + same persona → lessons must INHERIT the same foundation text, not paraphrase. (This is the concrete reason inheritance must share TEXT.)
Evidence (2026-06-24)
Phase-2 (acute deep-dive) and Phase-3 (pericardial-disease class survey) each re-baked the same pericardial foundation narration — pure waste a (script_hash, voice) cache eliminates.
PRD: prd/chiron_lesson_scope_and_reuse_2026-06-24.md §4b · Epic: #6
The biggest single TTS saving. The bake (
skill/lib/audio-bake.ts) already content-addresses each clip —script_hash = sha256(JSON(segments))(hashSegments) — and reuses it WITHIN a lesson (audio_clipstable, statusreused). Lift that reuse to the central catalog so it's CROSS-lesson.Design
Caveat / dependency
Reuse needs byte-identical script text + same persona → lessons must INHERIT the same foundation text, not paraphrase. (This is the concrete reason inheritance must share TEXT.)
Evidence (2026-06-24)
Phase-2 (acute deep-dive) and Phase-3 (pericardial-disease class survey) each re-baked the same pericardial foundation narration — pure waste a (script_hash, voice) cache eliminates.
PRD:
prd/chiron_lesson_scope_and_reuse_2026-06-24.md§4b · Epic: #6