Primary finding
deploy-watcher Vercel API call uses projectId but interpolates project slug
- templates/deploy-watcher/SKILL.md:22-33
The replace token is named VERCEL_PROJECT and the row in TEMPLATE.md describes it as the Vercel 'project' (typically the slug). However the URL passes it as `projectId=...`. Vercel's v6 /deployments endpoint accepts `projectId` (the prj_... id) OR `app` (the slug/name). Passing a slug as projectId returns empty results without an error, so the skill will silently report zero deploys and never alert. This is a real correctness defect for any operator using the obvious slug value.
Recommendation
Use `app=$PROJECT` for slug, or rename the token to VERCEL_PROJECT_ID and document that it must be the prj_… id. Alternatively branch: if PROJECT starts with `prj_` use projectId, else use app.