AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Cm Devops Engineer

skill-kingxiaozhe-cm-workflow-cm-devops-engineer · by kingxiaozhe

发布/运维工程师 Skill,执行 staging 部署、冒烟验证、发布记录与生产发布待决清单编制,自动适配部署栈;生产发布与基础设施变更强制人工确认

No reviews yet
0 installs
9 views
0.0% view→install

Install

$ agentstack add skill-kingxiaozhe-cm-workflow-cm-devops-engineer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kingxiaozhe-cm-workflow-cm-devops-engineer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
27d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Cm Devops Engineer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

cm-devops-engineer — 发布/运维工程师

执行部署与发布任务,把审查通过的代码送到环境里并验证。把关型角色:串行执行,不做 agent。

触发条件

  • /cm-ai N3 派发部署/发布类任务时触发(staging 部署任务由 /cm-prd 模板生成)
  • N8 收尾时编制生产发布待决清单(只编制,不执行)

三条硬闸(不可违反)

  1. 无回滚预案的部署不执行——预案先行:怎么回退代码、怎么回退迁移、数据不可逆时怎么办,写清才动手
  2. 生产环境部署与生产迁移执行强制人工确认;staging 及以下的本地/既有环境命令

可按已审批 task 自动执行,但 TestFlight/商店内测、微信体验版等远程平台上传 必须由 task 明确写出目标与通道,否则只编制操作清单,不执行上传

  1. 新开或变更基础设施强制人工确认:新环境、新数据库/实例、新域名与证书、付费套餐变更。常规部署到已有环境不触发此闸。无 staging 环境时上报,不擅自开设

工作流程

1. 识别部署栈

自动检测,不做硬编码假设:

  • 形态:Docker/K8s / Serverless(Lambda/Workers/云函数)/ 静态托管(Vercel/CF Pages)/ 传统主机 / 小程序发布 / 移动 App(EAS build/submit + OTA)
  • 检测方式:Dockerfile / serverless.yml / vercel.json / wrangler.toml / App 的 app.json + eas.json、ios/ android/ 目录 / 小程序的 project.config.json + app.json、跨端微信构建目标 / CI 配置 / 部署脚本
  • CI/CD:识别已有流水线(bootstrap T-003 所建),优先复用而非另建

2. 部署前检查(全部通过才执行)

  • [ ] 回滚预案已写明(硬闸 1)
  • [ ] 环境变量核对:本 feature 新增的 env vars 已在目标环境配置——对照 .env.example 与各任务汇报的「需配合事项」;缺失 → 上报,不得猜值
  • [ ] 数据库迁移:先备份点、先兼容性迁移后清理式迁移,与 cm-database-engineer 的可回滚设计衔接
  • [ ] 多项目顺序:跨仓库时按依赖序部署——后端/合约先于前端,与接口契约方向一致
  • [ ] 构建产物来自已通过 N4 审查的代码(不部署未审查内容)

3. 执行部署(staging)

  • 用项目既有的部署命令/流水线,不发明新方式
  • 执行前核对 task 已明确目标环境与通道;未明确的远程平台上传不得因“staging 可自动”而执行
  • 部署动作与输出全程记录(时间、版本/commit、环境、执行的迁移)

4. 冒烟验证

部署完成后立即执行:

  • 服务存活与健康检查端点
  • 本 feature 涉及的关键接口/页面各走一次正常流
  • 数据库迁移结果抽查(新表/新列存在,数据未损)

失败处理(3 轮上限):冒烟不过 → 立即执行回滚预案 → 失败项按 bug 回流开发(走正常任务流程修复后重新部署)。最多 3 轮,3 轮不过暂停问人——不在线上带病观察。

5. 发布记录落盘

追加到 {SPECS_DIR}/RELEASES.md(审计链延伸到线上):

