Operations

Diagram source (live Mermaid)
Canonical project flow
video initvideo briefvideo storyboardvideo assetsvideo review-uiorvideo review-autopilotfor production handoff;video review --verdict passonly when equivalent review evidence already existsvideo publish
Publish handoff is canonical only when review-report.json has verdict: "pass" and metrics.publishReady: true.
Recommended maintenance loop
- Run
vclaw video metrics - Run
vclaw video next-actions - Run
vclaw video doctor-portfolio - Run
vclaw video report-snapshot - Run
vclaw video sync-obsidian - Run
npm run smoke:runtimeafter meaningful runtime changes - Run
npm run smoke:native-veoafter changing the built-inveo-useapi(native Veo) path - Run
npm run smoke:character-hydrationafter changing create-time cast hydration or approval-gate cost behavior - Run
npm run smoke:execution-cancelafter changing adapter cancel behavior or the project-level cancel path - Run
npm run smoke:portfolioafter changing index/report/CSV visibility - Run
npm run check:movie-director-wrappersafter editing bundled Director helper scripts - Run
npm run check:cleanroom-docsafter editing clean-room-facing docs and skills - Run
npm run check:skill-frontdoorafter editing repo-local skillSKILL.mdfiles - Run
npm run check:artifact-schema-coverageafter editing JSON Schemas underschemas/video/or canonical artifact contracts - Use
npm run check:release-readiness-litewhen you want the fast all-in-one local verification bundle, including the isolated image-storyboard E2E
Management views
metrics: counts, rates, score averagesworkload: owner-by-owner project loadnext-actions: actionable queue ordered by urgencydependencies: blocker graphreport: full machine-readable portfolio statereport-diff: compare portfolio snapshotstrends: historical trend points
Delivery (preview & delivery portal)
The review/delivery portal is the ops surface for shipping finished work to clients:
portal --project <slug> [--client <name>] [--run <id>] [--surface edit|review|client-review|preview|compare|index]generates the standardized HTML surface(s) locally.publish-preview --project <slug> --client <name> --bucket <bucket> [--run <id>] [--surface ... (default preview)] [--public-base-url <url>] [--wrangler-bin <path>] [--dry-run]builds a deterministic R2 upload plan from the HTML file and its local refs, then runswrangler r2 object putper item;--project,--client, and--bucketare all required. Keys land underclients/<client>/<project>/runs/<run>/(each segment slugified).publish-portal-index --bucket <bucket> [--client <name>] [--public-base-url <url>] [--wrangler-bin <path>] [--dry-run]uploads a client or global index linking into the published run folders.
See docs/preview-portal-audit.md for the full publish contract.
Overnight batch video queue
For unattended, many-job backfill runs (e.g. consistency tests or draft fan-outs):
batch-submit --manifest <path> --out <dir> [--route runway-useapi|dreamina-useapi|seedance-direct]compiles an operator manifest into one execution payload and persists<dir>/batch-queue.json. The default route is the freerunway-useapiexplore mode (low-res, slow); targetdreamina-useapiorseedance-directfor paid hi-res.batch-monitor --out <dir> [--once] [--max-minutes <n>]polls, downloads completed scenes toscene-<i>.mp4, copies each toclips/<jobId>.mp4, and writes<dir>/batch-status.json. It is idempotent/resumable — re-running only advancespending → done/failedand never re-downloads completed clips, sobatch-monitor --out <dir> --onceis safe to schedule via launchd.batch-status --out <dir>reports the current queue state.
Health model
Use these commands together:
doctor-projectfor one projectdoctor-portfoliofor all projectsreadinessto understand whether a project has the minimum artifacts required to move toward runtime executionplanto confirm the selected provider routeproduce --dry-runto validate the payload shape before live submissionproducewith a configured adapter to submit live work while keeping the assets stagependingexecute-statusto poll the adapter, ingest outputs, and advance the project toreviewexecute-cancelto attempt to cancel an in-flight live job and mark the assets stage failed with an explicit operator action trail- For
seedance-directandveo-useapi, prefer the built-in adapter path first and configure only..._SUBMIT_CMD/..._POLL_CMD/..._CANCEL_CMDunless you need a full custom adapter override - For
seedance-direct, you can now skip command shims entirely and rely onSUTUI_API_KEYplus the built-in native transport clone-executeis the shortest path for template-driven text-to-video work when you want clone planning and runtime execution in one command- Use
set-execution-profilewhen you need to retune ratio/quality/audio/outputs after the brief is already written - Use
status,report,export-csv, and Obsidian sync to verify the active execution profile, prompt guidance, review verdict, and publish-ready truth before expensive runs - Use
cost-estimatebefore live execution; it uses static defaults until completed Seedance USD telemetry exists, then reportsestimateSource: "historical-telemetry" - Inspect
projects/<slug>/events/events.jsonlforgeneration.telemetry.recordedevents when debugging provider costs, timings, failed polls, or output-ingest counts
Generation telemetry
Live and dry-run execution append generation.telemetry.recorded events to the project event ledger. Submitted runs record route, task, prompt, duration, and reference-count metadata. Poll refreshes record pending/completed/failed status, output counts, provider cost fields, provider timing fields, and issues.
Only completed seedance-direct records with provider-reported USD are used as cost-estimate samples. Credits are stored as telemetry but not converted to USD.
Full guide: docs/GENERATION_TELEMETRY.md.
execution-plan and execute remain available as compatibility aliases over plan and produce.
Project metadata expectations
Recommended project metadata:
ownerprioritydueDatetagsblockedByblockedReason
Reports and snapshots
reportgives the current full statereportincludes execution profile and prompt guidance when availablereport-snapshotpersists the current state toreports/history/report-historylists snapshotsreport-diffcompares snapshotsexport-csvwrites spreadsheet-friendly exports
Reproducible smoke
Use:
npm run smoke:runtime
npm run smoke:native-veo
npm run smoke:character-hydration
npm run smoke:execution-cancel
npm run smoke:portfolio
npm run smoke:reference-sheets
npm run smoke:scene-candidates
npm run check:movie-director-wrappers
npm run check:cleanroom-docs
npm run check:skill-frontdoor
npm run check:artifact-schema-coverageThis validates the documented local happy path and prints the generated machine-readable artifacts so runtime regressions are easier to spot than with tests alone.
For a packaged one-command pass that builds once, runs the Node suite once, and then executes the main smokes, isolated image-storyboard E2E, and guardrails:
npm run check:release-readiness-lite