With evals — generate, retrieve video, log quality scores
... (same generation flow above)loop: GET /api/v1/fragments/:fragmentId/evals until evalPipelineRun.status === "COMPLETED"→ write rubric score, per-kind status to a sheet→ optionally: GET /api/v1/evals/pipeline-runs/:pipelineRunId/issues → write individual issues to a separate sheet tab
POST /api/v1/fragments/:fragmentId/music { "random": true } → { ok: true, trackSlug, track }loop: GET /api/v1/fragments/:fragmentId/music until status === "completed" or "failed"GET /api/v1/fragments/:fragmentId/signed-video → refreshed URL with audio