name: video-from-program-page
description: >
Generate a new ace-web video program (spec.yaml + run-001) from a
Connect program page URL using the 60s-campaign-overview template.
Thin wrapper around video-spec-generate: sets source= and
template_id=60s-campaign-overview, then delegates all generation logic
there. Owns one artifact: the new program's spec.yaml in Drive.
disable-model-invocation: true
video-from-program-page
Turn a Connect program page URL (e.g.
https://labs.connect.dimagi.com/programs/chc) into a fully-populated
spec.yaml for ace-web's videos surface using the 60s-campaign-overview
template, and write it as a new program in the target workspace.
This skill is a thin wrapper. It sets source=<program_url> and
template_id=60s-campaign-overview, then delegates all generation logic to
/ace:video-spec-generate. Refer to that skill for the full step-by-step
procedure, word-budget formula, voice rules, grounding rule, and edge cases.
For other templates or non-URL sources (pasted briefs, prospect research),
call /ace:video-spec-generate directly.
Inputs
| Name | Required | Default | Notes |
|---|---|---|---|
program_url |
yes | — | The Connect program page to read. Becomes source in video-spec-generate. |
program_slug |
no | last URL path segment | Slug for the new video program. Derived and passed to video-spec-generate. |
workspace_slug |
no | dimagi-team |
ace-web workspace to write into. |
template_id |
no | 60s-campaign-overview |
Template override; default is always 60s-campaign-overview. |
gdrive_folder_id |
no | — | Drive folder for program media. Forwarded to video-spec-generate. |
base_url |
no | $ACE_WEB_BASE or https://labs.connect.dimagi.com/ace |
ace-web base URL. |
ACE_WEB_PAT_TOKEN |
yes (env) | — | Per-human Bearer token; mint via /ace:ace-web-pat-mint. |
Steps
- Derive
program_slugfrom the last path segment ofprogram_urlif not provided explicitly. - Invoke
/ace:video-spec-generatewith:template_id=60s-campaign-overview(or the override)source=program_urlprogram_slug,workspace_slug,gdrive_folder_id,base_urlforwardedACE_WEB_PAT_TOKENforwarded from env
All generation logic — template bundle fetch, source ingestion via WebFetch,
word-budget derivation, placeholder fill, skeleton substitution, validation,
POST, and reporting — runs inside video-spec-generate.
Why this wrapper exists
/ace:status and the ACE artifact manifest reference video-from-program-page
as a first-class skill. This wrapper preserves that entry point while moving
all logic to the general generator, so improvements to video-spec-generate
apply here automatically without a separate edit.