deploy-prod — clean-worktree deploy + Reelier smoke
SkillCloud & infraDeploy main to Vercel production the safe way (clean worktree, env baked in) and smoke it with Reelier at Level 0 — zero tokens. Use after any merge to main; Vercel git integration does NOT reliably auto-deploy main.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the deploy-prod — clean-worktree deploy + Reelier smoke skill
What this skill tells your AI
The instructions your AI receives, as published by seldonframe/seldonframe in .claude/skills/deploy-prod/SKILL.md and read by ahel’s review.
Vercel's git integration does not reliably auto-deploy main (verified 2026-07-18), and deploying from the dirty local checkout is forbidden. This is the canonical sequence.
Steps
- Get the merge sha:
git fetch origin mainand note the commit to deploy. - Clean worktree deploy (env vars are baked at build, so this also picks up flag changes):
git worktree add "$env:TEMP\sf-main-deploy" <sha> Copy-Item .vercel "$env:TEMP\sf-main-deploy\.vercel" -Recurse -Force Set-Location "$env:TEMP\sf-main-deploy"; npx vercel deploy --prod - Verify:
npx vercel inspect <deployment-url>→target production+status Ready. - Smoke with Reelier (default — NOT the smoke-runner agent):
Level-0 deterministic replay: ~1-3s, 0 LLM tokens, per-step receipts inSet-Location C:\Users\maxim\CascadeProjects\reelier node dist/cli.js run skills/sf-post-deploy-smoke.skill.md.reelier/runs/. Exit 0 = deploy smoked. This replaces a ~35-60k-token smoke-runner agent dispatch. - Escalation only on divergence: if a step fails, do NOT immediately re-run — a failed
sentinel usually means the page copy changed (update the skill's assert) or the deploy
is genuinely broken (check
npx vercel logs). Dispatch the smoke-runner agent ONLY when the reelier failure needs judgment (e.g. deciding whether copy drift is intentional). - If the deploy touched migrations: verify on Neon that the new table/column exists
(
information_schema) — the build runsdb:migrate, but confirm, don't assume. - Clean up:
git worktree remove "$env:TEMP\sf-main-deploy" --force; git worktree prune.
Why Reelier-first
Deterministic replay with assertions IS the smoke test: same checks every time, receipts
written, zero spend. The agent is the escalation path, not the default — the same
L0-first/escalate-on-divergence ladder the replay product itself uses. When the smoke
skill's sentinels drift because marketing copy changed, updating the assert line in
reelier/skills/sf-post-deploy-smoke.skill.md is the fix (and gets a changelog line).
Signals
- GitHub stars
- 47
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
deploy-prod- Source
- github.com/seldonframe/seldonframe