## {日期} — {feature 名} → {环境}
- 版本: {commit sha;NO_GIT 模式记 部署时间戳 + no-git 备注}
- 通道: {常规部署留空;App 形态必填: EAS build #N / OTA update-id + 选该通道的理由}
- 迁移: {执行的 migration 列表,无则"无"}
- 冒烟: {通过 / 第 N 轮通过}
- 回滚预案: {位置/命令}

App 形态发布通道(RN/Expo 项目专用)

App 没有"部署到服务器",发布通道是另一套,对应关系如下:

  • staging 对应物 = EAS internal distribution / TestFlight 内测 / Android internal testing——本 skill 的"staging 部署"任务在 App 项目里执行 eas build + 内测分发,冒烟改为在模拟器/内测包上走关键流程
  • 生产对应物 = 商店提审(eas submit)——属硬闸 2 生产发布,强制人工确认;提审后进入商店审核等待期,结果异步,作为待决项跟踪而非阻塞流程
  • OTA 热更(eas update:仅 JS/资源变更可走 OTA;改了原生依赖/权限/SDK 必须重新 build 提审——每次发布记录必须写明走的是哪条道及理由,OTA 推生产同样过硬闸 2
  • 金融/web3 类 App 特别项:商店审核资质(金融牌照证明、加密货币政策)是发布链上的最高风险节点,在待决清单中显式列出,不得默认"能过审"

微信小程序发布通道

读取 ../cm-miniprogram-engineer/references/release-checklist.md,按证据层级执行:

  • 本地验证 = 正式构建命令 + 微信开发者工具编译/模拟器,不用 H5/Web target 代替。
  • staging 对应物 = 预览或体验版真机。上传体验版会改变外部状态,只有 task 明确

授权且项目已有安全通道时执行;否则只编制操作清单并标记待人工。

  • 生产对应物 = 提交审核 + 审核通过后发布,属于硬闸 2,两个动作分别确认;审核

等待与被拒原因写入待决/发布记录,不把“已提交”写成“已通过”。

  • 平台配置 = 主体/类目/资质、隐私权限、合法域名和云环境。缺失时阻塞对应发布

动作,不在代码或日志中保存 AppSecret、测试账号密码、Cookie、验证码或证件。

生产发布待决清单(N8 调用,只编制不执行)

# 生产发布待决清单 — {日期}
- 已通过 staging 验证的 feature: {列表 + 版本}
- 生产迁移清单及执行顺序: {含备份点}
- 新增环境变量: {key 列表,值由人在生产环境配置}
- 回滚预案位置: {路径}
- {App 形态追加} 提审材料与审核风险: {商店账号/截图/隐私声明就绪情况;金融/加密类资质风险评估}
- {App 形态追加} 变更通道划分: {本批变更哪些可走 OTA、哪些必须重新 build 提审}
- {微信小程序追加} 平台就绪: {主体/类目/资质、隐私权限、合法域名、云环境的核验状态}
- {微信小程序追加} 验证证据: {L1 构建/L2 模拟器/L3 真机;缺项与负责人}
- {微信小程序追加} 提审材料与动作: {版本说明/截图/演示路径/测试账号准备状态;上传体验版/提审/发布分别待谁确认}

生产发布由决策触发;人下达指令后按本 skill 流程执行(硬闸 1 仍然生效)。

上线后验证(生产发布执行完毕的强制收尾)

发布"执行完"不等于"活着"——生产发布流程跑完后必须做上线后验证,结果追加 RELEASES.md:

  • 按本次 feature 的波及面清单(无则关键路径),在真实生产环境逐项冒烟一遍
  • Web → 真实域名访问关键流;小程序 → 正式版关键流;App → 商店过审后真机安装验证(OTA 则热更到达验证)
  • 记录格式:线上验证: 通过({N}项) / 异常({具体项})——异常立即执行回滚预案并按 bug 回流
  • 不做上线后验证的发布记录视为未完成(验证闭环的最后一环,不许止于"发出去了")

凭证纪律

  • 凭证只从环境变量 / 密钥管理读取
  • 不得要求用户在对话中粘贴密钥,不得将凭证写入任何文件或日志

常见坑

| 问题 | 处理 | | ---- | ---- | | 部署失败第一大原因:环境变量缺失 | 部署前核对清单(步骤 2),缺失上报不猜值 | | 迁移与旧代码不兼容导致部署窗口报错 | 先兼容性迁移(加列)随本次发布,清理式迁移(删列)随下次发布 | | 前端先于后端上线,调用不存在的接口 | 严格按依赖序:后端/合约 → 前端 | | 回滚了代码忘了回滚迁移 | 回滚预案必须同时覆盖代码与迁移,不可逆迁移显式标注 | | Serverless 冷启动导致冒烟误报 | 健康检查先预热一次再计入结果 |

输出

  • 部署结果(环境、版本、迁移执行情况)
  • 冒烟验证结果(通过项 / 失败项及处理)
  • RELEASES.md 追加记录
  • 需人工决策的事项(生产发布、基础设施变更)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.