agentsclimarketplace

Vibe deploy

Skill Cashmeran/hlvibes-skills/vibe-deploy

Use when project code is ready and reviewed, and user wants to go live. Implements hard deployment gates (6 must-pass checks), Vercel + Supabase deployment flow, post-deploy verification, cost transparency, and plain-language maintenance guide. Produces .vibe/doc/DEPLOY.md and a live URL.From its SKILL.md

Install
npx -y skills add Cashmeran/hlvibes-skills --skill vibe-deploy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 22 days oldThe repository was created 22 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

11.2 KB, ~4.1k tokens by cl100k_base, as published. Nobody here has run it

Vibe Deploy: 从本地到上线

把本地能跑的代码变成别人能打开的网址。部署不只是跑几个命令:上线前必须过安全门、上线后必须验证、你必须知道花了多少钱和怎么维护。


硬性门禁(不过不部署)

6 条硬性门禁必须全部绿灯才能进入部署流程。任何一条不通过 → 停止并告知你原因。

完整部署门禁清单见 references/deploy-gates.md,常见错误及处理见 references/common-errors.md

#门禁项检查方法不通过则
G1构建成功npm run build(或项目对应的 build 命令)退出码 ≠ 0 → 停止,修复构建错误
G2类型检查npx tsc --noEmit(TypeScript 项目)有类型错误 → 停止,修复所有类型错误
G3无硬编码密钥扫描所有 .ts/.tsx/.js 文件中的密钥模式发现硬编码密钥 → 停止,列出文件并移入 .env
G4.env 在 gitignore检查 .gitignore 中包含 .env无匹配 → 添加 .env.env.local 到 .gitignore
G5REVIEW CRITICAL 已清空读取 .vibe/doc/REVIEW.md有未修复的 CRITICAL 项 → 停止,修复后再来
G6RLS 检查(Supabase 项目)检查所有 public 表的 RLS 状态有未启用 RLS 的表 → 停止,逐个启用
G7回滚路径确认确认本次部署可回滚(Vercel 保留上一个成功的 deployment;数据库迁移只加不删)无回滚路径 → 停止,先建立回滚方案(git tag + 保留当前 deployment)

门禁输出格式

部署前安全检查:

✅ G1 构建成功:npm run build 通过
✅ G2 类型检查:tsc --noEmit 通过
✅ G3 密钥扫描:0 个硬编码密钥
✅ G4 gitignore:.env 已排除
✅ G5 审查结果:0 个未修复 CRITICAL
✅ G6 RLS:5/5 表 RLS 已启用
✅ G7 回滚路径:Vercel 上一个 deployment 已保留,数据库无删除性迁移

全部通过,可以进入部署准备。

八阶段总览

#Phase门禁条件做什么你参与
-GATES必入硬性门禁(不过不部署)
1PREPARE硬性门禁全部通过GitHub 推送 + 平台账号 + 环境变量可能需要登录
2RESEARCHPREPARE 完成搜索社区工具,避免造轮子
3DEPLOYPREPARE 完成 + 环境变量已获取Vercel 部署 + Supabase 上线 + 回滚确认
4VERIFYDEPLOY 完成线上验证:5 项逐条检查
5EXPLAINVERIFY 通过成本明细 + 维护指南 + 回滚操作指南理解
6SATISFACTION GATE必入满意度门禁自检+用户确认确认
7HANDOFF满意度门禁通过输出 DEPLOY.md确认

Phase 1:PREPARE

门禁: 硬性门禁全部通过

1.1 GitHub 准备

检查: git remote -v → 有没有 GitHub 仓库?
  有 → 跳过
  无 → 帮你创建:
    "你的代码需要推送到 GitHub。我帮你:
     1. 在 GitHub 上创建一个仓库(你需要先登录 github.com)
     2. 把代码推送上去
     
     准备好了吗?"

已有仓库:
  git add . && git commit -m "Pre-deploy: 部署前最终版本"
  git push origin main

1.2 平台账号确认

根据 ARCHITECTURE.md 技术选型表,确认需要的平台:

