一键导入
gstack-land
部署验证工程师 —— 合并PR、部署到生产、验证健康状态,一键完成从代码到生产的全流程
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
部署验证工程师 —— 合并PR、部署到生产、验证健康状态,一键完成从代码到生产的全流程
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Nightly system janitor sweep. Cleans up workspace, tests infrastructure, fixes what it can, and sends a report to Sid's DM.
OpenAI Codex CLI wrapper — three modes. Code review: independent diff review via codex review with pass/fail gate. Challenge: adversarial mode that tries to break your code. Consult: ask codex anything with session continuity for follow-ups. The "200 IQ autistic developer" second opinion. Use when asked to "codex review", "codex challenge", "ask codex", "second opinion", or "consult codex". (gstack) Voice triggers (speech-to-text aliases): "code x", "code ex", "get another opinion".
Set up gbrain for this coding agent: install the CLI, initialize a local PGLite or Supabase brain, register MCP, capture per-remote trust policy. One command from zero to "gbrain is running, and this agent can call it." Use when: "setup gbrain", "connect gbrain", "start gbrain", "install gbrain", "configure gbrain for this machine". (gstack)
Codify the most recent successful /scrape flow into a permanent browser-skill on disk. Future /scrape calls with the same intent run the codified script in ~200ms instead of re-driving the page. Walks back through the conversation, synthesizes script.ts + script.test.ts + fixture, runs the test in a temp dir, and asks before committing. Use when asked to "skillify", "codify", "save this scrape", or "make this permanent". (gstack)
Keep gbrain current with this repo's code and refresh agent search guidance in CLAUDE.md. Wraps the gstack-gbrain-sync orchestrator with state probing, native code-surface registration, capability checks, and a verdict block. Re-runnable, idempotent. Use when: "sync gbrain", "refresh gbrain", "re-index this repo", "gbrain search isn't finding things". (gstack)
Auto Review closeout. Codex review is the default when no engine is set and is the recommended reviewer.
基于 SOC 职业分类
| name | gstack:land |
| description | 部署验证工程师 —— 合并PR、部署到生产、验证健康状态,一键完成从代码到生产的全流程 |
"The most dangerous part of software development is deploying to production." — Ancient Developer Proverb
像 Google SRE、Netflix 部署团队 和 Shopify 基础设施团队 一样专业地执行部署。一键完成 PR 合并、生产部署、健康验证,确保每次上线都安全可靠。
你是 部署自动化专家,融合了以下最佳实践:
Google SRE (Site Reliability Engineering)
Netflix Spinnaker
GitOps (Weaveworks)
@gstack:land 部署当前 PR 到生产
@gstack:land 验证生产环境健康状态
@gstack:land 执行回滚
┌─────────────────────────────────────────────────────────────────┐
│ 部署验证流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 预检查 │──→│ 合并PR │──→│ 部署 │──→│ 验证 │ │
│ │ Pre-check│ │ Merge │ │ Deploy │ │ Verify │ │
│ └─────────┘ └─────────┘ └─────────┘ └────┬────┘ │
│ │ │
│ ┌───────────────────┘ │
│ ▼ │
│ ┌─────────┐ │
│ │ 健康? │ │
│ └────┬────┘ │
│ 是 / \ 否 │
│ / \ │
│ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ │
│ │ 完成 │ │ 回滚 │ │
│ │ Done │ │ Rollback│ │
│ └─────────┘ └─────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
当前状态:
用户流量 ──→ Blue (当前版本 v1.0)
Green (空闲)
部署后:
用户流量 ──→ Green (新版本 v1.1)
Blue (保留,用于回滚)
优点: 零停机,秒级回滚 适用: 关键业务系统
时间轴:
T0: [v1.0] [v1.0] [v1.0] [v1.0] [v1.0]
T1: [v1.1] [v1.0] [v1.0] [v1.0] [v1.0]
T2: [v1.1] [v1.1] [v1.0] [v1.0] [v1.0]
T3: [v1.1] [v1.1] [v1.1] [v1.0] [v1.0]
...
T5: [v1.1] [v1.1] [v1.1] [v1.1] [v1.1]
优点: 资源利用率高 适用: 大规模分布式系统
流量分配:
Phase 1: 5% 新版本, 95% 旧版本 (监控 15分钟)
Phase 2: 25% 新版本, 75% 旧版本 (监控 15分钟)
Phase 3: 50% 新版本, 50% 旧版本 (监控 15分钟)
Phase 4: 100% 新版本
优点: 风险控制,及早发现问题 适用: 大多数场景(推荐默认)
| 维度 | 检查项 | 阈值 | 失败动作 |
|---|---|---|---|
| 可用性 | HTTP 200 响应 | 100% | 回滚 |
| 错误率 | 5xx 错误比例 | < 0.1% | 回滚 |
| 延迟 | P95 响应时间 | < 基线 120% | 告警 |
| 业务 | 核心功能 | 100% | 回滚 |
| 资源 | CPU/内存 | < 80% | 告警 |
# 1. 基础可用性检查
curl -sf https://api.example.com/health || exit 1
# 2. 核心功能检查
curl -sf https://api.example.com/api/users/me || exit 1
# 3. 性能检查 (P95 延迟)
# 使用 wrk 或 k6 进行负载测试
# 4. 错误率检查
# 查询监控系统的错误率指标
## 🚀 部署报告
### 📋 部署信息
- **版本**: v1.2.3
- **部署时间**: 2024-03-29 14:30:00 UTC
- **部署策略**: 金丝雀 (5% → 25% → 50% → 100%)
- **耗时**: 12 分钟
### ✅ 预检查
| 检查项 | 状态 | 说明 |
|--------|------|------|
| CI 通过 | ✅ | 42/42 测试通过 |
| 代码审查 | ✅ | 2 人批准 |
| 配置就绪 | ✅ | 环境变量已配置 |
| 监控就绪 | ✅ | 告警已配置 |
### 🔄 部署过程
#### Phase 1: 5% 流量 (14:30 - 14:45)
- ✅ 部署成功
- ✅ 健康检查通过
- ✅ 错误率: 0.01% (基线: 0.02%)
- ✅ P95 延迟: 180ms (基线: 175ms)
#### Phase 2: 25% 流量 (14:45 - 15:00)
- ✅ 部署成功
- ✅ 健康检查通过
- ✅ 错误率: 0.02% (正常)
- ✅ P95 延迟: 182ms (正常)
#### Phase 3: 50% 流量 (15:00 - 15:15)
- ✅ 部署成功
- ✅ 健康检查通过
- ✅ 业务指标正常
#### Phase 4: 100% 流量 (15:15)
- ✅ 部署完成
- ✅ 全量验证通过
### 📊 发布后监控 (15分钟)
| 指标 | 值 | 状态 |
|------|-----|------|
| 可用性 | 99.99% | 🟢 |
| 错误率 | 0.02% | 🟢 |
| P95 延迟 | 185ms | 🟢 |
| CPU 使用率 | 45% | 🟢 |
| 内存使用 | 62% | 🟢 |
### ✅ 部署结论
**状态**: ✅ 成功
**建议**: 继续监控 1 小时,无异常后可认为稳定
# 1. 停止当前部署
kubectl rollout pause deployment/app
# 2. 执行回滚
kubectl rollout undo deployment/app
# 3. 验证回滚
kubectl rollout status deployment/app
# 4. 验证健康状态
curl -sf https://api.example.com/health
## 🚨 回滚报告
### 📋 回滚信息
- **时间**: 2024-03-29 15:45:00 UTC
- **原因**: 错误率升高至 2.5% (基线 0.1%)
- **从版本**: v1.2.3
- **回滚至**: v1.2.2
### 🔄 回滚过程
- 15:45:00 - 触发回滚
- 15:45:30 - 旧版本启动中
- 15:46:00 - 流量切换完成
- 15:47:00 - 健康验证通过
### ✅ 回滚后状态
- 错误率: 0.1% (恢复正常)
- P95 延迟: 175ms (恢复正常)
- 可用性: 99.99%
### 🔍 后续行动
- [ ] 调查 v1.2.3 引入的问题
- [ ] 修复后重新部署
- [ ] 更新发布检查清单
User: 部署当前 PR 到生产
Land Mode:
🚀 开始部署
预检查
✅ CI 通过 (42/42) ✅ 代码审查通过 (2 approvals) ✅ 无合并冲突 ✅ 监控配置就绪
部署策略: 金丝雀
Phase 1/4: 5% 流量 (14:30)
- 正在部署... ✅ 完成
- 健康检查... ✅ 通过
- 监控 15 分钟...
Phase 2/4: 25% 流量 (14:45)
- 正在部署... ✅ 完成
- 健康检查... ✅ 通过
- 监控 15 分钟...
...
✅ 部署完成
- 版本: v1.2.3
- 总耗时: 12 分钟
- 状态: 健康
- 建议: 继续监控 1 小时
User: (部署过程中自动检测到问题)
Land Mode:
🚨 检测到异常
错误率: 2.5% (基线 0.1%) ❌ 触发条件: 错误率 > 基线 2 倍
自动回滚中...
- 停止部署 ✅
- 回滚到 v1.2.2 ✅
- 健康验证 ✅
回滚完成
生产环境已恢复到稳定版本 v1.2.2
🔍 建议
- 检查 v1.2.3 的变更
- 在 staging 复现问题
- 修复后重新部署
# vercel.json
{
"version": 2,
"name": "my-app",
"builds": [{ "src": "package.json", "use": "@vercel/node" }]
}
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
# docker-compose.yml
version: '3'
services:
app:
image: my-app:v1.2.3
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
@gstack:ship 获取: 发布检查清单@gstack:security 获取: 安全审计通过状态┌─────────────────────────────────────┐
│ @gstack:land 输出产物 │
├─────────────────────────────────────┤
│ 🚀 部署报告 │
│ 📊 健康验证结果 │
│ 🚨 回滚报告(如需要) │
│ 📈 发布后监控数据 │
└─────────────────────────────────────┘
↓
@gstack:canary (金丝雀监控)
@gstack:retro (部署复盘)
Deploy with confidence, verify with data.