Following Phase 3 (T432308), the generator is deployed to staging with the NeMo cache baked into the image, artifact sinks behind one interface, the timeout chain provisioned at 600 s end to end, and the normalization ruleset finalized (norm-2026.07.20). The Prep Pantry intake document we will bring to the Data Engineering team still carries calibration-derived estimates where it should carry measurements: storage and audio-hour projections derived from character counts and a chars-per-audio-second constant, throughput math derived from isvc benchmarks rather than the full path, skip rates measured only at scan level, and failure rates that are guesses. In this task, we shall run a pilot over ~50 Featured Articles and replace those estimates with measured v1 numbers.
- The pilot driver: deliberately a script, not a pipeline. We shall write a small driver that draws ~50 articles from the committed corpus scan snapshot (corpus_scan.json), reusing its pinned revisions, so the run is reproducible against a fixed population: the Phase 3 rescan demonstrated that a seed alone does not reproduce a sample when the Featured Article category changes underneath it, and revision pinning makes the run immune to edits. The driver shall enumerate each article's sections via GET /sections, invoke POST /generate-section for every generatable section through the mesh ingress (the same path the DE pipeline will call, validated in Phase 3 with the corpus-max section), request the full artifact family (audio_opus, audio_mp3, captions_vtt, timestamps_json), and append every outcome (success with timings and sizes, deterministic skip with taxonomy code, transient failure with retry count) to a results log. Concurrency shall be bounded to the isvc replica count so requests never queue at the inference service, since activator queue time counts against the Knative revision timeout; at the current single staging replica this is a serial run of several hours, and the driver shall therefore be idempotently resumable by consulting its own results log (which is a restart convenience, not a queue). It shall have no queue, no scheduler, no index, and no event consumption: those are the DE pipeline's job, and the moment this script grows them we have rebuilt v0's Celery layer and un-drawn the boundary the intake document draws. The staging service shall keep its current inline sink; the driver shall decode responses and write artifacts to a local scratch tree under the canonical revision-scoped key layout, so the pilot requires no deployment changes.
- The measured numbers pack. From the results log and the artifact tree, we shall produce a one-page pack containing: real per-section Opus and MP3 sizes (the codec comparison for Apps) with the corpus storage projection, replacing the calibration-derived estimate; the per-section latency distribution through the full fetch, normalize, synthesize, transcode path (p50/p90/p99/max), which isvc-only benchmarks cannot see; skip rates by taxonomy code and failure modes actually encountered, so DE's retry and dead-letter design starts from observed reality; sections-per-article and audio-hours-per-article statistics that firm up the corpus-size estimate (~81k generatable sections per the Phase 3 scans) and the pod-day math; measured chars-per-audio-second and effective RTF at pilot scale, replacing the five-section calibration from the timeout spike; and the effective per-pod throughput of the full path, from which we shall derive a maxReplicas recommendation for the isvc (corpus drain time as a function of replica count, measured directly at the full-alignment tier and derived for the audio-only tier from the isvc's measured RTF ratio).
- The memory envelope decision. The pilot shall record the generator pod's memory.peak across the run, completing the Phase 3 finding that the corpus tail sizes the memory envelope: the 3 GiB staging limit was set from a measurement inflated by an in-cgroup driver, and this run's external driver yields the clean peak from which we shall set the permanent limit.
- The listening spot-check. We shall listen to a sample of the generated audio across article types (history, science, biography, music), since normalization regressions are audible rather than visible in logs: number and unit expansion, abbreviation handling, foreign names, and any non-spoken content that survived extraction. The checklist shall be seeded with the caption and normalization observations catalogued during Phase 3 (zero-duration trailing words at segment boundaries, punctuation carried into captions, letter-digit designations, abbreviation edge cases). Defects found shall be filed (and fixed with regression tests where they are extraction or normalization bugs, following the Phase 3 pattern); systematic quality questions shall be recorded for the voice/normalization evaluation rather than patched ad hoc.
- Intake document update. We shall append the numbers pack to the Prep Pantry intake document and replace its estimate-marked rows (storage volume, audio hours, capacity envelope, per-section wall times) with the measured values, so the document DE reviews contains observed data from the actual compute function their pipelines would invoke.
Acceptance criteria: the pilot run completed over ~50 articles with a committed results log and summary script; the one-page measured numbers pack appended to the intake document with every estimate row replaced or explicitly reconfirmed; the maxReplicas recommendation written down with its derivation; the permanent generator memory limit set from the measured clean peak; the listening spot-check performed with findings filed; and the driver script committed as a reference client for the generator's contract (useful to DE as documentation, not as a component).
Scope of this task: the pilot run and its analysis only. Tracked separately:
- The DE engagement itself: sharing the intake document and scheduling the design session are the follow-on step this task arms, not part of it.
- The maxReplicas change: this task produces the recommendation; the capacity change is a team decision and a separate deployment patch.
- Full-corpus generation: the ~7k-article drain is the DE batch pipeline's inaugural run, not a bigger pilot.
- Voice/normalization quality evaluation: the listening spot-check surfaces issues; a systematic listening eval (voice selection, quantized-model comparison) remains separately tracked.
- DE / Data Persistence / Traffic layers: unchanged ownership per the intake document.