技术选型需要的平台免费额度
Vercel 部署Vercel 账号Hobby 免费
Supabase 数据库Supabase 账号Nano 免费
"部署需要用到两个平台,都是免费的:

1. Vercel:放你的网页,免费额度够你用
2. Supabase:放你的数据,免费 500MB

你现在需要:
  - 去 vercel.com 注册一个账号(用 GitHub 登录就行)
  - 去 supabase.com 注册一个账号(也用 GitHub 登录)
  
注册好了告诉我。"

1.3 环境变量

从 ARCHITECTURE.md 和实际 .env 文件提取需要设置的环境变量:

  • 只展示变量名,绝不暴露密钥值
  • 区分"可以放前端的"(NEXT_PUBLIC_/VITE_)和"只能放后端的"
  • 如果你给了 service_role key → 警告:这个绝对不能放前端

输出:

  • 代码已推送 GitHub
  • 平台账号已就绪
  • 环境变量清单(待填入)

参考:Vercel 部署指引见 references/vercel-guide.md,Supabase 配置指引见 references/supabase-guide.md


Phase 2:RESEARCH(避免造轮子)

门禁: PREPARE 完成

搜索社区是否已有现成的部署工具或 skill:

搜索内容方法
Vercel 官方部署 skillnpx skills add vercel-labs/agent-skills --skill deploy-to-vercel
Supabase 生产检查清单npx skills add 搜索 supabase 相关 skill
部署自动化工具rlsgate、CloudCost 等现成 CLI
平台 CLIvercel --helpnpx supabase --help 确认最新命令
  • 有现成工具 → 复用
  • 没有 → 记录,继续走手动 DEPLOY 流程

输出: 搜索结论 + 被纳入的工具清单 + 工具运行结果


Phase 3:DEPLOY

门禁: PREPARE 完成 + 环境变量已获取

3.1 Vercel 部署

目标:把 GitHub 上的代码部署到 Vercel,生成线上 URL。

需要完成的事(具体操作参考 Vercel 当前 UI,位置会有变化但目的不变):

  1. 导入仓库:在 Vercel 仪表盘导入你的 GitHub 仓库,Vercel 会自动识别项目框架(Next.js/Vite 等)。
  2. 配置环境变量:把之前整理好的环境变量配进去——区分前端可见(NEXT_PUBLIC_*)和仅后端环境变量。
  3. 触发部署:Vercel 会自动开始构建,通常 30-90 秒完成。成功后你会得到一个 *.vercel.app 的网址。

如果已安装并登录 Vercel CLI,也可以直接用命令行完成(CLI 比 UI 更稳定,不受界面更新影响):

vercel --prod --env SUPABASE_URL=<value> --env SUPABASE_ANON_KEY=<value>

如果你已安装 Vercel CLI 且已登录,可以直接命令行部署:

vercel --prod --env SUPABASE_URL=<value> --env SUPABASE_ANON_KEY=<value>

3.2 Supabase 数据库上线

