.agents/skills/vercel/SKILL.md
Monitor one immutable Vercel deployment for the remotion project and notify the
current task when that exact deployment becomes ready or fails.
dpl_...) or the immutable automatic
deployment hostname (<project>-<random>-<scope>.vercel.app).remotion project and the remotion Vercel scope. Ignore the
bugs project unless the user explicitly asks for it.Prefer these sources, in order:
Vercel – remotion check on the active GitHub PR. Its dashboard URL has
the form https://vercel.com/remotion/remotion/<deployment-id-suffix>.remotion row in the Vercel bot's PR comment.vercel list remotion --scope remotion --format=json, matched to the exact PR,
commit SHA, or branch in .deployments[].meta.The final path segment of a dashboard URL becomes the deployment ID by prefixing
it with dpl_. For example:
https://vercel.com/remotion/remotion/AbCd1234 -> dpl_AbCd1234
The Preview link in a Vercel PR comment is normally a branch alias. Preserve it
for the final notification, but do not use it for state checks.
When using vercel list, select the newest deployment that matches all available
identity fields:
.name == "remotion".meta.githubPrId == <PR number>, when a PR is known.meta.githubCommitSha == <full commit SHA>, when a commit is knownDo not silently fall back to a different commit. If no exact deployment can be identified, ask for the Vercel dashboard URL, PR number, or commit SHA.
Run the bundled checker from the repository root:
python3 .agents/skills/vercel/scripts/check-deployment.py <deployment-id-or-url>
The checker calls:
vercel inspect <deployment-id-or-immutable-url> \
--scope remotion \
--format=json
It validates the project, rejects moving aliases, and emits normalized JSON.
Use its state field:
READY: success.ERROR, CANCELED, or CANCELLED: failure.BUILDING, QUEUED, or INITIALIZING: still in progress.UNKNOWN: not terminal. Report the diagnostic only if it persists or prevents
creation of a trustworthy monitor.HTTP probing may be used after READY as an optional reachability check. It must
never promote a non-ready or unknown deployment to READY.
Use the Codex automation tool to create a one-minute heartbeat with a bounded count, normally 30 attempts. The heartbeat prompt must be self-contained and include:
Use this prompt shape:
Monitor this exact Vercel deployment until it reaches a terminal state.
Pinned deployment: <dpl_id_or_immutable_hostname>
Dashboard: <dashboard_url>
Preview alias (reporting only; never use for state): <preview_url_or_unknown>
Context: <project/pr/branch/commit>
From the repository root, run:
python3 .agents/skills/vercel/scripts/check-deployment.py <pinned_deployment>
Only the JSON `state` is authoritative.
- READY: reply "Vercel deployment is ready" and include Dashboard and Preview.
- ERROR, CANCELED, or CANCELLED: reply with the failure state and include both links.
- BUILDING, QUEUED, INITIALIZING, or UNKNOWN: stay quiet and check again next time.
Never curl the preview URL to determine readiness. After reporting a terminal
state, delete or pause this heartbeat if its automation ID is available.
Before creating a heartbeat, run the checker once. If the deployment is already terminal, report immediately instead. Otherwise, tell the user which exact deployment is being watched and the cadence.