关于 vercel
用于监控 `remotion` 项目某个特定 Vercel 部署的仓库技能。它读取机器可读的部署状态,并使用不可变部署标识,而非可变的预览别名。
主要功能
- 01使用部署 ID 或不可变主机名固定监控对象
- 02从指定项目来源解析部署
- 03读取机器可读的部署状态
- 04区分进行中、成功和失败状态
- 05创建有次数上限的每分钟心跳
适用场景
- 01监控与 PR 或提交关联的部署
- 02检查构建是否就绪或失败
- 03避免将旧预览别名误认为新部署
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill vercel安装后在 Claude Code 中输入/vercel确认已加载。
附带文件agents/openai.yamlscripts/check-deployment.py
详细介绍
Vercel 监控
监控 remotion 项目中的一个不可变 Vercel 部署,并在该部署就绪或失败时通知当前任务。
不可妥协的规则
- 绝不根据 HTTP 响应推断部署状态。分支预览别名可能在新部署仍在构建时,对先前的部署返回 200。
- 绝不监控分支预览别名。它会变化,可能解析到较早或较新的部署。
- 将监控固定到 Vercel 部署 ID(
dpl_...)或不可变的自动部署主机名(<project>-<random>-<scope>.vercel.app)。 - 读取机器可读的 Vercel 部署状态。不要解析面向用户的 CLI 输出。
- 默认使用
remotion项目和remotionVercel 作用域。除非用户明确要求,否则忽略bugs项目。
确定确切的部署
按以下顺序优先使用这些来源:
- 用户提供的 Vercel 部署/控制面板 URL。
- 活跃 GitHub PR 上的
Vercel – remotion检查项。其控制面板 URL 格式为https://vercel.com/remotion/remotion/<deployment-id-suffix>。 - Vercel 机器人 PR 评论中的
remotion行。 vercel list remotion --scope remotion --format=json,根据.deployments[].meta匹配确切的 PR、提交 SHA 或分支。
控制面板 URL 的最后一段路径前加上 dpl_,即为部署 ID。例如:
https://vercel.com/remotion/remotion/AbCd1234 -> dpl_AbCd1234
Vercel PR 评论中的 Preview 链接通常是分支别名。最终通知时保留该链接,但不要用它检查状态。
使用 vercel list 时,选择与所有可用身份字段匹配的最新部署:
.name == "remotion"- 已知 PR 时,
.meta.githubPrId == <PR number> - 已知提交时,
.meta.githubCommitSha == <full commit SHA>
不要静默回退到其他提交。如果无法确定确切的部署,请询问 Vercel 控制面板 URL、PR 编号或提交 SHA。
读取状态
从仓库根目录运行捆绑的检查器:
python3 .agents/skills/vercel/scripts/check-deployment.py <deployment-id-or-url>
检查器会调用:
vercel inspect <deployment-id-or-immutable-url> \
--scope remotion \
--format=json
它会验证项目、拒绝可变别名,并输出规范化的 JSON。
使用其 state 字段:
READY:成功。ERROR、CANCELED或CANCELLED:失败。BUILDING、QUEUED或INITIALIZING:仍在进行中。UNKNOWN:尚未进入终态。仅当诊断信息持续存在,或妨碍创建可信的监控时,才报告该信息。
达到 READY 后,可以选择进行 HTTP 探测,以检查可访问性。绝不能据此将未就绪或未知的部署提升为 READY。
创建监控
使用 Codex 自动化工具创建每分钟一次、次数受限的心跳任务,通常为 30 次。心跳提示词必须独立完整,并包含:
- 固定的部署 ID 或不可变的部署主机名。
- 控制面板 URL。
- 如果已知,分支预览别名(仅用于最终通知)。
- 如果已知,项目、PR、分支和提交上下文。
- 确切的检查器命令。
- 上述终态规则。
使用以下提示词格式:
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.
创建心跳任务前,先运行一次检查器。如果部署已经进入终态,则直接报告。否则,告知用户正在监控的确切部署和检查频率。
评论
支持 Markdown