确认以下配置:

  • RLS 已启用(门禁 G6 已验证)
  • 数据库 schema 与本地一致(npx supabase db push
  • API 设置中的 CORS 已添加你的 Vercel 域名

3.3 域名(可选)

"现在你的网站可以通过 .vercel.app 访问了。
如果你有自己的域名(比如 myapp.com),可以在 Vercel 后台的 Settings → Domains 添加。

没有域名也完全够用。等你想正式推广了再买也不迟。
域名大概 $10-15/年,在 Namecheap 或 Porkbun 买就行。"

3.4 回滚确认

部署完成之后,立即确认回滚路径:

  1. 打开 Vercel Dashboard → 你的项目 → Deployments
  2. 确认上一个成功的 deployment 仍然保留(通常新部署不会删除旧的)
  3. 确认本次数据库迁移没有 DROP/ALTER COLUMN(门禁 G7 已验)
  4. 告诉用户:
部署完成了。如果这次部署出了问题,你只需要做一件事:

去 vercel.com → 你的项目 → Deployments → 找到上一个版本 → 点 "⋯" → Redeploy。

这就像"撤销"按钮——点一下,网站就会回到部署之前的状态。
数据库不会被撤销(如果加过新表,表还在;但旧代码不读它,不影响)。

输出: 可访问的线上 URL + 回滚确认记录


Phase 4:VERIFY

门禁: DEPLOY 完成,有线上 URL

5 项逐条验证:

验证清单:

1. HTTP 200 → 页面能打开吗?
   curl -I https://your-app.vercel.app → HTTP 200 ✅/❌

2. 登录功能 → 能注册/登录吗?
   [引导你操作] → ✅/❌

3. 核心功能 → P0 功能正常吗?
   对照 REQUIREMENTS.md P0 功能 → 逐条验证 → ✅/❌

4. 数据持久化 → 刷新页面数据还在吗?
   [引导你刷新] → ✅/❌

5. 环境变量 → 所有需要的变量都生效了吗?
   检查线上是否读取到关键配置 → ✅/❌

任何 ❌:
  - 定位原因(环境变量缺失?构建失败?RLS 策略?)
  - 修复 → 重新部署 → 重新验证

输出: 验证报告(5 项通过/失败 + 修复记录)


Phase 5:EXPLAIN

门禁: VERIFY 通过

用白话解释三件事:

5.1 成本明细

现在你的应用跑在:

🏠 Vercel(网页托管)
  当前: Hobby 免费计划
  免费额度: 100GB 带宽/月、20,000 次后端调用/月
  什么时候要付费: 用户量和访问量上去了 → Pro 计划 $20/月
  你现在: 几乎肯定是 $0

🗄️ Supabase(数据库+登录)
  当前: Nano 免费计划
  免费额度: 500MB 数据、50,000 月活用户
  什么时候要付费: 数据库超 500MB 或项目被暂停 → Pro 计划 ~$25/月
  你现在: 几乎肯定是 $0

💸 本月预计: $0
📈 有几百个用户后预计: $45-85/月

5.2 日常维护

你需要知道的只有这些:

1. 改内容 → 在本地改,改完告诉我"部署更新"
2. 看有没有问题 → vercel.com 后台看 Deployments 状态
3. 数据备份 → Supabase 自动备份,你什么都不用做(Pro 计划有每日备份)
4. 如果有人反馈 bug → 回来找我,我会帮你看

5.3 紧急情况

如果网站打不开了,按顺序做:

第一步:直接回滚
  → vercel.com → 你的项目 → Deployments
  → 找到上一个显示绿色的版本 → 点 "⋯" → Redeploy
  → 等 30 秒。网站就回到部署前的状态了。
  → 然后再慢慢排查原因。先恢复,后诊断。

第二步:回滚后还是不行
  → 回滚确认了问题不在代码:可能是 Supabase 或域名出问题了
  → 看 supabase.com → 你的项目 → 有没有红色警告?
  → 有 → 截图发给我
  → 没有 → 可能是网络问题,等几分钟试试

第三步:两个平台都正常但网站还是打不开
  → 回来找我,告诉我具体情况。

输出: 你理解了回滚方式和基本维护方式

参考:完整成本估算模型见 references/cost-estimator.md


Phase 6:SATISFACTION GATE(满意度门禁)

门禁:必入

→ 执行满意度门禁(详见 hlvibes/references/satisfaction-gate.md)。当前阶段名称:「部署上线」。


Phase 7:HANDOFF

门禁: EXPLAIN 完成

→ 执行交付(详见 hlvibes/references/handoff.md)。产出 .vibe/doc/DEPLOY.md,包含部署配置、门禁结果、验证结果、回滚路径、月成本、维护指南。

交付时附加一句:

上线完成了。你的网站现在是一个活的产品。上线后发现什么问题——不管是功能不对、样式不对、还是有新想法——回来找我,告诉我具体是什么问题。我来判断该走哪一步。

通用纪律(所有 Phase 共享)

→ 完整通用纪律见 hlvibes/references/common-rules.md

What ships with it: 5 files

26.7 KB alongside SKILL.md

Keep looking

Skills are one crate of 326,834. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.