Reintroduce normalize stage scaffold

This commit is contained in:
2026-05-10 21:26:53 +00:00
parent 7d61901585
commit 86d2dfa6c5
12 changed files with 272 additions and 94 deletions

View File

@@ -10,6 +10,7 @@ Implemented now:
- local workspace/session layout, locking, and manifest persistence
- resumable stage control (`run`, `plan`, `resume`, `run-stage`, `status`)
- real `prepare`, `transcribe`, `merge`, `polish`, `trim`, and `analyze` stages
- placeholder `normalize` stage
- real WhisperX, Seriatim, and Audita adapters
- real Scriptorium subprocess adapter
- optional Scriptorium render diagnostics (`render_debug`)
@@ -36,15 +37,17 @@ YAML decoding is strict (`KnownFields(true)`), so unknown fields fail fast.
2. `transcribe`
3. `merge`
4. `polish`
5. `trim`
6. `analyze`
7. `archive`
8. `notify`
5. `normalize`
6. `trim`
7. `analyze`
8. `archive`
9. `notify`
## Transcript Tiers
- `transcripts/merged.json`: canonical deterministic merged transcript from Seriatim merge
- `transcripts/processed.json`: full polished transcript from Audita polish
- `transcripts/normalized.json`: placeholder normalized transcript (Seriatim schema pass-through for now)
- `transcripts/trimmed.json`: gameplay-only polished transcript from trim stage
## Trim Configuration
@@ -83,9 +86,9 @@ trim:
Trim behavior summary:
- trim discovers and validates `transcripts/processed.json`
- trim discovers and validates `transcripts/normalized.json`
- trim uses Scriptorium bounds (`dnd_session.bounds` by example config) to produce `artifacts/session_bounds.json`
- bounds IDs are validated against the same processed transcript ID space that Seriatim trim will consume
- bounds IDs are validated against the same normalized transcript ID space that Seriatim trim will consume
- trim converts bounds to Seriatim keep selector (for example `10-868`) and runs Seriatim trim
- if trim is disabled, Narratio copies processed transcript to trimmed transcript and records `trim_action=copy_disabled`
@@ -233,8 +236,8 @@ If prepared inputs or prompt/runtime config change, rerun the appropriate upstre
Examples:
- glossary/autocorrect/speaker-context changes: rerun at least `merge`, `polish`, `trim`, and `analyze`
- trim bounds prompt/profile/config changes: rerun at least `trim` and `analyze`
- glossary/autocorrect/speaker-context changes: rerun at least `merge`, `polish`, `normalize`, `trim`, and `analyze`
- trim bounds prompt/profile/config changes: rerun at least `normalize`, `trim`, and `analyze`
- session recap prompt/profile/input-source changes: rerun `analyze`
## Roadmap