4.7 KiB
Operations
This guide describes the implemented operator lifecycle for Narratio.
For field-level configuration, see docs/config.md. For full command/flag reference, see docs/cli.md.
Normal workflow (S3-first path)
- Upload session
.flacfiles to object storage under the session audio prefix. - Run Narratio:
narratio run --session-id 2026-04-04
- Read success output:
narratio run: session <session_id>; executed=<n> skipped=<n>; manifest=<path>- use
manifest=<path>withstatusfor inspection.
Notes:
- default config/session discovery applies unless
--configand--sessionare passed. - S3 audio mode requires
session.inputs.audio_s3.prefixand valid object-store access.
Local filesystem layout and state artifacts
Session root:
{workspace.root}/work/{campaign}/{session_id}/
Primary state:
manifest.json: session-level stage state.runs/{run_id}/manifest.json: invocation-level state..lock: session lock while a run is active.
Canonical session directories:
inputs/audio/transcripts/artifacts/reports/logs/config/current/runs/
Run-local stage directories:
runs/{run_id}/{stage}/with stage-localoutputs/,logs/,reports/,config/,scratch/.
Behavior:
- directory creation is idempotent.
- stage outputs are generally generated run-local first, then promoted to canonical paths on success.
Analyze artifact execution lifecycle
Analyze executes configured artifacts from pipeline.scriptorium.artifacts.
Execution model:
- executable set = enabled artifacts, filtered by
--artifactswhen provided. - artifact-to-artifact dependencies are declared via
depends_on. - selected artifacts run in deterministic dependency order.
- after each successful artifact run, output is promoted to configured canonical
output_path.
Configured artifact source reuse:
- a non-executable configured artifact can satisfy inputs if its configured output file already exists and is valid.
- reused configured artifact provenance is
filesystem.disabled_artifact_output.
--artifacts behavior:
- accepted on
run,resume, andrun-stage analyze. - filters analyze execution only; does not force stage rerun.
Remote archive layout and publish contract
When archive is enabled and run upload is enabled, archive publishes under:
- session prefix:
{root_prefix}/campaigns/{campaign}/sessions/{session_id}/ - run prefix:
{session_prefix}/runs/{run_id}/
Archive uploads:
- run record files from run root (excluding
audio/). - promoted files from explicit
archive.promote_artifactsrules.
Publish order:
- upload
current/manifest.json - upload
current/run_id.txtlast
current/run_id.txt is the remote commit marker.
Archive promotion is explicit and path-based:
- Narratio does not auto-promote all generated analyze artifacts.
- missing required promotion sources fail archive stage.
- missing optional promotion sources are skipped.
Resume, retry, and safe rerun behavior
Default skip:
runandrun-stageskip already-succeeded stages unless--forceis set.
Resume:
resumestarts at first non-succeeded stage.resume --forceruns full stage order.
Forced reruns:
- force-rerunning an upstream succeeded stage marks downstream succeeded stages as
stale.
Safe rerun pattern:
- rerun the changed stage with
--force. - run
resumeto rebuild downstream stages.
Cleanup behavior
Cleanup is considered only when archive stage executed and succeeded.
Cleanup toggles:
pipeline.spool.delete_audio_after_archive=truedeletes run-scoped spool audio.pipeline.workspace.cleanup_after_archive=truedeletes run-scoped local run directory.
Cleanup eligibility gates:
- archive enabled
- archive run upload enabled
- run record upload completed
- current pointer write completed (
current/run_id.txtwritten)
No cleanup for failed/incomplete/unarchived/archive-skipped runs.
Failure and recovery playbooks
After failure, Narratio keeps:
- session manifest
- run manifest
- run-local artifacts/logs/config/reports
Failed or incomplete runs remain local-only.
Recommended recovery:
- inspect state:
narratio status --manifest <manifest-path>
- fix root cause (config/input/credentials/service availability).
- continue with
resume, or targetedrun-stage --forcefollowed byresume.
Operational caveats
statusrequires explicit--manifest; there is no session-id lookup command.- local and S3 audio input modes are mutually exclusive.
- archive publish requires upstream stages through
analyzeto besucceeded. - required promotion rules can fail when selected analyze artifacts did not generate a required file path.